Skip to content

Upgrading cryptography 0.4 to 0.5

Breaking0.4 → 0.5.4Breaking1Deprecated7New9Changed2Fixed2

BreakingUpgrade verdict

1 breaking change.

  • The GCM encryption mode now rejects shortened authentication tags unless you explicitly ask for them.
  • Deprecates the concrete RSAPrivateKey class in favor of backend specific providers of the RSAPrivateKey interface.
  • Deprecates the concrete RSAPublicKey in favor of backend specific providers of the RSAPublicKey interface.
  • Deprecates encrypt_rsa, decrypt_rsa, create_rsa_signature_ctx and create_rsa_verification_ctx on RSABackend.
Top 4 of 5 that need code or config changes
Breaking1
GCM no longer allows tag truncation by default; pass min_tag_length to preserve old behavior.
cryptography.hazmat.primitives.ciphers.modes.GCMmin_tag_length
Deprecated4
Deprecates the concrete RSAPrivateKey class in favor of backend specific providers of the RSAPrivateKey interface.
RSAPrivateKeycryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyDSAPrivateKeycryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyDSAParameterscryptography.hazmat.primitives.asymmetric.dsa.DSAParameters
Deprecates the concrete RSAPublicKey in favor of backend specific providers of the RSAPublicKey interface.
RSAPublicKeycryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyDSAPublicKeycryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey
Deprecates encrypt_rsa, decrypt_rsa, create_rsa_signature_ctx and create_rsa_verification_ctx on RSABackend.
encrypt_rsadecrypt_rsacreate_rsa_signature_ctxcreate_rsa_verification_ctxRSABackend
Deprecates create_dsa_signature_ctx and create_dsa_verification_ctx on DSABackend.
create_dsa_signature_ctxcreate_dsa_verification_ctxDSABackend

Generated by DepDelta from published Python source. Not mixed with prose notes.

  • added: class EllipticCurveBackend(object)
  • added: class PKCS8SerializationBackend(object)
  • added: method DSABackend.generate_dsa_private_key_and_parameters(key_size)
  • added: method DSABackend.load_dsa_parameter_numbers(numbers)
  • added: method DSABackend.load_dsa_private_numbers(numbers)
  • added: method DSABackend.load_dsa_public_numbers(numbers)
  • added: method EllipticCurveBackend.elliptic_curve_private_key_from_numbers(numbers)
  • added: method EllipticCurveBackend.elliptic_curve_public_key_from_numbers(numbers)
  • added: method EllipticCurveBackend.elliptic_curve_signature_algorithm_supported(signature_algorithm, curve)
  • added: method EllipticCurveBackend.elliptic_curve_supported(curve)
  • added: method EllipticCurveBackend.generate_elliptic_curve_private_key(curve)
  • added: method PKCS8SerializationBackend.load_pkcs8_pem_private_key(data, password)
  • added: method RSABackend.generate_rsa_parameters_supported(public_exponent, key_size)
  • added: method RSABackend.load_rsa_private_numbers(numbers)
  • added: method RSABackend.load_rsa_public_numbers(numbers)
  • added: method RSABackend.rsa_padding_supported(padding)
  • added: method MultiBackend.decrypt_rsa(private_key, ciphertext, padding)
  • added: method MultiBackend.elliptic_curve_private_key_from_numbers(numbers)
  • added: method MultiBackend.elliptic_curve_public_key_from_numbers(numbers)
  • added: method MultiBackend.elliptic_curve_signature_algorithm_supported(signature_algorithm, curve)
  • added: method MultiBackend.elliptic_curve_supported(curve)
  • added: method MultiBackend.encrypt_rsa(public_key, plaintext, padding)
  • added: method MultiBackend.generate_dsa_private_key_and_parameters(key_size)
  • added: method MultiBackend.generate_elliptic_curve_private_key(curve)
  • added: method MultiBackend.generate_rsa_parameters_supported(public_exponent, key_size)
  • added: method MultiBackend.load_pkcs8_pem_private_key(data, password)
  • added: method MultiBackend.load_rsa_private_numbers(numbers)
  • added: method MultiBackend.load_rsa_public_numbers(numbers)
  • added: method MultiBackend.load_traditional_openssl_pem_private_key(data, password)
  • added: method MultiBackend.mgf1_hash_supported(algorithm)
  • added: method MultiBackend.rsa_padding_supported(padding)
  • added: method Backend.elliptic_curve_private_key_from_numbers(numbers)
  • added: method Backend.elliptic_curve_public_key_from_numbers(numbers)
  • added: method Backend.elliptic_curve_signature_algorithm_supported(signature_algorithm, curve)
  • added: method Backend.elliptic_curve_supported(curve)
  • added: method Backend.generate_dsa_private_key_and_parameters(key_size)
  • added: method Backend.generate_elliptic_curve_private_key(curve)
  • added: method Backend.generate_rsa_parameters_supported(public_exponent, key_size)
  • added: method Backend.load_dsa_parameter_numbers(numbers)
  • added: method Backend.load_dsa_private_numbers(numbers)
  • added: method Backend.load_dsa_public_numbers(numbers)
  • added: method Backend.load_pkcs8_pem_private_key(data, password)
  • added: method Backend.load_rsa_private_numbers(numbers)
  • added: method Backend.load_rsa_public_numbers(numbers)
  • added: method Backend.load_traditional_openssl_pem_private_key(data, password)
  • added: method Backend.rsa_padding_supported(padding)
  • added: variable CONDITIONAL_NAMES
  • added: variable CUSTOMIZATIONS
  • added: variable FUNCTIONS
  • added: variable INCLUDES
  • added: variable MACROS
  • added: variable TYPES
  • added: variable CONDITIONAL_NAMES
  • added: variable CUSTOMIZATIONS
  • added: variable FUNCTIONS
  • added: variable INCLUDES
  • added: variable MACROS
  • added: variable TYPES
  • added: variable CONDITIONAL_NAMES
  • added: variable CUSTOMIZATIONS
  • added: variable FUNCTIONS
  • added: variable INCLUDES
  • added: variable MACROS
  • added: variable TYPES
  • added: variable CONDITIONAL_NAMES
  • added: variable CUSTOMIZATIONS
  • added: variable FUNCTIONS
  • added: variable INCLUDES
  • added: variable MACROS
  • added: variable TYPES
  • added: variable CONDITIONAL_NAMES
  • added: variable CUSTOMIZATIONS
  • added: variable FUNCTIONS
  • added: variable INCLUDES
  • added: variable MACROS
  • added: variable TYPES
  • added: variable CONDITIONAL_NAMES
  • added: variable CUSTOMIZATIONS
  • added: variable FUNCTIONS
  • added: variable INCLUDES
  • added: variable MACROS
  • added: variable TYPES
  • added: variable CONDITIONAL_NAMES
  • added: variable CUSTOMIZATIONS
  • added: variable FUNCTIONS
  • added: variable INCLUDES
  • added: variable MACROS
  • added: variable TYPES
  • added: class DSAParameterNumbers(object)
  • added: class DSAPrivateNumbers(object)
  • added: class DSAPublicNumbers(object)
  • added: constructor DSAParameterNumbers(p, q, g)
  • added: constructor DSAPrivateNumbers(x, public_numbers)
  • added: constructor DSAPublicNumbers(y, parameter_numbers)
  • added: function generate_parameters(key_size, backend)
  • added: function generate_private_key(key_size, backend)
  • added: method DSAParameterNumbers.parameters(backend)
  • added: method DSAPrivateNumbers.private_key(backend)
  • added: method DSAPublicNumbers.public_key(backend)
  • added: property DSAParameterNumbers.g
  • added: property DSAParameterNumbers.p
  • added: property DSAParameterNumbers.q
  • added: property DSAPrivateNumbers.public_numbers
  • added: property DSAPrivateNumbers.x
  • added: property DSAPublicNumbers.parameter_numbers
  • added: property DSAPublicNumbers.y
  • added: class ECDSA(object)
  • added: class EllipticCurvePrivateNumbers(object)
  • added: class EllipticCurvePublicNumbers(object)
  • added: class SECP192R1(object)
  • added: class SECP224R1(object)
  • added: class SECP256R1(object)
  • added: class SECP384R1(object)
  • added: class SECP521R1(object)
  • added: class SECT163K1(object)
  • added: class SECT163R2(object)
  • added: class SECT233K1(object)
  • added: class SECT233R1(object)
  • added: class SECT283K1(object)
  • added: class SECT283R1(object)
  • added: class SECT409K1(object)
  • added: class SECT409R1(object)
  • added: class SECT571K1(object)
  • added: class SECT571R1(object)
  • added: constructor ECDSA(algorithm)
  • added: constructor EllipticCurvePrivateNumbers(private_value, public_numbers)
  • added: constructor EllipticCurvePublicNumbers(x, y, curve)
  • added: function generate_private_key(curve, backend)
  • added: method EllipticCurvePrivateNumbers.private_key(backend)
  • added: method EllipticCurvePublicNumbers.public_key(backend)
  • added: property ECDSA.algorithm
  • added: property EllipticCurvePrivateNumbers.private_value
  • added: property EllipticCurvePrivateNumbers.public_numbers
  • added: property EllipticCurvePublicNumbers.curve
  • added: property EllipticCurvePublicNumbers.x
  • added: property EllipticCurvePublicNumbers.y
  • added: property SECP192R1.key_size
  • added: property SECP192R1.name
  • added: property SECP224R1.key_size
  • added: property SECP224R1.name
  • added: property SECP256R1.key_size
  • added: property SECP256R1.name
  • added: property SECP384R1.key_size
  • added: property SECP384R1.name
  • added: property SECP521R1.key_size
  • added: property SECP521R1.name
  • added: property SECT163K1.key_size
  • added: property SECT163K1.name
  • added: property SECT163R2.key_size
  • added: property SECT163R2.name
  • added: property SECT233K1.key_size
  • added: property SECT233K1.name
  • added: property SECT233R1.key_size
  • added: property SECT233R1.name
  • added: property SECT283K1.key_size
  • added: property SECT283K1.name
  • added: property SECT283R1.key_size
  • added: property SECT283R1.name
  • added: property SECT409K1.key_size
  • added: property SECT409K1.name
  • added: property SECT409R1.key_size
  • added: property SECT409R1.name
  • added: property SECT571K1.key_size
  • added: property SECT571K1.name
  • added: property SECT571R1.key_size
  • added: property SECT571R1.name
  • added: class RSAPrivateNumbers(object)
  • added: class RSAPublicNumbers(object)
  • added: constructor RSAPrivateNumbers(p, q, d, dmp1, dmq1, iqmp, public_numbers)
  • added: constructor RSAPublicNumbers(e, n)
  • added: function generate_private_key(public_exponent, key_size, backend)
  • added: method RSAPrivateNumbers.private_key(backend)
  • added: method RSAPublicNumbers.public_key(backend)
  • added: property RSAPrivateNumbers.d
  • added: property RSAPrivateNumbers.dmp1
  • added: property RSAPrivateNumbers.dmq1
  • added: property RSAPrivateNumbers.iqmp
  • added: property RSAPrivateNumbers.p
  • added: property RSAPrivateNumbers.public_numbers
  • added: property RSAPrivateNumbers.q
  • added: property RSAPublicNumbers.e
  • added: property RSAPublicNumbers.n
  • removed: method CBC.validate_for_algorithm(algorithm)
  • removed: method CFB.validate_for_algorithm(algorithm)
  • removed: method OFB.validate_for_algorithm(algorithm)
  • changed: constructor GCM(initialization_vector, tag=…) → constructor GCM(initialization_vector, tag=…, min_tag_length=…)
  • added: class CFB8(object)
  • added: constructor CFB8(initialization_vector)
  • added: field CBC.validate_for_algorithm
  • added: field CFB.validate_for_algorithm
  • added: field CFB8.name
  • added: field CFB8.validate_for_algorithm
  • added: field OFB.validate_for_algorithm
  • removed: method DSAParameters.g()
  • removed: method DSAParameters.generator()
  • removed: method DSAParameters.modulus()
  • removed: method DSAParameters.p()
  • removed: method DSAParameters.q()
  • removed: method DSAParameters.subgroup_order()
  • removed: method DSAPrivateKey.x()
  • removed: method DSAPrivateKey.y()
  • removed: method DSAPublicKey.y()
  • removed: method RSAPrivateKey.d()
  • removed: method RSAPrivateKey.dmp1()
  • removed: method RSAPrivateKey.dmq1()
  • removed: method RSAPrivateKey.e()
  • removed: method RSAPrivateKey.iqmp()
  • removed: method RSAPrivateKey.modulus()
  • removed: method RSAPrivateKey.n()
  • removed: method RSAPrivateKey.p()
  • removed: method RSAPrivateKey.private_exponent()
  • removed: method RSAPrivateKey.public_exponent()
  • removed: method RSAPrivateKey.q()
  • removed: method RSAPublicKey.e()
  • removed: method RSAPublicKey.modulus()
  • removed: method RSAPublicKey.n()
  • removed: method RSAPublicKey.public_exponent()
  • changed: method RSAPrivateKey.signer(padding, algorithm, backend) → method RSAPrivateKey.signer(padding, algorithm)
  • changed: method RSAPublicKey.verifier(signature, padding, algorithm, backend) → method RSAPublicKey.verifier(signature, padding, algorithm)
  • added: class DSAParametersWithNumbers(DSAParameters)
  • added: class DSAPrivateKeyWithNumbers(DSAPrivateKey)
  • added: class DSAPublicKeyWithNumbers(DSAPublicKey)
  • added: class EllipticCurve(object)
  • added: class EllipticCurvePrivateKey(object)
  • added: class EllipticCurvePublicKey(object)
  • added: class EllipticCurveSignatureAlgorithm(object)
  • added: class RSAPrivateKeyWithNumbers(RSAPrivateKey)
  • added: class RSAPublicKeyWithNumbers(RSAPublicKey)
  • added: method DSAParameters.generate_private_key()
  • added: method DSAParametersWithNumbers.parameter_numbers()
  • added: method DSAPrivateKeyWithNumbers.private_numbers()
  • added: method DSAPublicKeyWithNumbers.public_numbers()
  • added: method EllipticCurve.key_size()
  • added: method EllipticCurve.name()
  • added: method EllipticCurvePrivateKey.curve()
  • added: method EllipticCurvePrivateKey.public_key()
  • added: method EllipticCurvePrivateKey.signer(signature_algorithm)
  • added: method EllipticCurvePublicKey.curve()
  • added: method EllipticCurvePublicKey.verifier(signature, signature_algorithm)
  • added: method EllipticCurveSignatureAlgorithm.algorithm()
  • added: method RSAPrivateKey.decrypt(ciphertext, padding)
  • added: method RSAPrivateKeyWithNumbers.private_numbers()
  • added: method RSAPublicKey.encrypt(plaintext, padding)
  • added: method RSAPublicKeyWithNumbers.public_numbers()
  • added: class HKDFExpand(object)
  • added: constructor HKDFExpand(algorithm, length, info, backend)
  • added: method HKDFExpand.derive(key_material)
  • added: method HKDFExpand.verify(key_material, expected_key)
  • added: function load_pem_pkcs8_private_key(data, password, backend)
  • added: function load_pem_traditional_openssl_private_key(data, password, backend)
  • added: variable DeprecatedIn05