Skip to content

Commit

Permalink
Improve blake2 comment for Victor (pythonGH-20981)
Browse files Browse the repository at this point in the history
Signed-off-by: Christian Heimes <christian@python.org>

Automerge-Triggered-By: @tiran
  • Loading branch information
tiran authored and fasihahmad committed Jun 29, 2020
1 parent c4fb656 commit a97df98
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions Lib/hashlib.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,11 @@

__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',
}
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit a97df98

Please sign in to comment.