diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2013-10-20 13:15:28 -0500 |
---|---|---|
committer | Paul Kehrer <paul.l.kehrer@gmail.com> | 2013-10-22 16:48:42 -0500 |
commit | daac6d056753614077941da0a392c086dadbe965 (patch) | |
tree | 6f8e9e3c5912d7d2c48625286e87a23d38bd82b4 | |
parent | f2259868052becbf38c05f0dfabee41fbaabf72e (diff) | |
download | cryptography-daac6d056753614077941da0a392c086dadbe965.tar.gz cryptography-daac6d056753614077941da0a392c086dadbe965.tar.bz2 cryptography-daac6d056753614077941da0a392c086dadbe965.zip |
When copying a hash, pass the api through to the new object
-rw-r--r-- | cryptography/primitives/hashes.py | 2 | ||||
-rw-r--r-- | tests/primitives/test_hashes.py | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/cryptography/primitives/hashes.py b/cryptography/primitives/hashes.py index 7133a916..3aa52462 100644 --- a/cryptography/primitives/hashes.py +++ b/cryptography/primitives/hashes.py @@ -37,7 +37,7 @@ class BaseHash(six.with_metaclass(abc.ABCMeta)): self._api.update_hash_context(self._ctx, data) def copy(self): - return self.__class__(ctx=self._copy_ctx()) + return self.__class__(api=self._api, ctx=self._copy_ctx()) def digest(self): return self._api.finalize_hash_context(self._copy_ctx(), diff --git a/tests/primitives/test_hashes.py b/tests/primitives/test_hashes.py index 03de8916..d721f7af 100644 --- a/tests/primitives/test_hashes.py +++ b/tests/primitives/test_hashes.py @@ -17,6 +17,8 @@ import pytest import six +from cryptography.bindings import _default_api + from cryptography.primitives import hashes from .utils import generate_base_hash_test @@ -33,6 +35,15 @@ class TestBaseHash(object): assert isinstance(m.hexdigest(), str) +class TestDefaultAPISHA1(object): + def test_default_api_creation(self): + """ + This test assumes the presence of SHA1 in the default API. + """ + h = hashes.SHA1() + assert h._api == _default_api + + class TestSHA1(object): test_SHA1 = generate_base_hash_test( hashes.SHA1, |