gh-127298: Refactor test_hashlib for better usedforsecurity & openssl fips mode env support. by gpshead · Pull Request #127492 · python/cpython
I tested manually the change on RHEL8. 3 MD5 tests of test_hashlib are failing:
======================================================================
ERROR: test_case_md5_0 (test.test_hashlib.HashLibTestCase.test_case_md5_0)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/vstinner/cpython/Lib/test/test_hashlib.py", line 547, in test_case_md5_0
self.check(
~~~~~~~~~~^
'md5', b'', 'd41d8cd98f00b204e9800998ecf8427e',
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
usedforsecurity=False
^^^^^^^^^^^^^^^^^^^^^
)
^
File "/home/vstinner/cpython/Lib/test/test_hashlib.py", line 427, in check
self.check_file_digest(name, data, hexdigest)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/home/vstinner/cpython/Lib/test/test_hashlib.py", line 447, in check_file_digest
hashlib.file_digest(buf, digest).hexdigest(), hexdigest
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/home/vstinner/cpython/Lib/hashlib.py", line 211, in file_digest
digestobj = digest()
ValueError: [digital envelope routines: EVP_DigestInit_ex] disabled for FIPS
======================================================================
ERROR: test_case_md5_1 (test.test_hashlib.HashLibTestCase.test_case_md5_1)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/vstinner/cpython/Lib/test/test_hashlib.py", line 553, in test_case_md5_1
self.check(
~~~~~~~~~~^
'md5', b'abc', '900150983cd24fb0d6963f7d28e17f72',
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
usedforsecurity=False
^^^^^^^^^^^^^^^^^^^^^
)
^
File "/home/vstinner/cpython/Lib/test/test_hashlib.py", line 427, in check
self.check_file_digest(name, data, hexdigest)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/home/vstinner/cpython/Lib/test/test_hashlib.py", line 447, in check_file_digest
hashlib.file_digest(buf, digest).hexdigest(), hexdigest
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/home/vstinner/cpython/Lib/hashlib.py", line 211, in file_digest
digestobj = digest()
ValueError: [digital envelope routines: EVP_DigestInit_ex] disabled for FIPS
======================================================================
ERROR: test_case_md5_2 (test.test_hashlib.HashLibTestCase.test_case_md5_2)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/vstinner/cpython/Lib/test/test_hashlib.py", line 559, in test_case_md5_2
self.check(
~~~~~~~~~~^
'md5',
^^^^^^
...<2 lines>...
usedforsecurity=False
^^^^^^^^^^^^^^^^^^^^^
)
^
File "/home/vstinner/cpython/Lib/test/test_hashlib.py", line 427, in check
self.check_file_digest(name, data, hexdigest)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/home/vstinner/cpython/Lib/test/test_hashlib.py", line 447, in check_file_digest
hashlib.file_digest(buf, digest).hexdigest(), hexdigest
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/home/vstinner/cpython/Lib/hashlib.py", line 211, in file_digest
digestobj = digest()
ValueError: [digital envelope routines: EVP_DigestInit_ex] disabled for FIPS
----------------------------------------------------------------------