summaryrefslogtreecommitdiff
path: root/django/test
diff options
context:
space:
mode:
authorAde Lee <alee@redhat.com>2021-08-10 18:13:54 -0400
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-10-12 08:58:27 +0200
commitd10c7bfe56f025ccc690721c9f13e7029b777b9c (patch)
tree0f3cab5666f8cd69c99f3b91822e2f28b8dcf609 /django/test
parentb1b26b37aff0c80d6abdf15c5ffdf0440a9a1d6a (diff)
downloaddjango-d10c7bfe56f025ccc690721c9f13e7029b777b9c.tar.gz
Fixed #28401 -- Allowed hashlib.md5() calls to work with FIPS kernels.
md5 is not an approved algorithm in FIPS mode, and trying to instantiate a hashlib.md5() will fail when the system is running in FIPS mode. md5 is allowed when in a non-security context. There is a plan to add a keyword parameter (usedforsecurity) to hashlib.md5() to annotate whether or not the instance is being used in a security context. In the case where it is not, the instantiation of md5 will be allowed. See https://bugs.python.org/issue9216 for more details. Some downstream python versions already support this parameter. To support these versions, a new encapsulation of md5() has been added. This encapsulation will pass through the usedforsecurity parameter in the case where the parameter is supported, and strip it if it is not. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Diffstat (limited to 'django/test')
-rw-r--r--django/test/runner.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/django/test/runner.py b/django/test/runner.py
index 34480cf103..09ac4e142a 100644
--- a/django/test/runner.py
+++ b/django/test/runner.py
@@ -1,7 +1,6 @@
import argparse
import ctypes
import faulthandler
-import hashlib
import io
import itertools
import logging
@@ -26,6 +25,7 @@ from django.test.utils import (
setup_databases as _setup_databases, setup_test_environment,
teardown_databases as _teardown_databases, teardown_test_environment,
)
+from django.utils.crypto import new_hash
from django.utils.datastructures import OrderedSet
from django.utils.deprecation import RemovedInDjango50Warning
@@ -509,7 +509,7 @@ class Shuffler:
@classmethod
def _hash_text(cls, text):
- h = hashlib.new(cls.hash_algorithm)
+ h = new_hash(cls.hash_algorithm, usedforsecurity=False)
h.update(text.encode('utf-8'))
return h.hexdigest()