7a8cac
From f73d993bcb03701f4e9146005a65eb482689140a Mon Sep 17 00:00:00 2001
7a8cac
From: =?UTF-8?q?Nikola=20Forr=C3=B3?= <nforro@redhat.com>
7a8cac
Date: Mon, 26 Oct 2020 18:54:22 +0100
7a8cac
Subject: [PATCH] TST: Make test suite work in FIPS (140-2) Mode
7a8cac
MIME-Version: 1.0
7a8cac
Content-Type: text/plain; charset=UTF-8
7a8cac
Content-Transfer-Encoding: 8bit
7a8cac
7a8cac
Tests using MD5 algorithms fail in FIPS Mode because MD5 is not FIPS
7a8cac
compliant.
7a8cac
7a8cac
Mark usages of MD5 in test suite as not being used for security
7a8cac
purposes to overcome that.
7a8cac
7a8cac
Signed-off-by: Nikola Forró <nforro@redhat.com>
7a8cac
---
7a8cac
 numpy/core/tests/test_regression.py          |  2 +-
7a8cac
 numpy/random/tests/test_generator_mt19937.py | 10 +++++-----
7a8cac
 numpy/random/tests/test_random.py            |  4 ++--
7a8cac
 numpy/random/tests/test_randomstate.py       |  6 +++---
7a8cac
 4 files changed, 11 insertions(+), 11 deletions(-)
7a8cac
7a8cac
diff --git a/numpy/core/tests/test_regression.py b/numpy/core/tests/test_regression.py
7a8cac
index 2e731d4fa..4633174d9 100644
7a8cac
--- a/numpy/core/tests/test_regression.py
7a8cac
+++ b/numpy/core/tests/test_regression.py
7a8cac
@@ -1509,7 +1509,7 @@ class TestRegression:
7a8cac
         from hashlib import md5
7a8cac
 
7a8cac
         x = np.array([1, 2, 3], dtype=np.dtype('
7a8cac
-        assert_equal(md5(x).hexdigest(), '2a1dd1e1e59d0a384c26951e316cd7e6')
7a8cac
+        assert_equal(md5(x, usedforsecurity=False).hexdigest(), '2a1dd1e1e59d0a384c26951e316cd7e6')
7a8cac
 
7a8cac
     def test_0d_string_scalar(self):
7a8cac
         # Bug #1436; the following should succeed
7a8cac
diff --git a/numpy/random/tests/test_generator_mt19937.py b/numpy/random/tests/test_generator_mt19937.py
7a8cac
index 6be7d852b..9b166e3a2 100644
7a8cac
--- a/numpy/random/tests/test_generator_mt19937.py
7a8cac
+++ b/numpy/random/tests/test_generator_mt19937.py
7a8cac
@@ -507,14 +507,14 @@ class TestIntegers:
7a8cac
                 val = random.integers(0, 6 - endpoint, size=1000, endpoint=endpoint,
7a8cac
                                  dtype=dt).byteswap()
7a8cac
 
7a8cac
-            res = hashlib.md5(val).hexdigest()
7a8cac
+            res = hashlib.md5(val, usedforsecurity=False).hexdigest()
7a8cac
             assert_(tgt[np.dtype(dt).name] == res)
7a8cac
 
7a8cac
         # bools do not depend on endianness
7a8cac
         random = Generator(MT19937(1234))
7a8cac
         val = random.integers(0, 2 - endpoint, size=1000, endpoint=endpoint,
7a8cac
                          dtype=bool).view(np.int8)
7a8cac
-        res = hashlib.md5(val).hexdigest()
7a8cac
+        res = hashlib.md5(val, usedforsecurity=False).hexdigest()
7a8cac
         assert_(tgt[np.dtype(bool).name] == res)
7a8cac
 
7a8cac
     def test_repeatability_broadcasting(self, endpoint):
7a8cac
@@ -910,7 +910,7 @@ class TestRandomDist:
7a8cac
         actual = random.choice(10000, 5000, replace=False)
7a8cac
         if sys.byteorder != 'little':
7a8cac
             actual = actual.byteswap()
7a8cac
-        res = hashlib.md5(actual.view(np.int8)).hexdigest()
7a8cac
+        res = hashlib.md5(actual.view(np.int8), usedforsecurity=False).hexdigest()
7a8cac
         assert_(choice_hash == res)
7a8cac
 
7a8cac
     def test_bytes(self):
7a8cac
@@ -2436,7 +2436,7 @@ def test_jumped(config):
7a8cac
     key = mt19937.state["state"]["key"]
7a8cac
     if sys.byteorder == 'big':
7a8cac
         key = key.byteswap()
7a8cac
-    md5 = hashlib.md5(key)
7a8cac
+    md5 = hashlib.md5(key, usedforsecurity=False)
7a8cac
     assert mt19937.state["state"]["pos"] == config["initial"]["pos"]
7a8cac
     assert md5.hexdigest() == config["initial"]["key_md5"]
7a8cac
 
7a8cac
@@ -2444,7 +2444,7 @@ def test_jumped(config):
7a8cac
     key = jumped.state["state"]["key"]
7a8cac
     if sys.byteorder == 'big':
7a8cac
         key = key.byteswap()
7a8cac
-    md5 = hashlib.md5(key)
7a8cac
+    md5 = hashlib.md5(key, usedforsecurity=False)
7a8cac
     assert jumped.state["state"]["pos"] == config["jumped"]["pos"]
7a8cac
     assert md5.hexdigest() == config["jumped"]["key_md5"]
7a8cac
 
7a8cac
diff --git a/numpy/random/tests/test_random.py b/numpy/random/tests/test_random.py
7a8cac
index 276b5bc81..e49251af3 100644
7a8cac
--- a/numpy/random/tests/test_random.py
7a8cac
+++ b/numpy/random/tests/test_random.py
7a8cac
@@ -233,13 +233,13 @@ class TestRandint:
7a8cac
             else:
7a8cac
                 val = self.rfunc(0, 6, size=1000, dtype=dt).byteswap()
7a8cac
 
7a8cac
-            res = hashlib.md5(val.view(np.int8)).hexdigest()
7a8cac
+            res = hashlib.md5(val.view(np.int8), usedforsecurity=False).hexdigest()
7a8cac
             assert_(tgt[np.dtype(dt).name] == res)
7a8cac
 
7a8cac
         # bools do not depend on endianness
7a8cac
         np.random.seed(1234)
7a8cac
         val = self.rfunc(0, 2, size=1000, dtype=bool).view(np.int8)
7a8cac
-        res = hashlib.md5(val).hexdigest()
7a8cac
+        res = hashlib.md5(val, usedforsecurity=False).hexdigest()
7a8cac
         assert_(tgt[np.dtype(bool).name] == res)
7a8cac
 
7a8cac
     def test_int64_uint64_corner_case(self):
7a8cac
diff --git a/numpy/random/tests/test_randomstate.py b/numpy/random/tests/test_randomstate.py
7a8cac
index 23dbbed6a..aa53d9322 100644
7a8cac
--- a/numpy/random/tests/test_randomstate.py
7a8cac
+++ b/numpy/random/tests/test_randomstate.py
7a8cac
@@ -341,13 +341,13 @@ class TestRandint:
7a8cac
             else:
7a8cac
                 val = self.rfunc(0, 6, size=1000, dtype=dt).byteswap()
7a8cac
 
7a8cac
-            res = hashlib.md5(val.view(np.int8)).hexdigest()
7a8cac
+            res = hashlib.md5(val.view(np.int8), usedforsecurity=False).hexdigest()
7a8cac
             assert_(tgt[np.dtype(dt).name] == res)
7a8cac
 
7a8cac
         # bools do not depend on endianness
7a8cac
         random.seed(1234)
7a8cac
         val = self.rfunc(0, 2, size=1000, dtype=bool).view(np.int8)
7a8cac
-        res = hashlib.md5(val).hexdigest()
7a8cac
+        res = hashlib.md5(val, usedforsecurity=False).hexdigest()
7a8cac
         assert_(tgt[np.dtype(bool).name] == res)
7a8cac
 
7a8cac
     @pytest.mark.skipif(np.iinfo('l').max < 2**32,
7a8cac
@@ -1987,7 +1987,7 @@ def test_integer_repeat(int_func):
7a8cac
     val = f(*args, size=1000000)
7a8cac
     if sys.byteorder != 'little':
7a8cac
         val = val.byteswap()
7a8cac
-    res = hashlib.md5(val.view(np.int8)).hexdigest()
7a8cac
+    res = hashlib.md5(val.view(np.int8), usedforsecurity=False).hexdigest()
7a8cac
     assert_(res == md5)
7a8cac
 
7a8cac
 
7a8cac
-- 
7a8cac
2.26.2
7a8cac