from http.client import HTTPException
-default_builtin_hashes = {'md5', 'sha1', 'sha256', 'sha512', 'sha3', 'blake2'}
+default_builtin_hashes = {'md5', 'sha1', 'sha2', 'sha3', 'blake2'}
# --with-builtin-hashlib-hashes override
builtin_hashes = sysconfig.get_config_var("PY_BUILTIN_HASHLIB_HASHES")
if builtin_hashes is None:
builtin_hashes = default_builtin_hashes
else:
- builtin_hashes = {
- m.strip() for m in builtin_hashes.strip('"').lower().split(",")
- }
+ builtin_hash_names = builtin_hashes.strip('"').lower().split(",")
+ builtin_hashes = set(map(str.strip, builtin_hash_names))
-# hashlib with and without OpenSSL backend for PBKDF2
-# only import builtin_hashlib when all builtin hashes are available.
-# Otherwise import prints noise on stderr
+# Public 'hashlib' module with OpenSSL backend for PBKDF2.
openssl_hashlib = import_fresh_module('hashlib', fresh=['_hashlib'])
-if builtin_hashes == default_builtin_hashes:
- builtin_hashlib = import_fresh_module('hashlib', blocked=['_hashlib'])
-else:
- builtin_hashlib = None
try:
from _hashlib import HASH, HASHXOF, openssl_md_meth_names, get_fips_mode