From d4cb34d51ae6695a6cda8e3b46eeb0b45a5935f1 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Sat, 19 Oct 2013 23:05:12 -0500 Subject: Allow data to be passed in the constructor & reject unicode ala hashlib --- tests/primitives/test_hashes.py | 11 +++++++++++ tests/primitives/utils.py | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/primitives/test_hashes.py b/tests/primitives/test_hashes.py index 901ddabb..805d992b 100644 --- a/tests/primitives/test_hashes.py +++ b/tests/primitives/test_hashes.py @@ -13,11 +13,22 @@ from __future__ import absolute_import, division, print_function +import pytest + +import six + from cryptography.primitives import hashes from .utils import generate_base_hash_test +class TestBaseHash(object): + def test_base_hash_reject_unicode(self, api): + m = hashes.SHA1(api=api) + with pytest.raises(TypeError): + m.update(six.u("\u00FC")) + + class TestSHA1(object): test_SHA1 = generate_base_hash_test( hashes.SHA1, diff --git a/tests/primitives/utils.py b/tests/primitives/utils.py index a3759b03..a15e773c 100644 --- a/tests/primitives/utils.py +++ b/tests/primitives/utils.py @@ -67,6 +67,8 @@ def hash_test(api, hash_cls, params, only_if, skip_message): m = hash_cls(api=api) m.update(binascii.unhexlify(msg)) assert m.hexdigest() == md.replace(" ", "").lower() + digest = hash_cls(api=api, data=binascii.unhexlify(msg)).hexdigest() + assert digest == md.replace(" ", "").lower() def generate_base_hash_test(hash_cls, digest_size, block_size, @@ -115,6 +117,6 @@ def generate_long_string_hash_test(hash_factory, md, only_if=None, def long_string_hash_test(api, hash_factory, md, only_if, skip_message): if only_if is not None and not only_if(api): pytest.skip(skip_message) - m = hash_factory(api) + m = hash_factory(api=api) m.update(b"a" * 1000000) assert m.hexdigest() == md.lower() -- cgit v1.2.3