aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/test_hashlib.py
diff options
context:
space:
mode:
authorChristian Heimes <christian@python.org>2020-05-16 22:27:06 +0200
committerGitHub <noreply@github.com>2020-05-16 13:27:06 -0700
commitd5b3f6b7f9fc74438009af63f1de01bd77be9385 (patch)
tree32fed153b988a3dbb9c691ba924d989de5d17578 /Lib/test/test_hashlib.py
parentb17e49e0def23238b9e7f48c8a02e2d7bbf1f653 (diff)
downloadcpython-d5b3f6b7f9fc74438009af63f1de01bd77be9385.tar.gz
cpython-d5b3f6b7f9fc74438009af63f1de01bd77be9385.zip
bpo-37630: Use SHA3 and SHAKE XOF from OpenSSL (GH-16049)
OpenSSL 1.1.1 comes with SHA3 and SHAKE builtin. Signed-off-by: Christian Heimes <christian@python.org> Automerge-Triggered-By: @tiran
Diffstat (limited to 'Lib/test/test_hashlib.py')
-rw-r--r--Lib/test/test_hashlib.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py
index f9fe7e37920..b901468db38 100644
--- a/Lib/test/test_hashlib.py
+++ b/Lib/test/test_hashlib.py
@@ -27,9 +27,10 @@ c_hashlib = import_fresh_module('hashlib', fresh=['_hashlib'])
py_hashlib = import_fresh_module('hashlib', blocked=['_hashlib'])
try:
- from _hashlib import HASH
+ from _hashlib import HASH, HASHXOF
except ImportError:
HASH = None
+ HASHXOF = None
try:
import _blake2
@@ -254,6 +255,9 @@ class HashLibTestCase(unittest.TestCase):
h = cons()
if h.name not in self.shakes:
continue
+ if HASH is not None and isinstance(h, HASH):
+ # _hashopenssl's take a size_t
+ continue
for digest in h.digest, h.hexdigest:
self.assertRaises(ValueError, digest, -10)
for length in large_sizes:
@@ -860,6 +864,18 @@ class HashLibTestCase(unittest.TestCase):
def test_get_fips_mode(self):
self.assertIsInstance(c_hashlib.get_fips_mode(), int)
+ @unittest.skipUnless(HASH is not None, 'need _hashlib')
+ def test_internal_types(self):
+ # internal types like _hashlib.HASH are not constructable
+ with self.assertRaisesRegex(
+ TypeError, "cannot create 'HASH' instance"
+ ):
+ HASH()
+ with self.assertRaisesRegex(
+ TypeError, "cannot create 'HASHXOF' instance"
+ ):
+ HASHXOF()
+
class KDFTests(unittest.TestCase):