def rsa_public_key_parse(key_material): try: if not isinstance(key_material, six.binary_type): key_material = key_material.encode("ascii") decoded_key = base64.b64decode(key_material).decode("ascii") public_key = SSHKey(decoded_key) except (sshpubkeys.exceptions.InvalidKeyException, UnicodeDecodeError): raise ValueError('bad key') if not public_key.rsa: raise ValueError('bad key') return public_key.rsa
def rsa_public_key_parse(key_material): # These imports take ~.5s; let's keep them local import sshpubkeys.exceptions from sshpubkeys.keys import SSHKey try: if not isinstance(key_material, bytes): key_material = key_material.encode("ascii") decoded_key = base64.b64decode(key_material).decode("ascii") public_key = SSHKey(decoded_key) except (sshpubkeys.exceptions.InvalidKeyException, UnicodeDecodeError): raise ValueError("bad key") if not public_key.rsa: raise ValueError("bad key") return public_key.rsa