generate_keypair_raw

classmethod KeyManager.generate_keypair_raw(alg='rsa', **kwargs) → Tuple[Union[cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization, cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization, cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PrivateKey], Union[cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey, cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey, cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PublicKey]][source]

Generate a key pair, returning private + public key instances from the cryptography module.

Example:

>>> priv, pub = KeyManager.generate_keypair_raw(alg='rsa', key_size=1024)
>>> priv.private_bytes(encoding=Encoding.PEM, format=PrivateFormat.PKCS8)
b'-----BEGIN PRIVATE KEY-----\nMIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAMjkl
 ...Pw6eZGFwBEYY\n-----END PRIVATE KEY-----\n'

>>> priv, pub = KeyManager.generate_keypair_raw(alg='ecdsa', curve=ec.SECP521R1)
>>> pub.public_bytes(encoding=Encoding.OpenSSH, format=PublicFormat.OpenSSH)
b'ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1...dJCxguBQnb1hL6aDH4fHCjpy6A=='
Parameters
  • alg (str) – The algorithm to generate a key for, e.g. 'rsa'

  • kwargs – All kwargs are forwarded to the matching generator in generators

Return tuple keys

A tuple containing a private key instance, and public key instance