diff options
author | Christian Heimes <christian@python.org> | 2020-06-19 14:11:02 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-19 14:11:02 (GMT) |
commit | 8a0fe7b4544ba28eeea6e16ddb646bb0b5d2918e (patch) | |
tree | fce29c578124030cebbeea925356f2080c269ec2 /Lib/hashlib.py | |
parent | 66a65ba43cb3e68a43e32469c988dd7a6cff049c (diff) | |
download | cpython-8a0fe7b4544ba28eeea6e16ddb646bb0b5d2918e.zip cpython-8a0fe7b4544ba28eeea6e16ddb646bb0b5d2918e.tar.gz cpython-8a0fe7b4544ba28eeea6e16ddb646bb0b5d2918e.tar.bz2 |
Improve blake2 comment for Victor (GH-20981)
Signed-off-by: Christian Heimes <christian@python.org>
Automerge-Triggered-By: @tiran
Diffstat (limited to 'Lib/hashlib.py')
-rw-r--r-- | Lib/hashlib.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/Lib/hashlib.py b/Lib/hashlib.py index 1b6e502..58c340d 100644 --- a/Lib/hashlib.py +++ b/Lib/hashlib.py @@ -70,6 +70,11 @@ __all__ = __always_supported + ('new', 'algorithms_guaranteed', __builtin_constructor_cache = {} +# Prefer our blake2 implementation +# OpenSSL 1.1.0 comes with a limited implementation of blake2b/s. The OpenSSL +# implementations neither support keyed blake2 (blake2 MAC) nor advanced +# features like salt, personalization, or tree hashing. OpenSSL hash-only +# variants are available as 'blake2b512' and 'blake2s256', though. __block_openssl_constructor = { 'blake2b', 'blake2s', } @@ -120,7 +125,7 @@ def __get_builtin_constructor(name): def __get_openssl_constructor(name): if name in __block_openssl_constructor: - # Prefer our blake2 and sha3 implementation. + # Prefer our builtin blake2 implementation. return __get_builtin_constructor(name) try: # MD5, SHA1, and SHA2 are in all supported OpenSSL versions @@ -149,10 +154,7 @@ def __hash_new(name, data=b'', **kwargs): optionally initialized with data (which must be a bytes-like object). """ if name in __block_openssl_constructor: - # Prefer our blake2 and sha3 implementation - # OpenSSL 1.1.0 comes with a limited implementation of blake2b/s. - # It does neither support keyed blake2 nor advanced features like - # salt, personal, tree hashing or SSE. + # Prefer our builtin blake2 implementation. return __get_builtin_constructor(name)(data, **kwargs) try: return _hashlib.new(name, data, **kwargs) |