|
9 | 9 | import os
|
10 | 10 | import io
|
11 | 11 | import ftplib
|
12 |
| -import hashlib |
13 | 12 | import socket
|
14 | 13 | import array
|
15 | 14 | import sys
|
|
28 | 27 | import urllib.error
|
29 | 28 | import http.client
|
30 | 29 |
|
| 30 | +try: |
| 31 | + from _hashlib import get_fips_mode |
| 32 | +except ImportError: |
| 33 | + def get_fips_mode(): |
| 34 | + return 0 |
| 35 | + |
31 | 36 | support.requires_working_socket(module=True)
|
32 | 37 |
|
33 | 38 | # XXX
|
@@ -1968,19 +1973,19 @@ class TestDigestAuthAlgorithms(unittest.TestCase):
|
1968 | 1973 | def setUp(self):
|
1969 | 1974 | self.handler = AbstractDigestAuthHandler()
|
1970 | 1975 |
|
1971 |
| - @unittest.skipUnless(hasattr(hashlib, 'md5'), "required hashlib.md5") |
| 1976 | + @unittest.skipIf(get_fips_mode(), "fips mode; requires hashlib.md5") |
1972 | 1977 | def test_md5_algorithm(self):
|
1973 | 1978 | H, KD = self.handler.get_algorithm_impls('MD5')
|
1974 | 1979 | self.assertEqual(H("foo"), "acbd18db4cc2f85cedef654fccc4a4d8")
|
1975 | 1980 | self.assertEqual(KD("foo", "bar"), "4e99e8c12de7e01535248d2bac85e732")
|
1976 | 1981 |
|
1977 |
| - @unittest.skipUnless(hasattr(hashlib, 'sha1'), "required hashlib.sha1") |
| 1982 | + @unittest.skipIf(get_fips_mode(), "fips mode; requires hashlib.sha1") |
1978 | 1983 | def test_sha_algorithm(self):
|
1979 | 1984 | H, KD = self.handler.get_algorithm_impls('SHA')
|
1980 | 1985 | self.assertEqual(H("foo"), "0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33")
|
1981 | 1986 | self.assertEqual(KD("foo", "bar"), "54dcbe67d21d5eb39493d46d89ae1f412d3bd6de")
|
1982 | 1987 |
|
1983 |
| - @unittest.skipUnless(hasattr(hashlib, 'sha256'), "required hashlib.sha256") |
| 1988 | + @unittest.skipIf(get_fips_mode(), "fips mode; requires hashlib.sha256") |
1984 | 1989 | def test_sha256_algorithm(self):
|
1985 | 1990 | H, KD = self.handler.get_algorithm_impls('SHA-256')
|
1986 | 1991 | self.assertEqual(H("foo"), "2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae")
|
|
0 commit comments