Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_hashlib.py @ 87690:66c1c9f32567 default tip
Add use_weakref option to functools.lru_cache
The use_weakref option makes lru_cache create weak references to the function
arguments when creating the cache key, which prevents them from staying in the
memory forever even after all other references to them are gone.
This is a proof of concept for http://bugs.python.org/issue19859
| author | Radomir Dopieralski <devel@sheep.art.pl> |
|---|---|
| date | Tue, 03 Dec 2013 16:02:48 +0100 |
| parents | 72d7b2185771 |
| children |
| rev | line source |
|---|---|
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
1 # Test hashlib module |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
2 # |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
3 # $Id$ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
4 # |
|
58219
aadfc31b3f14
Merged revisions 77389 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
55593
diff
changeset
|
5 # Copyright (C) 2005-2010 Gregory P. Smith (greg@krypto.org) |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
6 # Licensed to PSF under a Contributor Agreement. |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
7 # |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
8 |
|
58222
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58218
diff
changeset
|
9 import array |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
10 import hashlib |
|
58222
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58218
diff
changeset
|
11 import itertools |
|
76999
0a1d7be10946
Issue #14693: Under non-Windows platforms, hashlib's fallback modules are always compiled, even if OpenSSL is present at build time.
Antoine Pitrou <solipsis@pitrou.net>
parents:
72642
diff
changeset
|
12 import os |
|
58107
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
13 import sys |
|
53727
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
14 try: |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
15 import threading |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
16 except ImportError: |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
17 threading = None |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
18 import unittest |
|
58107
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
19 import warnings |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
43297
diff
changeset
|
20 from test import support |
|
86467
e73627483d2f
Issue #19254: Provide an optimized Python implementation of PBKDF2_HMAC
Christian Heimes <christian@cheimes.de>
parents:
86264
diff
changeset
|
21 from test.support import _4G, bigmemtest, import_fresh_module |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
22 |
|
58107
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
23 # Were we compiled --with-pydebug or with #define Py_DEBUG? |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
24 COMPILED_WITH_PYDEBUG = hasattr(sys, 'gettotalrefcount') |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
25 |
|
86467
e73627483d2f
Issue #19254: Provide an optimized Python implementation of PBKDF2_HMAC
Christian Heimes <christian@cheimes.de>
parents:
86264
diff
changeset
|
26 c_hashlib = import_fresh_module('hashlib', fresh=['_hashlib']) |
|
e73627483d2f
Issue #19254: Provide an optimized Python implementation of PBKDF2_HMAC
Christian Heimes <christian@cheimes.de>
parents:
86264
diff
changeset
|
27 py_hashlib = import_fresh_module('hashlib', blocked=['_hashlib']) |
|
58107
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
28 |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
29 def hexstr(s): |
|
42166
78203298b42b
Change hashlib to return bytes from digest() instead of str8.
Guido van Rossum <guido@python.org>
parents:
35375
diff
changeset
|
30 assert isinstance(s, bytes), repr(s) |
|
42181
3641a20630f3
Fix test_hashlib regression caused by my fixing hexdigest() to return
Guido van Rossum <guido@python.org>
parents:
42166
diff
changeset
|
31 h = "0123456789abcdef" |
|
3641a20630f3
Fix test_hashlib regression caused by my fixing hexdigest() to return
Guido van Rossum <guido@python.org>
parents:
42166
diff
changeset
|
32 r = '' |
|
42166
78203298b42b
Change hashlib to return bytes from digest() instead of str8.
Guido van Rossum <guido@python.org>
parents:
35375
diff
changeset
|
33 for i in s: |
|
42181
3641a20630f3
Fix test_hashlib regression caused by my fixing hexdigest() to return
Guido van Rossum <guido@python.org>
parents:
42166
diff
changeset
|
34 r += h[(i >> 4) & 0xF] + h[i & 0xF] |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
35 return r |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
36 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
37 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
38 class HashLibTestCase(unittest.TestCase): |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
39 supported_hash_names = ( 'md5', 'MD5', 'sha1', 'SHA1', |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
40 'sha224', 'SHA224', 'sha256', 'SHA256', |
|
79502
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
41 'sha384', 'SHA384', 'sha512', 'SHA512', |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
42 'sha3_224', 'sha3_256', 'sha3_384', |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
43 'sha3_512', 'SHA3_224', 'SHA3_256', |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
44 'SHA3_384', 'SHA3_512' ) |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
45 |
|
76999
0a1d7be10946
Issue #14693: Under non-Windows platforms, hashlib's fallback modules are always compiled, even if OpenSSL is present at build time.
Antoine Pitrou <solipsis@pitrou.net>
parents:
72642
diff
changeset
|
46 # Issue #14693: fallback modules are always compiled under POSIX |
|
0a1d7be10946
Issue #14693: Under non-Windows platforms, hashlib's fallback modules are always compiled, even if OpenSSL is present at build time.
Antoine Pitrou <solipsis@pitrou.net>
parents:
72642
diff
changeset
|
47 _warn_on_extension_import = os.name == 'posix' or COMPILED_WITH_PYDEBUG |
|
58107
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
48 |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
49 def _conditional_import_module(self, module_name): |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
50 """Import a module and return a reference to it or None on failure.""" |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
51 try: |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
52 exec('import '+module_name) |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
53 except ImportError as error: |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
54 if self._warn_on_extension_import: |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
55 warnings.warn('Did a C extension fail to compile? %s' % error) |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
56 return locals().get(module_name) |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
57 |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
58 def __init__(self, *args, **kwargs): |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
59 algorithms = set() |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
60 for algorithm in self.supported_hash_names: |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
61 algorithms.add(algorithm.lower()) |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
62 self.constructors_to_test = {} |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
63 for algorithm in algorithms: |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
64 self.constructors_to_test[algorithm] = set() |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
65 |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
66 # For each algorithm, test the direct constructor and the use |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
67 # of hashlib.new given the algorithm name. |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
68 for algorithm, constructors in self.constructors_to_test.items(): |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
69 constructors.add(getattr(hashlib, algorithm)) |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
70 def _test_algorithm_via_hashlib_new(data=None, _alg=algorithm): |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
71 if data is None: |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
72 return hashlib.new(_alg) |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
73 return hashlib.new(_alg, data) |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
74 constructors.add(_test_algorithm_via_hashlib_new) |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
75 |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
76 _hashlib = self._conditional_import_module('_hashlib') |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
77 if _hashlib: |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
78 # These two algorithms should always be present when this module |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
79 # is compiled. If not, something was compiled wrong. |
|
85044
c6d4564dc86f
* Fix the assertions in hashlib to use unittest assertion methods instead of
Gregory P. Smith <greg@krypto.org>
parents:
85038
diff
changeset
|
80 self.assertTrue(hasattr(_hashlib, 'openssl_md5')) |
|
c6d4564dc86f
* Fix the assertions in hashlib to use unittest assertion methods instead of
Gregory P. Smith <greg@krypto.org>
parents:
85038
diff
changeset
|
81 self.assertTrue(hasattr(_hashlib, 'openssl_sha1')) |
|
58107
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
82 for algorithm, constructors in self.constructors_to_test.items(): |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
83 constructor = getattr(_hashlib, 'openssl_'+algorithm, None) |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
84 if constructor: |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
85 constructors.add(constructor) |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
86 |
|
86569
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
87 def add_builtin_constructor(name): |
|
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
88 constructor = getattr(hashlib, "__get_builtin_constructor")(name) |
|
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
89 self.constructors_to_test[name].add(constructor) |
|
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
90 |
|
58107
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
91 _md5 = self._conditional_import_module('_md5') |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
92 if _md5: |
|
86569
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
93 add_builtin_constructor('md5') |
|
58108
3856c764e1f5
Also fixes test_hashlib for the different extension module names in py3k.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58107
diff
changeset
|
94 _sha1 = self._conditional_import_module('_sha1') |
|
3856c764e1f5
Also fixes test_hashlib for the different extension module names in py3k.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58107
diff
changeset
|
95 if _sha1: |
|
86569
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
96 add_builtin_constructor('sha1') |
|
58107
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
97 _sha256 = self._conditional_import_module('_sha256') |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
98 if _sha256: |
|
86569
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
99 add_builtin_constructor('sha224') |
|
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
100 add_builtin_constructor('sha256') |
|
58107
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
101 _sha512 = self._conditional_import_module('_sha512') |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
102 if _sha512: |
|
86569
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
103 add_builtin_constructor('sha384') |
|
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
104 add_builtin_constructor('sha512') |
|
79502
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
105 _sha3 = self._conditional_import_module('_sha3') |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
106 if _sha3: |
|
86569
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
107 add_builtin_constructor('sha3_224') |
|
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
108 add_builtin_constructor('sha3_256') |
|
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
109 add_builtin_constructor('sha3_384') |
|
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
110 add_builtin_constructor('sha3_512') |
|
58107
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
111 |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
112 super(HashLibTestCase, self).__init__(*args, **kwargs) |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
113 |
|
84906
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
114 @property |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
115 def hash_constructors(self): |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
116 constructors = self.constructors_to_test.values() |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
117 return itertools.chain.from_iterable(constructors) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
118 |
|
58222
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58218
diff
changeset
|
119 def test_hash_array(self): |
|
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58218
diff
changeset
|
120 a = array.array("b", range(10)) |
|
84906
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
121 for cons in self.hash_constructors: |
|
58222
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58218
diff
changeset
|
122 c = cons(a) |
|
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58218
diff
changeset
|
123 c.hexdigest() |
|
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58218
diff
changeset
|
124 |
|
64488
49441e88ccc1
hashlib has two new constant attributes: algorithms_guaranteed and
Gregory P. Smith <greg@mad-scientist.com>
parents:
61073
diff
changeset
|
125 def test_algorithms_guaranteed(self): |
|
49441e88ccc1
hashlib has two new constant attributes: algorithms_guaranteed and
Gregory P. Smith <greg@mad-scientist.com>
parents:
61073
diff
changeset
|
126 self.assertEqual(hashlib.algorithms_guaranteed, |
|
67733
6f40b4709e9a
Make the type consistent for hashlib algorithm constants. (Reviewed by Benjamin).
Raymond Hettinger <python@rcn.com>
parents:
66310
diff
changeset
|
127 set(_algo for _algo in self.supported_hash_names |
|
59212
9b4e0cd7817a
Merged revisions 78528 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
58222
diff
changeset
|
128 if _algo.islower())) |
|
9b4e0cd7817a
Merged revisions 78528 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
58222
diff
changeset
|
129 |
|
64488
49441e88ccc1
hashlib has two new constant attributes: algorithms_guaranteed and
Gregory P. Smith <greg@mad-scientist.com>
parents:
61073
diff
changeset
|
130 def test_algorithms_available(self): |
|
49441e88ccc1
hashlib has two new constant attributes: algorithms_guaranteed and
Gregory P. Smith <greg@mad-scientist.com>
parents:
61073
diff
changeset
|
131 self.assertTrue(set(hashlib.algorithms_guaranteed). |
|
49441e88ccc1
hashlib has two new constant attributes: algorithms_guaranteed and
Gregory P. Smith <greg@mad-scientist.com>
parents:
61073
diff
changeset
|
132 issubset(hashlib.algorithms_available)) |
|
49441e88ccc1
hashlib has two new constant attributes: algorithms_guaranteed and
Gregory P. Smith <greg@mad-scientist.com>
parents:
61073
diff
changeset
|
133 |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
134 def test_unknown_hash(self): |
|
78235
c97cfe04880f
Consistently raise a TypeError when a non str is passed to hashlib.new
Gregory P. Smith <greg@krypto.org>
parents:
72642
diff
changeset
|
135 self.assertRaises(ValueError, hashlib.new, 'spam spam spam spam spam') |
|
c97cfe04880f
Consistently raise a TypeError when a non str is passed to hashlib.new
Gregory P. Smith <greg@krypto.org>
parents:
72642
diff
changeset
|
136 self.assertRaises(TypeError, hashlib.new, 1) |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
137 |
|
70122
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
138 def test_get_builtin_constructor(self): |
|
86569
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
139 get_builtin_constructor = getattr(hashlib, |
|
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
140 '__get_builtin_constructor') |
|
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
141 builtin_constructor_cache = getattr(hashlib, |
|
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
142 '__builtin_constructor_cache') |
|
70122
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
143 self.assertRaises(ValueError, get_builtin_constructor, 'test') |
|
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
144 try: |
|
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
145 import _md5 |
|
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
146 except ImportError: |
|
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
147 pass |
|
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
148 # This forces an ImportError for "import _md5" statements |
|
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
149 sys.modules['_md5'] = None |
|
86569
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
150 # clear the cache |
|
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
151 builtin_constructor_cache.clear() |
|
70122
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
152 try: |
|
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
153 self.assertRaises(ValueError, get_builtin_constructor, 'md5') |
|
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
154 finally: |
|
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
155 if '_md5' in locals(): |
|
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
156 sys.modules['_md5'] = _md5 |
|
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
157 else: |
|
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
158 del sys.modules['_md5'] |
|
78235
c97cfe04880f
Consistently raise a TypeError when a non str is passed to hashlib.new
Gregory P. Smith <greg@krypto.org>
parents:
72642
diff
changeset
|
159 self.assertRaises(TypeError, get_builtin_constructor, 3) |
|
86569
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
160 constructor = get_builtin_constructor('md5') |
|
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
161 self.assertIs(constructor, _md5.md5) |
|
72d7b2185771
Issue #18742: Rework the internal hashlib construtor to pave the road for ABCs.
Christian Heimes <christian@cheimes.de>
parents:
86479
diff
changeset
|
162 self.assertEqual(sorted(builtin_constructor_cache), ['MD5', 'md5']) |
|
70122
ad9249f35914
Fixes Issue #12059: Properly handle missing hash functions even when
Gregory P. Smith <greg@krypto.org>
parents:
68257
diff
changeset
|
163 |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
164 def test_hexdigest(self): |
|
84906
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
165 for cons in self.hash_constructors: |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
166 h = cons() |
|
85044
c6d4564dc86f
* Fix the assertions in hashlib to use unittest assertion methods instead of
Gregory P. Smith <greg@krypto.org>
parents:
85038
diff
changeset
|
167 self.assertIsInstance(h.digest(), bytes) |
|
42166
78203298b42b
Change hashlib to return bytes from digest() instead of str8.
Guido van Rossum <guido@python.org>
parents:
35375
diff
changeset
|
168 self.assertEqual(hexstr(h.digest()), h.hexdigest()) |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
169 |
|
85038
238c37e4c395
Issue 18532: Added tests and documentation to formally specify the .name attribute on hashlib objects.
Jason R. Coombs <jaraco@jaraco.com>
parents:
84907
diff
changeset
|
170 def test_name_attribute(self): |
|
238c37e4c395
Issue 18532: Added tests and documentation to formally specify the .name attribute on hashlib objects.
Jason R. Coombs <jaraco@jaraco.com>
parents:
84907
diff
changeset
|
171 for cons in self.hash_constructors: |
|
238c37e4c395
Issue 18532: Added tests and documentation to formally specify the .name attribute on hashlib objects.
Jason R. Coombs <jaraco@jaraco.com>
parents:
84907
diff
changeset
|
172 h = cons() |
|
85044
c6d4564dc86f
* Fix the assertions in hashlib to use unittest assertion methods instead of
Gregory P. Smith <greg@krypto.org>
parents:
85038
diff
changeset
|
173 self.assertIsInstance(h.name, str) |
|
c6d4564dc86f
* Fix the assertions in hashlib to use unittest assertion methods instead of
Gregory P. Smith <greg@krypto.org>
parents:
85038
diff
changeset
|
174 self.assertIn(h.name, self.supported_hash_names) |
|
c6d4564dc86f
* Fix the assertions in hashlib to use unittest assertion methods instead of
Gregory P. Smith <greg@krypto.org>
parents:
85038
diff
changeset
|
175 self.assertEqual(h.name, hashlib.new(h.name).name) |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
176 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
177 def test_large_update(self): |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
178 aas = b'a' * 128 |
|
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
179 bees = b'b' * 127 |
|
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
180 cees = b'c' * 126 |
|
84906
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
181 dees = b'd' * 2048 # HASHLIB_GIL_MINSIZE |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
182 |
|
84906
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
183 for cons in self.hash_constructors: |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
184 m1 = cons() |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
185 m1.update(aas) |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
186 m1.update(bees) |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
187 m1.update(cees) |
|
84906
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
188 m1.update(dees) |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
189 |
|
84906
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
190 m2 = cons() |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
191 m2.update(aas + bees + cees + dees) |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
192 self.assertEqual(m1.digest(), m2.digest()) |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
193 |
|
84906
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
194 m3 = cons(aas + bees + cees + dees) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
195 self.assertEqual(m1.digest(), m3.digest()) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
196 |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
197 # verify copy() doesn't touch original |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
198 m4 = cons(aas + bees + cees) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
199 m4_digest = m4.digest() |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
200 m4_copy = m4.copy() |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
201 m4_copy.update(dees) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
202 self.assertEqual(m1.digest(), m4_copy.digest()) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
203 self.assertEqual(m4.digest(), m4_digest) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
204 |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
205 def check(self, name, data, hexdigest): |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
206 hexdigest = hexdigest.lower() |
|
58107
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
207 constructors = self.constructors_to_test[name] |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
208 # 2 is for hashlib.name(...) and hashlib.new(name, ...) |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
209 self.assertGreaterEqual(len(constructors), 2) |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
210 for hash_object_constructor in constructors: |
|
84906
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
211 m = hash_object_constructor(data) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
212 computed = m.hexdigest() |
|
58107
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
213 self.assertEqual( |
|
84906
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
214 computed, hexdigest, |
|
58107
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
215 "Hash algorithm %s constructed using %s returned hexdigest" |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
216 " %r for %d byte input data that should have hashed to %r." |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
217 % (name, hash_object_constructor, |
|
84906
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
218 computed, len(data), hexdigest)) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
219 computed = m.digest() |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
220 digest = bytes.fromhex(hexdigest) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
221 self.assertEqual(computed, digest) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
222 self.assertEqual(len(digest), m.digest_size) |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
223 |
|
51543
2ac02daef2ee
Fixes Issue #3745: Fix hashlib to always reject unicode and non
Gregory P. Smith <greg@mad-scientist.com>
parents:
50636
diff
changeset
|
224 def check_no_unicode(self, algorithm_name): |
|
2ac02daef2ee
Fixes Issue #3745: Fix hashlib to always reject unicode and non
Gregory P. Smith <greg@mad-scientist.com>
parents:
50636
diff
changeset
|
225 # Unicode objects are not allowed as input. |
|
58107
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
226 constructors = self.constructors_to_test[algorithm_name] |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
227 for hash_object_constructor in constructors: |
|
2a2399534591
Merged revisions 77257 via svnmerge from
Gregory P. Smith <greg@mad-scientist.com>
parents:
55593
diff
changeset
|
228 self.assertRaises(TypeError, hash_object_constructor, 'spam') |
|
51543
2ac02daef2ee
Fixes Issue #3745: Fix hashlib to always reject unicode and non
Gregory P. Smith <greg@mad-scientist.com>
parents:
50636
diff
changeset
|
229 |
|
2ac02daef2ee
Fixes Issue #3745: Fix hashlib to always reject unicode and non
Gregory P. Smith <greg@mad-scientist.com>
parents:
50636
diff
changeset
|
230 def test_no_unicode(self): |
|
2ac02daef2ee
Fixes Issue #3745: Fix hashlib to always reject unicode and non
Gregory P. Smith <greg@mad-scientist.com>
parents:
50636
diff
changeset
|
231 self.check_no_unicode('md5') |
|
2ac02daef2ee
Fixes Issue #3745: Fix hashlib to always reject unicode and non
Gregory P. Smith <greg@mad-scientist.com>
parents:
50636
diff
changeset
|
232 self.check_no_unicode('sha1') |
|
2ac02daef2ee
Fixes Issue #3745: Fix hashlib to always reject unicode and non
Gregory P. Smith <greg@mad-scientist.com>
parents:
50636
diff
changeset
|
233 self.check_no_unicode('sha224') |
|
2ac02daef2ee
Fixes Issue #3745: Fix hashlib to always reject unicode and non
Gregory P. Smith <greg@mad-scientist.com>
parents:
50636
diff
changeset
|
234 self.check_no_unicode('sha256') |
|
2ac02daef2ee
Fixes Issue #3745: Fix hashlib to always reject unicode and non
Gregory P. Smith <greg@mad-scientist.com>
parents:
50636
diff
changeset
|
235 self.check_no_unicode('sha384') |
|
2ac02daef2ee
Fixes Issue #3745: Fix hashlib to always reject unicode and non
Gregory P. Smith <greg@mad-scientist.com>
parents:
50636
diff
changeset
|
236 self.check_no_unicode('sha512') |
|
79502
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
237 self.check_no_unicode('sha3_224') |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
238 self.check_no_unicode('sha3_256') |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
239 self.check_no_unicode('sha3_384') |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
240 self.check_no_unicode('sha3_512') |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
241 |
|
84906
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
242 def check_blocksize_name(self, name, block_size=0, digest_size=0): |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
243 constructors = self.constructors_to_test[name] |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
244 for hash_object_constructor in constructors: |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
245 m = hash_object_constructor() |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
246 self.assertEqual(m.block_size, block_size) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
247 self.assertEqual(m.digest_size, digest_size) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
248 self.assertEqual(len(m.digest()), digest_size) |
|
85179
9a4949f5d15c
Change the builtin hash algorithms' names to lower case names
Christian Heimes <christian@cheimes.de>
parents:
85044
diff
changeset
|
249 self.assertEqual(m.name, name) |
|
84907
5fbf23e947d8
Issue #18599: Fix name attribute of _sha1.sha1() object. It now returns
Christian Heimes <christian@cheimes.de>
diff
changeset
|
250 # split for sha3_512 / _sha3.sha3 object |
|
85179
9a4949f5d15c
Change the builtin hash algorithms' names to lower case names
Christian Heimes <christian@cheimes.de>
parents:
85044
diff
changeset
|
251 self.assertIn(name.split("_")[0], repr(m)) |
|
84906
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
252 |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
253 def test_blocksize_name(self): |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
254 self.check_blocksize_name('md5', 64, 16) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
255 self.check_blocksize_name('sha1', 64, 20) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
256 self.check_blocksize_name('sha224', 64, 28) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
257 self.check_blocksize_name('sha256', 64, 32) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
258 self.check_blocksize_name('sha384', 128, 48) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
259 self.check_blocksize_name('sha512', 128, 64) |
|
84907
5fbf23e947d8
Issue #18599: Fix name attribute of _sha1.sha1() object. It now returns
Christian Heimes <christian@cheimes.de>
diff
changeset
|
260 self.check_blocksize_name('sha3_224', NotImplemented, 28) |
|
5fbf23e947d8
Issue #18599: Fix name attribute of _sha1.sha1() object. It now returns
Christian Heimes <christian@cheimes.de>
diff
changeset
|
261 self.check_blocksize_name('sha3_256', NotImplemented, 32) |
|
5fbf23e947d8
Issue #18599: Fix name attribute of _sha1.sha1() object. It now returns
Christian Heimes <christian@cheimes.de>
diff
changeset
|
262 self.check_blocksize_name('sha3_384', NotImplemented, 48) |
|
5fbf23e947d8
Issue #18599: Fix name attribute of _sha1.sha1() object. It now returns
Christian Heimes <christian@cheimes.de>
diff
changeset
|
263 self.check_blocksize_name('sha3_512', NotImplemented, 64) |
|
84906
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
264 |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
265 def test_case_md5_0(self): |
|
42181
3641a20630f3
Fix test_hashlib regression caused by my fixing hexdigest() to return
Guido van Rossum <guido@python.org>
parents:
42166
diff
changeset
|
266 self.check('md5', b'', 'd41d8cd98f00b204e9800998ecf8427e') |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
267 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
268 def test_case_md5_1(self): |
|
42181
3641a20630f3
Fix test_hashlib regression caused by my fixing hexdigest() to return
Guido van Rossum <guido@python.org>
parents:
42166
diff
changeset
|
269 self.check('md5', b'abc', '900150983cd24fb0d6963f7d28e17f72') |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
270 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
271 def test_case_md5_2(self): |
|
42166
78203298b42b
Change hashlib to return bytes from digest() instead of str8.
Guido van Rossum <guido@python.org>
parents:
35375
diff
changeset
|
272 self.check('md5', |
|
78203298b42b
Change hashlib to return bytes from digest() instead of str8.
Guido van Rossum <guido@python.org>
parents:
35375
diff
changeset
|
273 b'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', |
|
42181
3641a20630f3
Fix test_hashlib regression caused by my fixing hexdigest() to return
Guido van Rossum <guido@python.org>
parents:
42166
diff
changeset
|
274 'd174ab98d277d9f5a5611c2c9f419d9f') |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
275 |
|
72642
bf39434dd506
Start fixing test_bigmem:
Antoine Pitrou <solipsis@pitrou.net>
parents:
70122
diff
changeset
|
276 @bigmemtest(size=_4G + 5, memuse=1) |
|
49292
a00626f2d705
Merged revisions 66496 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
277 def test_case_md5_huge(self, size): |
|
a00626f2d705
Merged revisions 66496 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
278 if size == _4G + 5: |
|
a00626f2d705
Merged revisions 66496 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
279 try: |
|
66118
65364c44e295
Merged revisions 86338 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
58219
diff
changeset
|
280 self.check('md5', b'A'*size, 'c9af2dff37468ce5dfee8f2cfc0a9c6d') |
|
49292
a00626f2d705
Merged revisions 66496 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
281 except OverflowError: |
|
a00626f2d705
Merged revisions 66496 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
282 pass # 32-bit arch |
|
a00626f2d705
Merged revisions 66496 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
283 |
|
72642
bf39434dd506
Start fixing test_bigmem:
Antoine Pitrou <solipsis@pitrou.net>
parents:
70122
diff
changeset
|
284 @bigmemtest(size=_4G - 1, memuse=1) |
|
49292
a00626f2d705
Merged revisions 66496 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
285 def test_case_md5_uintmax(self, size): |
|
a00626f2d705
Merged revisions 66496 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
286 if size == _4G - 1: |
|
a00626f2d705
Merged revisions 66496 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
287 try: |
|
66118
65364c44e295
Merged revisions 86338 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
58219
diff
changeset
|
288 self.check('md5', b'A'*size, '28138d306ff1b8281f1a9067e1a1a2b3') |
|
49292
a00626f2d705
Merged revisions 66496 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
289 except OverflowError: |
|
a00626f2d705
Merged revisions 66496 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
290 pass # 32-bit arch |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
291 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
292 # use the three examples from Federal Information Processing Standards |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
293 # Publication 180-1, Secure Hash Standard, 1995 April 17 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
294 # http://www.itl.nist.gov/div897/pubs/fip180-1.htm |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
295 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
296 def test_case_sha1_0(self): |
|
42166
78203298b42b
Change hashlib to return bytes from digest() instead of str8.
Guido van Rossum <guido@python.org>
parents:
35375
diff
changeset
|
297 self.check('sha1', b"", |
|
42181
3641a20630f3
Fix test_hashlib regression caused by my fixing hexdigest() to return
Guido van Rossum <guido@python.org>
parents:
42166
diff
changeset
|
298 "da39a3ee5e6b4b0d3255bfef95601890afd80709") |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
299 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
300 def test_case_sha1_1(self): |
|
42166
78203298b42b
Change hashlib to return bytes from digest() instead of str8.
Guido van Rossum <guido@python.org>
parents:
35375
diff
changeset
|
301 self.check('sha1', b"abc", |
|
42181
3641a20630f3
Fix test_hashlib regression caused by my fixing hexdigest() to return
Guido van Rossum <guido@python.org>
parents:
42166
diff
changeset
|
302 "a9993e364706816aba3e25717850c26c9cd0d89d") |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
303 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
304 def test_case_sha1_2(self): |
|
42166
78203298b42b
Change hashlib to return bytes from digest() instead of str8.
Guido van Rossum <guido@python.org>
parents:
35375
diff
changeset
|
305 self.check('sha1', |
|
78203298b42b
Change hashlib to return bytes from digest() instead of str8.
Guido van Rossum <guido@python.org>
parents:
35375
diff
changeset
|
306 b"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", |
|
42181
3641a20630f3
Fix test_hashlib regression caused by my fixing hexdigest() to return
Guido van Rossum <guido@python.org>
parents:
42166
diff
changeset
|
307 "84983e441c3bd26ebaae4aa1f95129e5e54670f1") |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
308 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
309 def test_case_sha1_3(self): |
|
42166
78203298b42b
Change hashlib to return bytes from digest() instead of str8.
Guido van Rossum <guido@python.org>
parents:
35375
diff
changeset
|
310 self.check('sha1', b"a" * 1000000, |
|
42181
3641a20630f3
Fix test_hashlib regression caused by my fixing hexdigest() to return
Guido van Rossum <guido@python.org>
parents:
42166
diff
changeset
|
311 "34aa973cd4c4daa4f61eeb2bdbad27316534016f") |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
312 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
313 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
314 # use the examples from Federal Information Processing Standards |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
315 # Publication 180-2, Secure Hash Standard, 2002 August 1 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
316 # http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
317 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
318 def test_case_sha224_0(self): |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
319 self.check('sha224', b"", |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
320 "d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
321 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
322 def test_case_sha224_1(self): |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
323 self.check('sha224', b"abc", |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
324 "23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
325 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
326 def test_case_sha224_2(self): |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
327 self.check('sha224', |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
328 b"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
329 "75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
330 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
331 def test_case_sha224_3(self): |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
332 self.check('sha224', b"a" * 1000000, |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
333 "20794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
334 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
335 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
336 def test_case_sha256_0(self): |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
337 self.check('sha256', b"", |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
338 "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
339 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
340 def test_case_sha256_1(self): |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
341 self.check('sha256', b"abc", |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
342 "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
343 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
344 def test_case_sha256_2(self): |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
345 self.check('sha256', |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
346 b"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
347 "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
348 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
349 def test_case_sha256_3(self): |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
350 self.check('sha256', b"a" * 1000000, |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
351 "cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
352 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
353 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
354 def test_case_sha384_0(self): |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
355 self.check('sha384', b"", |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
356 "38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da"+ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
357 "274edebfe76f65fbd51ad2f14898b95b") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
358 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
359 def test_case_sha384_1(self): |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
360 self.check('sha384', b"abc", |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
361 "cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed"+ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
362 "8086072ba1e7cc2358baeca134c825a7") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
363 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
364 def test_case_sha384_2(self): |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
365 self.check('sha384', |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
366 b"abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmn"+ |
|
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
367 b"hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
368 "09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712"+ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
369 "fcc7c71a557e2db966c3e9fa91746039") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
370 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
371 def test_case_sha384_3(self): |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
372 self.check('sha384', b"a" * 1000000, |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
373 "9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5b"+ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
374 "07b8b3dc38ecc4ebae97ddd87f3d8985") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
375 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
376 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
377 def test_case_sha512_0(self): |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
378 self.check('sha512', b"", |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
379 "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce"+ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
380 "47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
381 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
382 def test_case_sha512_1(self): |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
383 self.check('sha512', b"abc", |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
384 "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a"+ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
385 "2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
386 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
387 def test_case_sha512_2(self): |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
388 self.check('sha512', |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
389 b"abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmn"+ |
|
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
390 b"hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
391 "8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018"+ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
392 "501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
393 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
394 def test_case_sha512_3(self): |
|
42918
9220931e4741
More changes needed to make things work once bytes and str are truly divorced.
Guido van Rossum <guido@python.org>
parents:
42181
diff
changeset
|
395 self.check('sha512', b"a" * 1000000, |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
396 "e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973eb"+ |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
397 "de0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b") |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
398 |
|
79502
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
399 # SHA-3 family |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
400 def test_case_sha3_224_0(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
401 self.check('sha3_224', b"", |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
402 "F71837502BA8E10837BDD8D365ADB85591895602FC552B48B7390ABD") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
403 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
404 def test_case_sha3_224_1(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
405 self.check('sha3_224', bytes.fromhex("CC"), |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
406 "A9CAB59EB40A10B246290F2D6086E32E3689FAF1D26B470C899F2802") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
407 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
408 def test_case_sha3_224_2(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
409 self.check('sha3_224', bytes.fromhex("41FB"), |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
410 "615BA367AFDC35AAC397BC7EB5D58D106A734B24986D5D978FEFD62C") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
411 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
412 def test_case_sha3_224_3(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
413 self.check('sha3_224', bytes.fromhex( |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
414 "433C5303131624C0021D868A30825475E8D0BD3052A022180398F4CA4423B9"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
415 "8214B6BEAAC21C8807A2C33F8C93BD42B092CC1B06CEDF3224D5ED1EC29784"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
416 "444F22E08A55AA58542B524B02CD3D5D5F6907AFE71C5D7462224A3F9D9E53"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
417 "E7E0846DCBB4CE"), |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
418 "62B10F1B6236EBC2DA72957742A8D4E48E213B5F8934604BFD4D2C3A") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
419 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
420 @bigmemtest(size=_4G + 5, memuse=1) |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
421 def test_case_sha3_224_huge(self, size): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
422 if size == _4G + 5: |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
423 try: |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
424 self.check('sha3_224', b'A'*size, |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
425 '58ef60057c9dddb6a87477e9ace5a26f0d9db01881cf9b10a9f8c224') |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
426 except OverflowError: |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
427 pass # 32-bit arch |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
428 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
429 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
430 def test_case_sha3_256_0(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
431 self.check('sha3_256', b"", |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
432 "C5D2460186F7233C927E7DB2DCC703C0E500B653CA82273B7BFAD8045D85A470") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
433 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
434 def test_case_sha3_256_1(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
435 self.check('sha3_256', bytes.fromhex("CC"), |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
436 "EEAD6DBFC7340A56CAEDC044696A168870549A6A7F6F56961E84A54BD9970B8A") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
437 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
438 def test_case_sha3_256_2(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
439 self.check('sha3_256', bytes.fromhex("41FB"), |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
440 "A8EACEDA4D47B3281A795AD9E1EA2122B407BAF9AABCB9E18B5717B7873537D2") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
441 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
442 def test_case_sha3_256_3(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
443 self.check('sha3_256', bytes.fromhex( |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
444 "433C5303131624C0021D868A30825475E8D0BD3052A022180398F4CA4423B9"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
445 "8214B6BEAAC21C8807A2C33F8C93BD42B092CC1B06CEDF3224D5ED1EC29784"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
446 "444F22E08A55AA58542B524B02CD3D5D5F6907AFE71C5D7462224A3F9D9E53"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
447 "E7E0846DCBB4CE"), |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
448 "CE87A5173BFFD92399221658F801D45C294D9006EE9F3F9D419C8D427748DC41") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
449 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
450 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
451 def test_case_sha3_384_0(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
452 self.check('sha3_384', b"", |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
453 "2C23146A63A29ACF99E73B88F8C24EAA7DC60AA771780CCC006AFBFA8FE2479B"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
454 "2DD2B21362337441AC12B515911957FF") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
455 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
456 def test_case_sha3_384_1(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
457 self.check('sha3_384', bytes.fromhex("CC"), |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
458 "1B84E62A46E5A201861754AF5DC95C4A1A69CAF4A796AE405680161E29572641"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
459 "F5FA1E8641D7958336EE7B11C58F73E9") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
460 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
461 def test_case_sha3_384_2(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
462 self.check('sha3_384', bytes.fromhex("41FB"), |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
463 "495CCE2714CD72C8C53C3363D22C58B55960FE26BE0BF3BBC7A3316DD563AD1D"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
464 "B8410E75EEFEA655E39D4670EC0B1792") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
465 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
466 def test_case_sha3_384_3(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
467 self.check('sha3_384', bytes.fromhex( |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
468 "433C5303131624C0021D868A30825475E8D0BD3052A022180398F4CA4423B9"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
469 "8214B6BEAAC21C8807A2C33F8C93BD42B092CC1B06CEDF3224D5ED1EC29784"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
470 "444F22E08A55AA58542B524B02CD3D5D5F6907AFE71C5D7462224A3F9D9E53"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
471 "E7E0846DCBB4CE"), |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
472 "135114508DD63E279E709C26F7817C0482766CDE49132E3EDF2EEDD8996F4E35"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
473 "96D184100B384868249F1D8B8FDAA2C9") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
474 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
475 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
476 def test_case_sha3_512_0(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
477 self.check('sha3_512', b"", |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
478 "0EAB42DE4C3CEB9235FC91ACFFE746B29C29A8C366B7C60E4E67C466F36A4304"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
479 "C00FA9CAF9D87976BA469BCBE06713B435F091EF2769FB160CDAB33D3670680E") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
480 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
481 def test_case_sha3_512_1(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
482 self.check('sha3_512', bytes.fromhex("CC"), |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
483 "8630C13CBD066EA74BBE7FE468FEC1DEE10EDC1254FB4C1B7C5FD69B646E4416"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
484 "0B8CE01D05A0908CA790DFB080F4B513BC3B6225ECE7A810371441A5AC666EB9") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
485 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
486 def test_case_sha3_512_2(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
487 self.check('sha3_512', bytes.fromhex("41FB"), |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
488 "551DA6236F8B96FCE9F97F1190E901324F0B45E06DBBB5CDB8355D6ED1DC34B3"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
489 "F0EAE7DCB68622FF232FA3CECE0D4616CDEB3931F93803662A28DF1CD535B731") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
490 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
491 def test_case_sha3_512_3(self): |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
492 self.check('sha3_512', bytes.fromhex( |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
493 "433C5303131624C0021D868A30825475E8D0BD3052A022180398F4CA4423B9"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
494 "8214B6BEAAC21C8807A2C33F8C93BD42B092CC1B06CEDF3224D5ED1EC29784"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
495 "444F22E08A55AA58542B524B02CD3D5D5F6907AFE71C5D7462224A3F9D9E53"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
496 "E7E0846DCBB4CE"), |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
497 "527D28E341E6B14F4684ADB4B824C496C6482E51149565D3D17226828884306B"+ |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
498 "51D6148A72622C2B75F5D3510B799D8BDC03EAEDE453676A6EC8FE03A1AD0EAB") |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
499 |
|
11c9a894680e
Issue #16113: integrade SHA-3 (Keccak) patch from http://hg.python.org/sandbox/cheimes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
500 |
|
50636
f9f5d9047a05
Issue #4751: hashlib now releases the GIL when hashing large buffers
Antoine Pitrou <solipsis@pitrou.net>
parents:
49292
diff
changeset
|
501 def test_gil(self): |
|
f9f5d9047a05
Issue #4751: hashlib now releases the GIL when hashing large buffers
Antoine Pitrou <solipsis@pitrou.net>
parents:
49292
diff
changeset
|
502 # Check things work fine with an input larger than the size required |
|
f9f5d9047a05
Issue #4751: hashlib now releases the GIL when hashing large buffers
Antoine Pitrou <solipsis@pitrou.net>
parents:
49292
diff
changeset
|
503 # for multithreaded operation (which is hardwired to 2048). |
|
f9f5d9047a05
Issue #4751: hashlib now releases the GIL when hashing large buffers
Antoine Pitrou <solipsis@pitrou.net>
parents:
49292
diff
changeset
|
504 gil_minsize = 2048 |
|
f9f5d9047a05
Issue #4751: hashlib now releases the GIL when hashing large buffers
Antoine Pitrou <solipsis@pitrou.net>
parents:
49292
diff
changeset
|
505 |
|
84906
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
506 for cons in self.hash_constructors: |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
507 m = cons() |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
508 m.update(b'1') |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
509 m.update(b'#' * gil_minsize) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
510 m.update(b'1') |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
511 |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
512 m = cons(b'x' * gil_minsize) |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
513 m.update(b'1') |
|
10501d5f07b8
Add more tests for hashlib and hash object attributes
Christian Heimes <christian@cheimes.de>
parents:
78236
diff
changeset
|
514 |
|
50636
f9f5d9047a05
Issue #4751: hashlib now releases the GIL when hashing large buffers
Antoine Pitrou <solipsis@pitrou.net>
parents:
49292
diff
changeset
|
515 m = hashlib.md5() |
|
f9f5d9047a05
Issue #4751: hashlib now releases the GIL when hashing large buffers
Antoine Pitrou <solipsis@pitrou.net>
parents:
49292
diff
changeset
|
516 m.update(b'1') |
|
f9f5d9047a05
Issue #4751: hashlib now releases the GIL when hashing large buffers
Antoine Pitrou <solipsis@pitrou.net>
parents:
49292
diff
changeset
|
517 m.update(b'#' * gil_minsize) |
|
f9f5d9047a05
Issue #4751: hashlib now releases the GIL when hashing large buffers
Antoine Pitrou <solipsis@pitrou.net>
parents:
49292
diff
changeset
|
518 m.update(b'1') |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66118
diff
changeset
|
519 self.assertEqual(m.hexdigest(), 'cb1e1a2cbc80be75e19935d621fb9b21') |
|
50636
f9f5d9047a05
Issue #4751: hashlib now releases the GIL when hashing large buffers
Antoine Pitrou <solipsis@pitrou.net>
parents:
49292
diff
changeset
|
520 |
|
f9f5d9047a05
Issue #4751: hashlib now releases the GIL when hashing large buffers
Antoine Pitrou <solipsis@pitrou.net>
parents:
49292
diff
changeset
|
521 m = hashlib.md5(b'x' * gil_minsize) |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66118
diff
changeset
|
522 self.assertEqual(m.hexdigest(), 'cfb767f225d58469c5de3632a8803958') |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
523 |
|
61073
493bb4585e38
Merged revisions 80552-80556,80564-80566,80568-80571 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
59615
diff
changeset
|
524 @unittest.skipUnless(threading, 'Threading required for this test.') |
|
493bb4585e38
Merged revisions 80552-80556,80564-80566,80568-80571 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
59615
diff
changeset
|
525 @support.reap_threads |
|
53727
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
526 def test_threaded_hashing(self): |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
527 # Updating the same hash object from several threads at once |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
528 # using data chunk sizes containing the same byte sequences. |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
529 # |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
530 # If the internal locks are working to prevent multiple |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
531 # updates on the same object from running at once, the resulting |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
532 # hash will be the same as doing it single threaded upfront. |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
533 hasher = hashlib.sha1() |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
534 num_threads = 5 |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
535 smallest_data = b'swineflu' |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
536 data = smallest_data*200000 |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
537 expected_hash = hashlib.sha1(data*num_threads).hexdigest() |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
538 |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
539 def hash_in_chunks(chunk_size, event): |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
540 index = 0 |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
541 while index < len(data): |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
542 hasher.update(data[index:index+chunk_size]) |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
543 index += chunk_size |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
544 event.set() |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
545 |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
546 events = [] |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
547 for threadnum in range(num_threads): |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
548 chunk_size = len(data) // (10**threadnum) |
|
85044
c6d4564dc86f
* Fix the assertions in hashlib to use unittest assertion methods instead of
Gregory P. Smith <greg@krypto.org>
parents:
85038
diff
changeset
|
549 self.assertGreater(chunk_size, 0) |
|
c6d4564dc86f
* Fix the assertions in hashlib to use unittest assertion methods instead of
Gregory P. Smith <greg@krypto.org>
parents:
85038
diff
changeset
|
550 self.assertEqual(chunk_size % len(smallest_data), 0) |
|
53727
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
551 event = threading.Event() |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
552 events.append(event) |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
553 threading.Thread(target=hash_in_chunks, |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
554 args=(chunk_size, event)).start() |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
555 |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
556 for event in events: |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
557 event.wait() |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
558 |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
559 self.assertEqual(expected_hash, hasher.hexdigest()) |
|
4cd437dface8
Merge refactoring I did when committing r72267 to trunk into the
Gregory P. Smith <greg@mad-scientist.com>
parents:
51543
diff
changeset
|
560 |
|
86467
e73627483d2f
Issue #19254: Provide an optimized Python implementation of PBKDF2_HMAC
Christian Heimes <christian@cheimes.de>
parents:
86264
diff
changeset
|
561 |
|
86479
a15fcb847515
Issue #18582: skip test of _hashlib.pbkdf2_hmac if OpenSSL is not available or too old
Christian Heimes <christian@cheimes.de>
parents:
86467
diff
changeset
|
562 class KDFTests(unittest.TestCase): |
|
86467
e73627483d2f
Issue #19254: Provide an optimized Python implementation of PBKDF2_HMAC
Christian Heimes <christian@cheimes.de>
parents:
86264
diff
changeset
|
563 |
|
86264
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
564 pbkdf2_test_vectors = [ |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
565 (b'password', b'salt', 1, None), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
566 (b'password', b'salt', 2, None), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
567 (b'password', b'salt', 4096, None), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
568 # too slow, it takes over a minute on a fast CPU. |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
569 #(b'password', b'salt', 16777216, None), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
570 (b'passwordPASSWORDpassword', b'saltSALTsaltSALTsaltSALTsaltSALTsalt', |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
571 4096, -1), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
572 (b'pass\0word', b'sa\0lt', 4096, 16), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
573 ] |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
574 |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
575 pbkdf2_results = { |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
576 "sha1": [ |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
577 # offical test vectors from RFC 6070 |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
578 (bytes.fromhex('0c60c80f961f0e71f3a9b524af6012062fe037a6'), None), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
579 (bytes.fromhex('ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957'), None), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
580 (bytes.fromhex('4b007901b765489abead49d926f721d065a429c1'), None), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
581 #(bytes.fromhex('eefe3d61cd4da4e4e9945b3d6ba2158c2634e984'), None), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
582 (bytes.fromhex('3d2eec4fe41c849b80c8d83662c0e44a8b291a964c' |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
583 'f2f07038'), 25), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
584 (bytes.fromhex('56fa6aa75548099dcc37d7f03425e0c3'), None),], |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
585 "sha256": [ |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
586 (bytes.fromhex('120fb6cffcf8b32c43e7225256c4f837' |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
587 'a86548c92ccc35480805987cb70be17b'), None), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
588 (bytes.fromhex('ae4d0c95af6b46d32d0adff928f06dd0' |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
589 '2a303f8ef3c251dfd6e2d85a95474c43'), None), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
590 (bytes.fromhex('c5e478d59288c841aa530db6845c4c8d' |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
591 '962893a001ce4e11a4963873aa98134a'), None), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
592 #(bytes.fromhex('cf81c66fe8cfc04d1f31ecb65dab4089' |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
593 # 'f7f179e89b3b0bcb17ad10e3ac6eba46'), None), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
594 (bytes.fromhex('348c89dbcbd32b2f32d814b8116e84cf2b17' |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
595 '347ebc1800181c4e2a1fb8dd53e1c635518c7dac47e9'), 40), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
596 (bytes.fromhex('89b69d0516f829893c696226650a8687'), None),], |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
597 "sha512": [ |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
598 (bytes.fromhex('867f70cf1ade02cff3752599a3a53dc4af34c7a669815ae5' |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
599 'd513554e1c8cf252c02d470a285a0501bad999bfe943c08f' |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
600 '050235d7d68b1da55e63f73b60a57fce'), None), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
601 (bytes.fromhex('e1d9c16aa681708a45f5c7c4e215ceb66e011a2e9f004071' |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
602 '3f18aefdb866d53cf76cab2868a39b9f7840edce4fef5a82' |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
603 'be67335c77a6068e04112754f27ccf4e'), None), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
604 (bytes.fromhex('d197b1b33db0143e018b12f3d1d1479e6cdebdcc97c5c0f8' |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
605 '7f6902e072f457b5143f30602641b3d55cd335988cb36b84' |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
606 '376060ecd532e039b742a239434af2d5'), None), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
607 (bytes.fromhex('8c0511f4c6e597c6ac6315d8f0362e225f3c501495ba23b8' |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
608 '68c005174dc4ee71115b59f9e60cd9532fa33e0f75aefe30' |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
609 '225c583a186cd82bd4daea9724a3d3b8'), 64), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
610 (bytes.fromhex('9d9e9c4cd21fe4be24d5b8244c759665'), None),], |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
611 } |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
612 |
|
86479
a15fcb847515
Issue #18582: skip test of _hashlib.pbkdf2_hmac if OpenSSL is not available or too old
Christian Heimes <christian@cheimes.de>
parents:
86467
diff
changeset
|
613 def _test_pbkdf2_hmac(self, pbkdf2): |
|
86264
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
614 for digest_name, results in self.pbkdf2_results.items(): |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
615 for i, vector in enumerate(self.pbkdf2_test_vectors): |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
616 password, salt, rounds, dklen = vector |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
617 expected, overwrite_dklen = results[i] |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
618 if overwrite_dklen: |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
619 dklen = overwrite_dklen |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
620 out = pbkdf2(digest_name, password, salt, rounds, dklen) |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
621 self.assertEqual(out, expected, |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
622 (digest_name, password, salt, rounds, dklen)) |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
623 out = pbkdf2(digest_name, memoryview(password), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
624 memoryview(salt), rounds, dklen) |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
625 out = pbkdf2(digest_name, bytearray(password), |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
626 bytearray(salt), rounds, dklen) |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
627 self.assertEqual(out, expected) |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
628 if dklen is None: |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
629 out = pbkdf2(digest_name, password, salt, rounds) |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
630 self.assertEqual(out, expected, |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
631 (digest_name, password, salt, rounds)) |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
632 |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
633 self.assertRaises(TypeError, pbkdf2, b'sha1', b'pass', b'salt', 1) |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
634 self.assertRaises(TypeError, pbkdf2, 'sha1', 'pass', 'salt', 1) |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
635 self.assertRaises(ValueError, pbkdf2, 'sha1', b'pass', b'salt', 0) |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
636 self.assertRaises(ValueError, pbkdf2, 'sha1', b'pass', b'salt', -1) |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
637 self.assertRaises(ValueError, pbkdf2, 'sha1', b'pass', b'salt', 1, 0) |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
638 self.assertRaises(ValueError, pbkdf2, 'sha1', b'pass', b'salt', 1, -1) |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
639 with self.assertRaisesRegex(ValueError, 'unsupported hash type'): |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
640 pbkdf2('unknown', b'pass', b'salt', 1) |
|
5fd56d6d3fce
Issue #18582: Add 'pbkdf2_hmac' to the hashlib module.
Christian Heimes <christian@cheimes.de>
parents:
85179
diff
changeset
|
641 |
|
86479
a15fcb847515
Issue #18582: skip test of _hashlib.pbkdf2_hmac if OpenSSL is not available or too old
Christian Heimes <christian@cheimes.de>
parents:
86467
diff
changeset
|
642 def test_pbkdf2_hmac_py(self): |
|
a15fcb847515
Issue #18582: skip test of _hashlib.pbkdf2_hmac if OpenSSL is not available or too old
Christian Heimes <christian@cheimes.de>
parents:
86467
diff
changeset
|
643 self._test_pbkdf2_hmac(py_hashlib.pbkdf2_hmac) |
|
86467
e73627483d2f
Issue #19254: Provide an optimized Python implementation of PBKDF2_HMAC
Christian Heimes <christian@cheimes.de>
parents:
86264
diff
changeset
|
644 |
|
86479
a15fcb847515
Issue #18582: skip test of _hashlib.pbkdf2_hmac if OpenSSL is not available or too old
Christian Heimes <christian@cheimes.de>
parents:
86467
diff
changeset
|
645 @unittest.skipUnless(hasattr(c_hashlib, 'pbkdf2_hmac'), |
|
a15fcb847515
Issue #18582: skip test of _hashlib.pbkdf2_hmac if OpenSSL is not available or too old
Christian Heimes <christian@cheimes.de>
parents:
86467
diff
changeset
|
646 ' test requires OpenSSL > 1.0') |
|
a15fcb847515
Issue #18582: skip test of _hashlib.pbkdf2_hmac if OpenSSL is not available or too old
Christian Heimes <christian@cheimes.de>
parents:
86467
diff
changeset
|
647 def test_pbkdf2_hmac_c(self): |
|
a15fcb847515
Issue #18582: skip test of _hashlib.pbkdf2_hmac if OpenSSL is not available or too old
Christian Heimes <christian@cheimes.de>
parents:
86467
diff
changeset
|
648 self._test_pbkdf2_hmac(c_hashlib.pbkdf2_hmac) |
|
86467
e73627483d2f
Issue #19254: Provide an optimized Python implementation of PBKDF2_HMAC
Christian Heimes <christian@cheimes.de>
parents:
86264
diff
changeset
|
649 |
|
e73627483d2f
Issue #19254: Provide an optimized Python implementation of PBKDF2_HMAC
Christian Heimes <christian@cheimes.de>
parents:
86264
diff
changeset
|
650 |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
diff
changeset
|
651 if __name__ == "__main__": |
|
84108
05f7883ee92d
Update various test modules to use unittest.main() for test discovery
Brett Cannon <brett@python.org>
parents:
79502
diff
changeset
|
652 unittest.main() |
