diff options
-rw-r--r-- | cryptography/bindings/openssl/api.py | 18 | ||||
-rw-r--r-- | cryptography/primitives/abc/__init__.py | 0 | ||||
-rw-r--r-- | cryptography/primitives/abc/block/__init__.py | 0 | ||||
-rw-r--r-- | cryptography/primitives/block/modes.py | 4 | ||||
-rw-r--r-- | cryptography/primitives/interfaces.py (renamed from cryptography/primitives/abc/block/modes.py) | 6 | ||||
-rw-r--r-- | setup.py | 2 | ||||
-rw-r--r-- | tox.ini | 1 |
7 files changed, 14 insertions, 17 deletions
diff --git a/cryptography/bindings/openssl/api.py b/cryptography/bindings/openssl/api.py index f95e4d62..917c1846 100644 --- a/cryptography/bindings/openssl/api.py +++ b/cryptography/bindings/openssl/api.py @@ -13,7 +13,7 @@ from __future__ import absolute_import, division, print_function -from cryptography.primitives.abc.block import modes +from cryptography.primitives import interfaces import cffi @@ -74,12 +74,14 @@ class API(object): ) evp_cipher = self._lib.EVP_get_cipherbyname(ciphername.encode("ascii")) assert evp_cipher != self._ffi.NULL - iv_nonce = self._introspect(mode) + if isinstance(mode, interfaces.ModeWithInitializationVector): + iv_nonce = mode.initialization_vector + else: + iv_nonce = self._ffi.NULL # TODO: Sometimes this needs to be a DecryptInit, when? res = self._lib.EVP_EncryptInit_ex( - ctx, evp_cipher, self._ffi.NULL, cipher.key, - iv_nonce + ctx, evp_cipher, self._ffi.NULL, cipher.key, iv_nonce ) assert res != 0 @@ -88,14 +90,6 @@ class API(object): self._lib.EVP_CIPHER_CTX_set_padding(ctx, 0) return ctx - def _introspect(self, mode): - if isinstance(mode, modes.ModeWithInitializationVector): - return mode.initialization_vector - elif isinstance(mode, modes.ModeWithNonce): - return mode.nonce - else: - return self._ffi.NULL - def update_encrypt_context(self, ctx, plaintext): buf = self._ffi.new("unsigned char[]", len(plaintext)) outlen = self._ffi.new("int *") diff --git a/cryptography/primitives/abc/__init__.py b/cryptography/primitives/abc/__init__.py deleted file mode 100644 index e69de29b..00000000 --- a/cryptography/primitives/abc/__init__.py +++ /dev/null diff --git a/cryptography/primitives/abc/block/__init__.py b/cryptography/primitives/abc/block/__init__.py deleted file mode 100644 index e69de29b..00000000 --- a/cryptography/primitives/abc/block/__init__.py +++ /dev/null diff --git a/cryptography/primitives/block/modes.py b/cryptography/primitives/block/modes.py index 1e9b14b7..c722e739 100644 --- a/cryptography/primitives/block/modes.py +++ b/cryptography/primitives/block/modes.py @@ -13,7 +13,7 @@ from __future__ import absolute_import, division, print_function -from cryptography.primitives.abc.block import modes +from cryptography.primitives import interfaces class CBC(object): @@ -28,4 +28,4 @@ class ECB(object): name = "ECB" -modes.ModeWithInitializationVector.register(CBC) +interfaces.ModeWithInitializationVector.register(CBC) diff --git a/cryptography/primitives/abc/block/modes.py b/cryptography/primitives/interfaces.py index 609a2ae3..a2b091df 100644 --- a/cryptography/primitives/abc/block/modes.py +++ b/cryptography/primitives/interfaces.py @@ -14,8 +14,8 @@ from __future__ import absolute_import, division, print_function import abc +import six -ModeWithInitializationVector = abc.ABCMeta('ModeWithInitializationVector', - (object, ), {}) -ModeWithNonce = abc.ABCMeta('ModeWithNonce', (object, ), {}) +class ModeWithInitializationVector(six.with_metaclass(abc.ABCMeta)): + pass @@ -21,9 +21,11 @@ with open("cryptography/__about__.py") as fp: CFFI_DEPENDENCY = "cffi>=0.6" +SIX_DEPENDENCY = "six>=1.4.1" install_requires = [ CFFI_DEPENDENCY, + SIX_DEPENDENCY ] setup_requires = [ @@ -5,6 +5,7 @@ envlist = py26,py27,pypy,py32,py33,docs,pep8 deps = pytest-cov pretend + six commands = py.test --cov=cryptography/ --cov=tests/ [testenv:docs] |