summaryrefslogtreecommitdiff
path: root/coverage/misc.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2021-07-13 16:57:06 -0400
committerNed Batchelder <ned@nedbatchelder.com>2021-07-13 16:57:06 -0400
commit367f7c45c857be06cd970ac5594ad92d3e34199e (patch)
tree2bd4d6d6c1773daccba34197aa664c086926cf63 /coverage/misc.py
parentcaf7639d9a74d8adda15ad08fa1201c47efba86b (diff)
downloadpython-coveragepy-git-367f7c45c857be06cd970ac5594ad92d3e34199e.tar.gz
fix: use a modern hash when fingerprinting. #1189
Diffstat (limited to 'coverage/misc.py')
-rw-r--r--coverage/misc.py16
1 files changed, 8 insertions, 8 deletions
diff --git a/coverage/misc.py b/coverage/misc.py
index db2c3b75..108cf078 100644
--- a/coverage/misc.py
+++ b/coverage/misc.py
@@ -198,21 +198,21 @@ def filename_suffix(suffix):
class Hasher:
- """Hashes Python data into md5."""
+ """Hashes Python data for fingerprinting."""
def __init__(self):
- self.md5 = hashlib.md5()
+ self.hash = hashlib.new("sha3_256")
def update(self, v):
"""Add `v` to the hash, recursively if needed."""
- self.md5.update(str(type(v)).encode("utf8"))
+ self.hash.update(str(type(v)).encode("utf8"))
if isinstance(v, str):
- self.md5.update(v.encode('utf8'))
+ self.hash.update(v.encode('utf8'))
elif isinstance(v, bytes):
- self.md5.update(v)
+ self.hash.update(v)
elif v is None:
pass
elif isinstance(v, (int, float)):
- self.md5.update(str(v).encode("utf8"))
+ self.hash.update(str(v).encode("utf8"))
elif isinstance(v, (tuple, list)):
for e in v:
self.update(e)
@@ -230,11 +230,11 @@ class Hasher:
continue
self.update(k)
self.update(a)
- self.md5.update(b'.')
+ self.hash.update(b'.')
def hexdigest(self):
"""Retrieve the hex digest of the hash."""
- return self.md5.hexdigest()
+ return self.hash.hexdigest()
def _needs_to_implement(that, func_name):