summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2020-11-05 09:34:36 -0500
committerNick Mathewson <nickm@torproject.org>2020-11-05 09:34:36 -0500
commit31a6a101a0c4cbe739a55069bf29a0f0615e5aa8 (patch)
tree2725a4b7cebd7494867a15ac7549125a42ac0b50 /src
parentdd63b972883f6c0b23ee2f7661b7897b229dd28f (diff)
downloadtor-31a6a101a0c4cbe739a55069bf29a0f0615e5aa8.tar.gz
tor-31a6a101a0c4cbe739a55069bf29a0f0615e5aa8.zip
Handle a change in the implementation of hashlib in Python 3.9
Previously, hashlib.shake_256 was a class (if present); now it can also be a function. This change invalidated our old compatibility/workaround code, and made one of our tests fail. Fixes bug 40179; bugfix on 0.3.1.6-rc when the workaround code was added.
Diffstat (limited to 'src')
-rw-r--r--src/test/hs_ntor_ref.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/test/hs_ntor_ref.py b/src/test/hs_ntor_ref.py
index 1b9772a5d6..d58ac3ca23 100644
--- a/src/test/hs_ntor_ref.py
+++ b/src/test/hs_ntor_ref.py
@@ -65,14 +65,16 @@ except ImportError:
try:
# Pull the sha3 functions in.
from hashlib import sha3_256, shake_256
- shake_squeeze = shake_256.digest
+ def shake_squeeze(obj, n):
+ return obj.digest(n)
except ImportError:
if hasattr(sha3, "SHA3256"):
# If this happens, then we have the old "sha3" module which
# hashlib and pysha3 superseded.
sha3_256 = sha3.SHA3256
shake_256 = sha3.SHAKE256
- shake_squeeze = shake_256.squeeze
+ def shake_squeeze(obj, n):
+ return obj.squeeze(n)
else:
# error code 77 tells automake to skip this test
sys.exit(77)