aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2013-10-20 13:15:28 -0500
committerPaul Kehrer <paul.l.kehrer@gmail.com>2013-10-22 16:48:42 -0500
commitdaac6d056753614077941da0a392c086dadbe965 (patch)
tree6f8e9e3c5912d7d2c48625286e87a23d38bd82b4
parentf2259868052becbf38c05f0dfabee41fbaabf72e (diff)
downloadcryptography-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.py2
-rw-r--r--tests/primitives/test_hashes.py11
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,