]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-109396: Fix test_socket.test_hmac_sha1() in FIPS mode (#109423)
authorVictor Stinner <vstinner@python.org>
Thu, 14 Sep 2023 21:24:11 +0000 (23:24 +0200)
committerGitHub <noreply@github.com>
Thu, 14 Sep 2023 21:24:11 +0000 (21:24 +0000)
Use a longer key: FIPS mode requires at least of at least 112 bits.
The previous key was only 32 bits.

Lib/test/test_socket.py
Misc/NEWS.d/next/Tests/2023-09-14-22-58-47.gh-issue-109396.J1a4jR.rst [new file with mode: 0644]

index f35618e0281e701e54379ba8bc59dec5cad4cbe2..99c4c5cbc4902de4c0c222601ea80912f6478c0e 100644 (file)
@@ -6474,12 +6474,16 @@ class LinuxKernelCryptoAPI(unittest.TestCase):
                 self.assertEqual(op.recv(512), expected)
 
     def test_hmac_sha1(self):
-        expected = bytes.fromhex("effcdf6ae5eb2fa2d27416d5f184df9c259a7c79")
+        # gh-109396: In FIPS mode, Linux 6.5 requires a key
+        # of at least 112 bits. Use a key of 152 bits.
+        key = b"Python loves AF_ALG"
+        data = b"what do ya want for nothing?"
+        expected = bytes.fromhex("193dbb43c6297b47ea6277ec0ce67119a3f3aa66")
         with self.create_alg('hash', 'hmac(sha1)') as algo:
-            algo.setsockopt(socket.SOL_ALG, socket.ALG_SET_KEY, b"Jefe")
+            algo.setsockopt(socket.SOL_ALG, socket.ALG_SET_KEY, key)
             op, _ = algo.accept()
             with op:
-                op.sendall(b"what do ya want for nothing?")
+                op.sendall(data)
                 self.assertEqual(op.recv(512), expected)
 
     # Although it should work with 3.19 and newer the test blocks on
diff --git a/Misc/NEWS.d/next/Tests/2023-09-14-22-58-47.gh-issue-109396.J1a4jR.rst b/Misc/NEWS.d/next/Tests/2023-09-14-22-58-47.gh-issue-109396.J1a4jR.rst
new file mode 100644 (file)
index 0000000..71150ec
--- /dev/null
@@ -0,0 +1,3 @@
+Fix ``test_socket.test_hmac_sha1()`` in FIPS mode. Use a longer key: FIPS
+mode requires at least of at least 112 bits. The previous key was only 32
+bits. Patch by Victor Stinner.