From 64ddb7a87d2eb5d1230b928b12dc7dca0c6c637d Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Sat, 14 Feb 2015 19:20:28 -0600 Subject: move asymmetric padding interface to primitives.asymmetric.padding --- src/cryptography/hazmat/backends/openssl/rsa.py | 14 +++++------ .../hazmat/primitives/asymmetric/padding.py | 19 +++++++++++---- .../hazmat/primitives/interfaces/__init__.py | 28 ++++++++++++---------- 3 files changed, 37 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/cryptography/hazmat/backends/openssl/rsa.py b/src/cryptography/hazmat/backends/openssl/rsa.py index 310b9949..a4bb283d 100644 --- a/src/cryptography/hazmat/backends/openssl/rsa.py +++ b/src/cryptography/hazmat/backends/openssl/rsa.py @@ -13,7 +13,7 @@ from cryptography.exceptions import ( from cryptography.hazmat.primitives import hashes, interfaces from cryptography.hazmat.primitives.asymmetric import rsa from cryptography.hazmat.primitives.asymmetric.padding import ( - MGF1, OAEP, PKCS1v15, PSS + AsymmetricPadding, MGF1, OAEP, PKCS1v15, PSS ) from cryptography.hazmat.primitives.interfaces import ( RSAPrivateKeyWithNumbers, RSAPublicKeyWithNumbers @@ -34,7 +34,7 @@ def _get_rsa_pss_salt_length(pss, key_size, digest_size): def _enc_dec_rsa(backend, key, data, padding): - if not isinstance(padding, interfaces.AsymmetricPadding): + if not isinstance(padding, AsymmetricPadding): raise TypeError("Padding must be an instance of AsymmetricPadding.") if isinstance(padding, PKCS1v15): @@ -150,9 +150,8 @@ class _RSASignatureContext(object): self._backend = backend self._private_key = private_key - if not isinstance(padding, interfaces.AsymmetricPadding): - raise TypeError( - "Expected provider of interfaces.AsymmetricPadding.") + if not isinstance(padding, AsymmetricPadding): + raise TypeError("Expected provider of AsymmetricPadding.") self._pkey_size = self._backend._lib.EVP_PKEY_size( self._private_key._evp_pkey @@ -339,9 +338,8 @@ class _RSAVerificationContext(object): self._public_key = public_key self._signature = signature - if not isinstance(padding, interfaces.AsymmetricPadding): - raise TypeError( - "Expected provider of interfaces.AsymmetricPadding.") + if not isinstance(padding, AsymmetricPadding): + raise TypeError("Expected provider of AsymmetricPadding.") self._pkey_size = self._backend._lib.EVP_PKEY_size( self._public_key._evp_pkey diff --git a/src/cryptography/hazmat/primitives/asymmetric/padding.py b/src/cryptography/hazmat/primitives/asymmetric/padding.py index d0c3eade..c796d8e4 100644 --- a/src/cryptography/hazmat/primitives/asymmetric/padding.py +++ b/src/cryptography/hazmat/primitives/asymmetric/padding.py @@ -4,18 +4,29 @@ from __future__ import absolute_import, division, print_function +import abc + import six from cryptography import utils -from cryptography.hazmat.primitives import hashes, interfaces +from cryptography.hazmat.primitives import hashes + + +@six.add_metaclass(abc.ABCMeta) +class AsymmetricPadding(object): + @abc.abstractproperty + def name(self): + """ + A string naming this padding (e.g. "PSS", "PKCS1"). + """ -@utils.register_interface(interfaces.AsymmetricPadding) +@utils.register_interface(AsymmetricPadding) class PKCS1v15(object): name = "EMSA-PKCS1-v1_5" -@utils.register_interface(interfaces.AsymmetricPadding) +@utils.register_interface(AsymmetricPadding) class PSS(object): MAX_LENGTH = object() name = "EMSA-PSS" @@ -33,7 +44,7 @@ class PSS(object): self._salt_length = salt_length -@utils.register_interface(interfaces.AsymmetricPadding) +@utils.register_interface(AsymmetricPadding) class OAEP(object): name = "EME-OAEP" diff --git a/src/cryptography/hazmat/primitives/interfaces/__init__.py b/src/cryptography/hazmat/primitives/interfaces/__init__.py index 5de7fb8c..75426aa8 100644 --- a/src/cryptography/hazmat/primitives/interfaces/__init__.py +++ b/src/cryptography/hazmat/primitives/interfaces/__init__.py @@ -9,9 +9,12 @@ import abc import six from cryptography import utils -from cryptography.hazmat.primitives import ciphers, hashes, padding -from cryptography.hazmat.primitives.asymmetric import dsa, ec, rsa +from cryptography.hazmat.primitives import ciphers, hashes +from cryptography.hazmat.primitives.asymmetric import ( + dsa, ec, padding, rsa +) from cryptography.hazmat.primitives.ciphers import modes +from cryptography.hazmat.primitives.padding import PaddingContext BlockCipherAlgorithm = utils.deprecated( @@ -241,7 +244,7 @@ DSAPublicKeyWithNumbers = utils.deprecated( PaddingContext = utils.deprecated( - padding.PaddingContext, + PaddingContext, __name__, ( "The PaddingContext interface has moved to the " @@ -313,6 +316,16 @@ RSAPublicKeyWithNumbers = utils.deprecated( utils.DeprecatedIn08 ) +AsymmetricPadding = utils.deprecated( + padding.AsymmetricPadding, + __name__, + ( + "The AsymmetricPadding interface has moved to the " + "cryptography.hazmat.primitives.asymmetric.padding module" + ), + utils.DeprecatedIn08 +) + @six.add_metaclass(abc.ABCMeta) class AsymmetricSignatureContext(object): @@ -345,15 +358,6 @@ class AsymmetricVerificationContext(object): """ -@six.add_metaclass(abc.ABCMeta) -class AsymmetricPadding(object): - @abc.abstractproperty - def name(self): - """ - A string naming this padding (e.g. "PSS", "PKCS1"). - """ - - @six.add_metaclass(abc.ABCMeta) class KeyDerivationFunction(object): @abc.abstractmethod -- cgit v1.2.3