fix removed cryptography.utils.register_interface

This commit is contained in:
Robert Hofer
2022-09-07 22:26:17 +02:00
parent 02766befcd
commit d84597eb84

View File

@@ -34,34 +34,67 @@ def _openssl_get_supported_curves():
return curves return curves
@utils.register_interface(ec.EllipticCurve) def use_legacy_cryptography_decorator():
class BrainpoolP256R1(object): """
name = 'brainpoolP256r1' The decorator utils.register_interface was removed in version 38.0.0. Keep using it
key_size = 256 if the decorator exists, inherit from `ec.EllipticCurve` otherwise.
"""
return hasattr(utils, "register_interface") and callable(utils.register_interface)
@utils.register_interface(ec.EllipticCurve) if use_legacy_cryptography_decorator():
class BrainpoolP384R1(object): @utils.register_interface(ec.EllipticCurve)
name = 'brainpoolP384r1' class BrainpoolP256R1(object):
key_size = 384 name = 'brainpoolP256r1'
key_size = 256
@utils.register_interface(ec.EllipticCurve) @utils.register_interface(ec.EllipticCurve)
class BrainpoolP512R1(object): class BrainpoolP384R1(object):
name = 'brainpoolP512r1' name = 'brainpoolP384r1'
key_size = 512 key_size = 384
@utils.register_interface(ec.EllipticCurve) @utils.register_interface(ec.EllipticCurve)
class X25519(object): class BrainpoolP512R1(object):
name = 'X25519' name = 'brainpoolP512r1'
key_size = 256 key_size = 512
@utils.register_interface(ec.EllipticCurve) @utils.register_interface(ec.EllipticCurve)
class Ed25519(object): class X25519(object):
name = 'ed25519' name = 'X25519'
key_size = 256 key_size = 256
@utils.register_interface(ec.EllipticCurve)
class Ed25519(object):
name = 'ed25519'
key_size = 256
else:
class BrainpoolP256R1(ec.EllipticCurve):
name = 'brainpoolP256r1'
key_size = 256
class BrainpoolP384R1(ec.EllipticCurve):
name = 'brainpoolP384r1'
key_size = 384
class BrainpoolP512R1(ec.EllipticCurve):
name = 'brainpoolP512r1'
key_size = 512
class X25519(ec.EllipticCurve):
name = 'X25519'
key_size = 256
class Ed25519(ec.EllipticCurve):
name = 'ed25519'
key_size = 256
# add these curves to the _CURVE_TYPES list # add these curves to the _CURVE_TYPES list