diff options
author | Nick Mathewson <nickm@torproject.org> | 2020-11-05 09:34:36 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2020-11-05 09:34:36 -0500 |
commit | 31a6a101a0c4cbe739a55069bf29a0f0615e5aa8 (patch) | |
tree | 2725a4b7cebd7494867a15ac7549125a42ac0b50 | |
parent | dd63b972883f6c0b23ee2f7661b7897b229dd28f (diff) | |
download | tor-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.
-rw-r--r-- | changes/bug40179_part1 | 4 | ||||
-rw-r--r-- | src/test/hs_ntor_ref.py | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/changes/bug40179_part1 b/changes/bug40179_part1 new file mode 100644 index 0000000000..c302373534 --- /dev/null +++ b/changes/bug40179_part1 @@ -0,0 +1,4 @@ + o Minor bugfixes (testing, portability): + - Fix our Python reference-implementation for the v3 onion service + handshake so that it works correctly with the version of hashlib provided + by Python 3.9. Fixes part of bug 40179; bugfix on 0.3.1.6-rc. 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) |