Python cryptography.hazmat.primitives.asymmetric.rsa 模块,RSAPrivateKey() 实例源码

我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey()

项目:newsreap    作者:caronc    | 项目源码 | 文件源码
def public_pem(self):
        """
        Returns the public key PEM. This is a base64 format with delimiters.

        This function returns None if the public pem information could
        not be acquired.

        """
        if not isinstance(self.public_key, RSAPublicKey):
            if not isinstance(self.private_key, RSAPrivateKey):
                return None
            self.public_key = self.private_key.public_key()

        return self.public_key.public_bytes(
            encoding=serialization.Encoding.PEM,
            format=serialization.PublicFormat.SubjectPublicKeyInfo,
        )
项目:TCP-IP    作者:JackZ0    | 项目源码 | 文件源码
def fields_to_partial_json(self):
        # pylint: disable=protected-access
        if isinstance(self.key._wrapped, rsa.RSAPublicKey):
            numbers = self.key.public_numbers()
            params = {
                'n': numbers.n,
                'e': numbers.e,
            }
        else:  # rsa.RSAPrivateKey
            private = self.key.private_numbers()
            public = self.key.public_key().public_numbers()
            params = {
                'n': public.n,
                'e': public.e,
                'd': private.d,
                'p': private.p,
                'q': private.q,
                'dp': private.dmp1,
                'dq': private.dmq1,
                'qi': private.iqmp,
            }
        return dict((key, self._encode_param(value))
                    for key, value in six.iteritems(params))
项目:aws-cfn-plex    作者:lordmuffin    | 项目源码 | 文件源码
def from_cryptography_key(cls, crypto_key):
        """
        Construct based on a ``cryptography`` *crypto_key*.

        :param crypto_key: A ``cryptography`` key.
        :type crypto_key: One of ``cryptography``'s `key interfaces`_.

        :rtype: PKey

        .. versionadded:: 16.1.0
        """
        pkey = cls()
        if not isinstance(crypto_key, (rsa.RSAPublicKey, rsa.RSAPrivateKey,
                                       dsa.DSAPublicKey, dsa.DSAPrivateKey)):
            raise TypeError("Unsupported key type")

        pkey._pkey = crypto_key._evp_pkey
        if isinstance(crypto_key, (rsa.RSAPublicKey, dsa.DSAPublicKey)):
            pkey._only_public = True
        pkey._initialized = True
        return pkey
项目:2FAssassin    作者:maxwellkoh    | 项目源码 | 文件源码
def from_cryptography_key(cls, crypto_key):
        """
        Construct based on a ``cryptography`` *crypto_key*.

        :param crypto_key: A ``cryptography`` key.
        :type crypto_key: One of ``cryptography``'s `key interfaces`_.

        :rtype: PKey

        .. versionadded:: 16.1.0
        """
        pkey = cls()
        if not isinstance(crypto_key, (rsa.RSAPublicKey, rsa.RSAPrivateKey,
                                       dsa.DSAPublicKey, dsa.DSAPrivateKey)):
            raise TypeError("Unsupported key type")

        pkey._pkey = crypto_key._evp_pkey
        if isinstance(crypto_key, (rsa.RSAPublicKey, dsa.DSAPublicKey)):
            pkey._only_public = True
        pkey._initialized = True
        return pkey
项目:2FAssassin    作者:maxwellkoh    | 项目源码 | 文件源码
def from_cryptography_key(cls, crypto_key):
        """
        Construct based on a ``cryptography`` *crypto_key*.

        :param crypto_key: A ``cryptography`` key.
        :type crypto_key: One of ``cryptography``'s `key interfaces`_.

        :rtype: PKey

        .. versionadded:: 16.1.0
        """
        pkey = cls()
        if not isinstance(crypto_key, (rsa.RSAPublicKey, rsa.RSAPrivateKey,
                                       dsa.DSAPublicKey, dsa.DSAPrivateKey)):
            raise TypeError("Unsupported key type")

        pkey._pkey = crypto_key._evp_pkey
        if isinstance(crypto_key, (rsa.RSAPublicKey, dsa.DSAPublicKey)):
            pkey._only_public = True
        pkey._initialized = True
        return pkey
项目:keyview    作者:ALSchwalm    | 项目源码 | 文件源码
def display_item_info(item, filename, print_filename=False):
    if print_filename is True:
        print("#######[ {} ]#######".format(filename))

    if (isinstance(item, rsa.RSAPrivateKey) or
        isinstance(item, dsa.DSAPrivateKey) or
        isinstance(item, ec.EllipticCurvePrivateKey)):
        display_private_key(item)

    elif (isinstance(item, rsa.RSAPublicKey) or
          isinstance(item, dsa.DSAPublicKey) or
          isinstance(item, ec.EllipticCurvePublicKey)):
        display_public_key(item)

    elif isinstance(item, OpenSSL.crypto.PKCS12):
        display_pkcs12(item)

    elif isinstance(item, OpenSSL.crypto.PKCS7):
        display_pkcs7(item)

    elif isinstance(item, Certificate):
        display_x509_cert(item)
项目:certbot    作者:nikoloskii    | 项目源码 | 文件源码
def fields_to_partial_json(self):
        # pylint: disable=protected-access
        if isinstance(self.key._wrapped, rsa.RSAPublicKey):
            numbers = self.key.public_numbers()
            params = {
                'n': numbers.n,
                'e': numbers.e,
            }
        else:  # rsa.RSAPrivateKey
            private = self.key.private_numbers()
            public = self.key.public_key().public_numbers()
            params = {
                'n': public.n,
                'e': public.e,
                'd': private.d,
                'p': private.p,
                'q': private.q,
                'dp': private.dmp1,
                'dq': private.dmq1,
                'qi': private.iqmp,
            }
        return dict((key, self._encode_param(value))
                    for key, value in six.iteritems(params))
项目:dcos    作者:dcos    | 项目源码 | 文件源码
def decode_pem_key(key_pem):
    """Convert plaintext PEM key into the format usable for JWT generation

    Args:
        key_pam (str): key data in PEM format, presented as plain string

    Returns:
        Parsed PEM data
    """
    private_key = serialization.load_pem_private_key(
        data=key_pem.encode('ascii'),
        password=None,
        backend=default_backend())

    msg = 'Unexpected private key type'
    assert isinstance(private_key, rsa.RSAPrivateKey), msg
    assert private_key.key_size >= 2048, 'RSA key size too small'

    return private_key
项目:certproxy    作者:geneanet    | 项目源码 | 文件源码
def rsa_key_fingerprint(key):
    """ Return the SHA256 fingerprint of an RSA public or private key in url safe BASE64 """
    fp = hashes.Hash(algorithm=hashes.SHA256(), backend=default_backend())

    if isinstance(key, rsa.RSAPrivateKey):
        fp.update(key.private_bytes(
            encoding=serialization.Encoding.DER,
            format=serialization.PrivateFormat.PKCS8,
            encryption_algorithm=serialization.NoEncryption()
        ))
    elif isinstance(key, rsa.RSAPublicKey):
        fp.update(key.public_bytes(
            encoding=serialization.Encoding.DER,
            format=serialization.PublicFormat.PKCS1
        ))

    return urlsafe_b64encode(fp.finalize()).decode()
项目:certproxy    作者:geneanet    | 项目源码 | 文件源码
def dump_pem(key_or_crt):
    if isinstance(key_or_crt, rsa.RSAPrivateKey):
        return key_or_crt.private_bytes(
            encoding=serialization.Encoding.PEM,
            format=serialization.PrivateFormat.PKCS8,
            encryption_algorithm=serialization.NoEncryption()
        )
    elif isinstance(key_or_crt, rsa.RSAPublicKey):
        return key_or_crt.public_bytes(
            encoding=serialization.Encoding.DER,
            format=serialization.PublicFormat.PKCS1
        )
    else:
        return key_or_crt.public_bytes(
            encoding=serialization.Encoding.PEM
        )
项目:delta-sdk-python    作者:Covata    | 项目源码 | 文件源码
def __save(self, private_key, file_name):
        if not isinstance(private_key, RSAPrivateKey):
            raise TypeError("private_key must be an instance of RSAPrivateKey, "
                            "actual: {}".format(type(private_key).__name__))

        pem = private_key.private_bytes(
            serialization.Encoding.PEM,
            serialization.PrivateFormat.PKCS8,
            serialization.BestAvailableEncryption(self.__key_store_passphrase))

        file_path = os.path.join(self.key_store_path, file_name)
        if not os.path.isdir(self.key_store_path):
            os.makedirs(self.key_store_path)

        if os.path.isfile(file_path):
            msg = "Save failed: A key with name [{}] already exists".format(
                file_name)
            raise IOError(msg)

        with open(file_path, 'w') as f:
            f.write(pem.decode(encoding='utf8'))
项目:delta-sdk-python    作者:Covata    | 项目源码 | 文件源码
def decrypt_with_private_key(secret_key, private_encryption_key):
    """
    Decrypts the given secret key with the private key.

    :param bytes secret_key: the secret key to decrypt
    :param private_encryption_key: the private encryption key
    :type private_encryption_key: :class:`~rsa.RSAPrivateKey`
    :return: the decrypted key
    :rtype: bytes
    """
    return private_encryption_key.decrypt(
        secret_key,
        padding.OAEP(
            mgf=padding.MGF1(algorithm=hashes.SHA256()),
            algorithm=hashes.SHA256(),
            label=None))
项目:wetland    作者:ohmyadd    | 项目源码 | 文件源码
def verify_ssh_sig(self, data, msg):
        if msg.get_text() != 'ssh-rsa':
            return False
        key = self.key
        if isinstance(key, rsa.RSAPrivateKey):
            key = key.public_key()

        verifier = key.verifier(
            signature=msg.get_binary(),
            padding=padding.PKCS1v15(),
            algorithm=hashes.SHA1(),
        )
        verifier.update(data)
        try:
            verifier.verify()
        except InvalidSignature:
            return False
        else:
            return True
项目:zenchmarks    作者:squeaky-pl    | 项目源码 | 文件源码
def type(self):
        """
        Return the type of the object we wrap.  Currently this can only be
        'RSA', 'DSA', or 'EC'.

        @rtype: L{str}
        @raises RuntimeError: If the object type is unknown.
        """
        if isinstance(
                self._keyObject, (rsa.RSAPublicKey, rsa.RSAPrivateKey)):
            return 'RSA'
        elif isinstance(
                self._keyObject, (dsa.DSAPublicKey, dsa.DSAPrivateKey)):
            return 'DSA'
        elif isinstance(
                self._keyObject, (ec.EllipticCurvePublicKey, ec.EllipticCurvePrivateKey)):
            return 'EC'
        else:
            raise RuntimeError(
                'unknown type of object: %r' % (self._keyObject,))
项目:RemoteTree    作者:deNULL    | 项目源码 | 文件源码
def verify_ssh_sig(self, data, msg):
        if msg.get_text() != 'ssh-rsa':
            return False
        key = self.key
        if isinstance(key, rsa.RSAPrivateKey):
            key = key.public_key()

        verifier = key.verifier(
            signature=msg.get_binary(),
            padding=padding.PKCS1v15(),
            algorithm=hashes.SHA1(),
        )
        verifier.update(data)
        try:
            verifier.verify()
        except InvalidSignature:
            return False
        else:
            return True
项目:PyQYT    作者:collinsctk    | 项目源码 | 文件源码
def verify_ssh_sig(self, data, msg):
        if msg.get_text() != 'ssh-rsa':
            return False
        key = self.key
        if isinstance(key, rsa.RSAPrivateKey):
            key = key.public_key()

        verifier = key.verifier(
            signature=msg.get_binary(),
            padding=padding.PKCS1v15(),
            algorithm=hashes.SHA1(),
        )
        verifier.update(data)
        try:
            verifier.verify()
        except InvalidSignature:
            return False
        else:
            return True
项目:ctutlz    作者:theno    | 项目源码 | 文件源码
def pkey_from_cryptography_key(crypto_key):
    '''
    Modified version of `OpenSSL.crypto.PKey.from_cryptography_key()` of
    PyOpenSSL which also accepts EC Keys
    (cf. https://github.com/pyca/pyopenssl/pull/636).
    '''
    pkey = PKey()
    if not isinstance(crypto_key, (rsa.RSAPublicKey, rsa.RSAPrivateKey,
                                   dsa.DSAPublicKey, dsa.DSAPrivateKey,
                                   ec.EllipticCurvePublicKey,
                                   ec.EllipticCurvePrivateKey)):
        raise TypeError("Unsupported key type")

    pkey._pkey = crypto_key._evp_pkey
    if isinstance(crypto_key, (rsa.RSAPublicKey, dsa.DSAPublicKey,
                               ec.EllipticCurvePublicKey)):
        pkey._only_public = True
    pkey._initialized = True
    return pkey
项目:BD_T2    作者:jfmolano1587    | 项目源码 | 文件源码
def verify_ssh_sig(self, data, msg):
        if msg.get_text() != 'ssh-rsa':
            return False
        key = self.key
        if isinstance(key, rsa.RSAPrivateKey):
            key = key.public_key()

        verifier = key.verifier(
            signature=msg.get_binary(),
            padding=padding.PKCS1v15(),
            algorithm=hashes.SHA1(),
        )
        verifier.update(data)
        try:
            verifier.verify()
        except InvalidSignature:
            return False
        else:
            return True
项目:newsreap    作者:caronc    | 项目源码 | 文件源码
def genkeys(self, key_size=KeySize.NORMAL, password=None):
        """
        Generates a Private and Public Key set and returns them in a tuple
        (private, public)

        """

        self.private_key = rsa.generate_private_key(
            # The public exponent of the new key. Usually one of the small
            # Fermat primes 3, 5, 17, 257, 65537. If in doubt you should use
            # 65537. See http://www.daemonology.net/blog/2009-06-11-\
            #  cryptographic-right-answers.html
            public_exponent=65537,
            key_size=key_size,
            backend=default_backend()
        )

        # Generate our Public Key
        self.public_key = self.private_key.public_key()

        # Store our password; this will be used when we save our content
        # via it's searialized value later on
        self.password = password

        # Returns a (RSAPrivateKey, RSAPublicKey)
        return (self.private_key, self.public_key)
项目:newsreap    作者:caronc    | 项目源码 | 文件源码
def private_pem(self, password=None):
        """
        Returns the private key PEM. This is a base64 format with delimiters.

        This function returns None if the private pem information could
        not be acquired.
        """
        if not isinstance(self.private_key, RSAPrivateKey):
            return None

        if password is None:
            password = self.password

        if password:
            return self.private_key.private_bytes(
               encoding=serialization.Encoding.PEM,
               format=serialization.PrivateFormat.PKCS8,
               encryption_algorithm=serialization
                       .BestAvailableEncryption(password)
            )

        return self.private_key.private_bytes(
            encoding=serialization.Encoding.PEM,
            format=serialization.PrivateFormat.TraditionalOpenSSL,
            encryption_algorithm=serialization.NoEncryption(),
        )
项目:aws-cfn-plex    作者:lordmuffin    | 项目源码 | 文件源码
def calculate_max_pss_salt_length(key, hash_algorithm):
    if not isinstance(key, (rsa.RSAPrivateKey, rsa.RSAPublicKey)):
        raise TypeError("key must be an RSA public or private key")
    # bit length - 1 per RFC 3447
    emlen = int(math.ceil((key.key_size - 1) / 8.0))
    salt_length = emlen - hash_algorithm.digest_size - 2
    assert salt_length >= 0
    return salt_length
项目:2FAssassin    作者:maxwellkoh    | 项目源码 | 文件源码
def test_convert_private_pkey_to_cryptography_key(self):
        """
        PKey.to_cryptography_key creates a proper cryptography private key.
        """
        pkey = load_privatekey(FILETYPE_PEM, cleartextPrivateKeyPEM)
        key = pkey.to_cryptography_key()

        assert isinstance(key, rsa.RSAPrivateKey)
        assert pkey.bits() == key.key_size
项目:keyview    作者:ALSchwalm    | 项目源码 | 文件源码
def display_private_key(privkey):
    if isinstance(privkey, rsa.RSAPrivateKey):
        display_rsa_private_key(privkey)
    elif isinstance(privkey, dsa.DSAPrivateKey):
        display_dsa_private_key(privkey)
    elif isinstance(privkey, ec.EllipticCurvePrivateKey):
        display_ec_private_key(privkey)
    else:
        raise ValueError("Unknown private key type")
项目:keyview    作者:ALSchwalm    | 项目源码 | 文件源码
def get_private_key_label(pkey):
    if isinstance(pkey, rsa.RSAPrivateKey):
        return "RSA Private Key"
    elif isinstance(pkey, dsa.DSAPrivateKey):
        return "DSA Private Key"
    elif isinstance(pkey, ec.EllipticCurvePrivateKey):
        return "Elliptic Curve Private Key"
    return None
项目:komlogd    作者:komlog-io    | 项目源码 | 文件源码
def validate_privkey(value):
    if isinstance(value, RSAPrivateKey) and value.key_size >= 4096:
        return True
    raise TypeError('Invalid private key')
项目:komlogd    作者:komlog-io    | 项目源码 | 文件源码
def test_generate_rsa_key_success(self):
        ''' generate_rsa_key should return a RSAPrivateKey object with size 4096 '''
        privkey=crypto.generate_rsa_key()
        self.assertTrue(isinstance(privkey, rsa.RSAPrivateKey))
        self.assertEqual(privkey.key_size, 4096)
项目:delta-sdk-python    作者:Covata    | 项目源码 | 文件源码
def store_keys(self,
                   identity_id,
                   private_signing_key,
                   private_encryption_key):
        """
        Stores the signing and encryption key pairs under a given identity id.

        :param str identity_id: the identity id of the key owner
        :param private_signing_key: the private signing key object
        :type private_signing_key: :class:`RSAPrivateKey`
        :param private_encryption_key: the private cryptographic key object
        :type private_encryption_key: :class:`RSAPrivateKey`
        """
项目:delta-sdk-python    作者:Covata    | 项目源码 | 文件源码
def __load(self, file_name):
        # type: (str) -> RSAPrivateKey
        file_path = os.path.join(self.key_store_path, file_name)
        with(open(file_path, 'r')) as f:
            return serialization.load_pem_private_key(
                f.read().encode('utf-8'),
                password=self.__key_store_passphrase,
                backend=default_backend())
项目:delta-sdk-python    作者:Covata    | 项目源码 | 文件源码
def generate_private_key():
    """
    Generates a :class:`~rsa.RSAPrivateKey` object. The public key object can be
    extracted by calling public_key() method on the generated key object.

    :return: the generated private key object
    :rtype: :class:`~rsa.RSAPrivateKey`
    """
    return rsa.generate_private_key(public_exponent=65537,
                                    key_size=4096,
                                    backend=default_backend())
项目:delta-sdk-python    作者:Covata    | 项目源码 | 文件源码
def key2bytes():
    def convert(key):
        if isinstance(key, rsa.RSAPrivateKey):
            return key.private_bytes(
                encoding=serialization.Encoding.PEM,
                format=serialization.PrivateFormat.PKCS8,
                encryption_algorithm=serialization.NoEncryption())
        elif isinstance(key, rsa.RSAPublicKey):
            der = key.public_bytes(
                encoding=serialization.Encoding.DER,
                format=serialization.PublicFormat.SubjectPublicKeyInfo)
            return base64.b64encode(der).decode(encoding='utf-8')
    return convert
项目:wetland    作者:ohmyadd    | 项目源码 | 文件源码
def public_numbers(self):
        if isinstance(self.key, rsa.RSAPrivateKey):
            return self.key.private_numbers().public_numbers
        else:
            return self.key.public_numbers()
项目:wetland    作者:ohmyadd    | 项目源码 | 文件源码
def can_sign(self):
        return isinstance(self.key, rsa.RSAPrivateKey)
项目:wetland    作者:ohmyadd    | 项目源码 | 文件源码
def _decode_key(self, data):
        try:
            key = serialization.load_der_private_key(
                data, password=None, backend=default_backend()
            )
        except ValueError as e:
            raise SSHException(str(e))

        assert isinstance(key, rsa.RSAPrivateKey)
        self.key = key
项目:aapns    作者:HDE    | 项目源码 | 文件源码
def gen_certificate(key: rsa.RSAPrivateKey,
                    common_name: str,
                    *,
                    issuer: Optional[str]=None,
                    sign_key: Optional[rsa.RSAPrivateKey]=None) -> x509.Certificate:
    now = datetime.datetime.utcnow()
    return x509.CertificateBuilder().subject_name(
        x509.Name([
            x509.NameAttribute(NameOID.COMMON_NAME, common_name),
        ])
    ).issuer_name(
        x509.Name([
            x509.NameAttribute(
                NameOID.COMMON_NAME,
                issuer or common_name
            )
        ])
    ).not_valid_before(
        now
    ).not_valid_after(
        now + datetime.timedelta(seconds=86400)
    ).serial_number(
        x509.random_serial_number()
    ).public_key(
        key.public_key()
    ).add_extension(
        x509.BasicConstraints(ca=True, path_length=0), critical=True
    ).sign(
        private_key=sign_key or key,
        algorithm=hashes.SHA256(),
        backend=BACKEND
    )
项目:deb-python-pysaml2    作者:openstack    | 项目源码 | 文件源码
def verify(self, msg, sig, key=None):
        if key is None:
            key = self.key

        try:
            if isinstance(key, rsa.RSAPrivateKey):
                key = key.public_key()

            key.verify(sig, msg, PKCS1v15(), self.digest)
            return True
        except InvalidSignature:
            return False
项目:RemoteTree    作者:deNULL    | 项目源码 | 文件源码
def public_numbers(self):
        if isinstance(self.key, rsa.RSAPrivateKey):
            return self.key.private_numbers().public_numbers
        else:
            return self.key.public_numbers()
项目:RemoteTree    作者:deNULL    | 项目源码 | 文件源码
def can_sign(self):
        return isinstance(self.key, rsa.RSAPrivateKey)
项目:RemoteTree    作者:deNULL    | 项目源码 | 文件源码
def _decode_key(self, data):
        try:
            key = serialization.load_der_private_key(
                data, password=None, backend=default_backend()
            )
        except ValueError as e:
            raise SSHException(str(e))

        assert isinstance(key, rsa.RSAPrivateKey)
        self.key = key
项目:RemoteTree    作者:deNULL    | 项目源码 | 文件源码
def calculate_max_pss_salt_length(key, hash_algorithm):
    if not isinstance(key, (rsa.RSAPrivateKey, rsa.RSAPublicKey)):
        raise TypeError("key must be an RSA public or private key")
    # bit length - 1 per RFC 3447
    emlen = int(math.ceil((key.key_size - 1) / 8.0))
    salt_length = emlen - hash_algorithm.digest_size - 2
    assert salt_length >= 0
    return salt_length
项目:quickstart-git2s3    作者:aws-quickstart    | 项目源码 | 文件源码
def calculate_max_pss_salt_length(key, hash_algorithm):
    if not isinstance(key, (rsa.RSAPrivateKey, rsa.RSAPublicKey)):
        raise TypeError("key must be an RSA public or private key")
    # bit length - 1 per RFC 3447
    emlen = int(math.ceil((key.key_size - 1) / 8.0))
    salt_length = emlen - hash_algorithm.digest_size - 2
    assert salt_length >= 0
    return salt_length
项目:txacme    作者:twisted    | 项目源码 | 文件源码
def test_rsa_key(self):
        """
        Passing ``u'rsa'`` results in an RSA private key.
        """
        key1 = generate_private_key(u'rsa')
        self.assertThat(key1, IsInstance(rsa.RSAPrivateKey))
        key2 = generate_private_key(u'rsa')
        self.assertThat(key2, IsInstance(rsa.RSAPrivateKey))
        self.assertThat(
            key1.public_key().public_numbers(),
            Not(Equals(key2.public_key().public_numbers())))
项目:PyQYT    作者:collinsctk    | 项目源码 | 文件源码
def public_numbers(self):
        if isinstance(self.key, rsa.RSAPrivateKey):
            return self.key.private_numbers().public_numbers
        else:
            return self.key.public_numbers()
项目:PyQYT    作者:collinsctk    | 项目源码 | 文件源码
def can_sign(self):
        return isinstance(self.key, rsa.RSAPrivateKey)
项目:PyQYT    作者:collinsctk    | 项目源码 | 文件源码
def _decode_key(self, data):
        try:
            key = serialization.load_der_private_key(
                data, password=None, backend=default_backend()
            )
        except ValueError as e:
            raise SSHException(str(e))

        assert isinstance(key, rsa.RSAPrivateKey)
        self.key = key
项目:Playground3    作者:CrimsonVista    | 项目源码 | 文件源码
def __init__(self, key):
        if isinstance(key, RSAPrivateKey):
            self.signer = key.sign
            self.verifier = key.public_key().verify
        elif isinstance(key, RSAPublicKey):
            self.signer = None
            self.verifier = key.verify
项目:Playground3    作者:CrimsonVista    | 项目源码 | 文件源码
def serializePrivateKey(private_key):
    assert(isinstance(private_key, RSAPrivateKey))
    pem = private_key.private_bytes(
        encoding=serialization.Encoding.PEM,
        format=serialization.PrivateFormat.TraditionalOpenSSL,
        encryption_algorithm=serialization.NoEncryption()
    )
    return pem
项目:concorde    作者:frutiger    | 项目源码 | 文件源码
def key_to_pubkey(key):
    if isinstance(key, bytes):
        return key
    elif isinstance(key, ec.EllipticCurvePrivateKey):
        return key.public_key()
    elif isinstance(key, rsa.RSAPrivateKey):
        return key.public_key()
    else:
        raise ValueError('RFC 7518 non-compliant key: ' + str(type(key)))
项目:BD_T2    作者:jfmolano1587    | 项目源码 | 文件源码
def public_numbers(self):
        if isinstance(self.key, rsa.RSAPrivateKey):
            return self.key.private_numbers().public_numbers
        else:
            return self.key.public_numbers()
项目:BD_T2    作者:jfmolano1587    | 项目源码 | 文件源码
def can_sign(self):
        return isinstance(self.key, rsa.RSAPrivateKey)
项目:BD_T2    作者:jfmolano1587    | 项目源码 | 文件源码
def _decode_key(self, data):
        try:
            key = serialization.load_der_private_key(
                data, password=None, backend=default_backend()
            )
        except ValueError as e:
            raise SSHException(str(e))

        assert isinstance(key, rsa.RSAPrivateKey)
        self.key = key