Files
UnHided/mediaflow_proxy/utils/tlshashlib.py
UrloMythus cfc6bbabc9 update
2026-02-19 20:15:03 +01:00

38 lines
973 B
Python

# Author: Hubert Kario (c) 2015
# see LICENCE file for legal information regarding use of this file
"""hashlib that handles FIPS mode."""
import hashlib
# Re-export commonly used hash constructors
sha1 = hashlib.sha1
sha224 = hashlib.sha224
sha256 = hashlib.sha256
sha384 = hashlib.sha384
sha512 = hashlib.sha512
sha3_224 = hashlib.sha3_224
sha3_256 = hashlib.sha3_256
sha3_384 = hashlib.sha3_384
sha3_512 = hashlib.sha3_512
blake2b = hashlib.blake2b
blake2s = hashlib.blake2s
def _fipsFunction(func, *args, **kwargs):
"""Make hash function support FIPS mode."""
try:
return func(*args, **kwargs)
except ValueError:
return func(*args, usedforsecurity=False, **kwargs)
def md5(*args, **kwargs):
"""MD5 constructor that works in FIPS mode."""
return _fipsFunction(hashlib.md5, *args, **kwargs)
def new(*args, **kwargs):
"""General constructor that works in FIPS mode."""
return _fipsFunction(hashlib.new, *args, **kwargs)