summaryrefslogtreecommitdiffstats
path: root/Lib/hmac.py
diff options
context:
space:
mode:
authorChristian Heimes <christian@python.org>2020-05-27 19:50:06 (GMT)
committerGitHub <noreply@github.com>2020-05-27 19:50:06 (GMT)
commitdb5aed931f8a617f7b63e773f62db468fe9c5ca1 (patch)
tree64a2a3bf0865ac93b92d8361b6d3b51f1123cb0a /Lib/hmac.py
parent210a137396979d747c2602eeef46c34fc4955448 (diff)
downloadcpython-db5aed931f8a617f7b63e773f62db468fe9c5ca1.zip
cpython-db5aed931f8a617f7b63e773f62db468fe9c5ca1.tar.gz
cpython-db5aed931f8a617f7b63e773f62db468fe9c5ca1.tar.bz2
bpo-40791: Use CRYPTO_memcmp() for compare_digest (#20456)
hashlib.compare_digest uses OpenSSL's CRYPTO_memcmp() function when OpenSSL is available. Note: The _operator module is a builtin module. I don't want to add libcrypto dependency to libpython. Therefore I duplicated the wrapper function and added a copy to _hashopenssl.c.
Diffstat (limited to 'Lib/hmac.py')
-rw-r--r--Lib/hmac.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/Lib/hmac.py b/Lib/hmac.py
index 54a1ef9..180bc37 100644
--- a/Lib/hmac.py
+++ b/Lib/hmac.py
@@ -4,14 +4,15 @@ Implements the HMAC algorithm as described by RFC 2104.
"""
import warnings as _warnings
-from _operator import _compare_digest as compare_digest
try:
import _hashlib as _hashopenssl
except ImportError:
_hashopenssl = None
_openssl_md_meths = None
+ from _operator import _compare_digest as compare_digest
else:
_openssl_md_meths = frozenset(_hashopenssl.openssl_md_meth_names)
+ compare_digest = _hashopenssl.compare_digest
import hashlib as _hashlib
trans_5C = bytes((x ^ 0x5C) for x in range(256))