From 8a0fe7b4544ba28eeea6e16ddb646bb0b5d2918e Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Fri, 19 Jun 2020 16:11:02 +0200 Subject: [PATCH] Improve blake2 comment for Victor (GH-20981) Signed-off-by: Christian Heimes Automerge-Triggered-By: @tiran --- Lib/hashlib.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Lib/hashlib.py b/Lib/hashlib.py index 1b6e50247c1..58c340d56e3 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)