Loading changes/bug23071 0 → 100644 +5 −0 Original line number Diff line number Diff line o Minor bugfixes (tests): - Port the hs_ntor handshake test to work correctly with recent versions of the pysha3 module. Fixes bug 23071; bugfix on 0.3.1.1-alpha. src/test/hs_ntor_ref.py +24 −7 Original line number Diff line number Diff line Loading @@ -54,9 +54,26 @@ except ImportError: import slownacl_curve25519 curve25519mod = slownacl_curve25519 import hashlib try: import sha3 except ImportError: # In python 3.6, the sha3 functions are in hashlib whether we # import sha3 or not. sha3 = None try: # Pull the sha3 functions in. from hashlib import sha3_256, shake_256 shake_squeeze = shake_256.digest 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 else: # error code 77 tells automake to skip this test sys.exit(77) Loading @@ -81,7 +98,7 @@ def mac(k,m): def htonll(num): return struct.pack('!q', num) s = sha3.SHA3256() s = sha3_256() s.update(htonll(len(k))) s.update(k) s.update(m) Loading @@ -107,9 +124,9 @@ def intro2_ntor_client(intro_auth_pubkey_str, intro_enc_pubkey, assert(len(secret) == INTRO_SECRET_LEN) info = M_HSEXPAND + subcredential kdf = sha3.SHAKE256() kdf = shake_256() kdf.update(secret + T_HSENC + info) key_material = kdf.squeeze(64*8) key_material = shake_squeeze(kdf, 64*8) enc_key = key_material[0:32] mac_key = key_material[32:64] Loading Loading @@ -139,9 +156,9 @@ def intro2_ntor_service(intro_auth_pubkey_str, client_enc_pubkey, service_enc_pr assert(len(secret) == INTRO_SECRET_LEN) info = M_HSEXPAND + subcredential kdf = sha3.SHAKE256() kdf = shake_256() kdf.update(secret + T_HSENC + info) key_material = kdf.squeeze(64*8) key_material = shake_squeeze(kdf, 64*8) enc_key = key_material[0:32] mac_key = key_material[32:64] Loading Loading
changes/bug23071 0 → 100644 +5 −0 Original line number Diff line number Diff line o Minor bugfixes (tests): - Port the hs_ntor handshake test to work correctly with recent versions of the pysha3 module. Fixes bug 23071; bugfix on 0.3.1.1-alpha.
src/test/hs_ntor_ref.py +24 −7 Original line number Diff line number Diff line Loading @@ -54,9 +54,26 @@ except ImportError: import slownacl_curve25519 curve25519mod = slownacl_curve25519 import hashlib try: import sha3 except ImportError: # In python 3.6, the sha3 functions are in hashlib whether we # import sha3 or not. sha3 = None try: # Pull the sha3 functions in. from hashlib import sha3_256, shake_256 shake_squeeze = shake_256.digest 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 else: # error code 77 tells automake to skip this test sys.exit(77) Loading @@ -81,7 +98,7 @@ def mac(k,m): def htonll(num): return struct.pack('!q', num) s = sha3.SHA3256() s = sha3_256() s.update(htonll(len(k))) s.update(k) s.update(m) Loading @@ -107,9 +124,9 @@ def intro2_ntor_client(intro_auth_pubkey_str, intro_enc_pubkey, assert(len(secret) == INTRO_SECRET_LEN) info = M_HSEXPAND + subcredential kdf = sha3.SHAKE256() kdf = shake_256() kdf.update(secret + T_HSENC + info) key_material = kdf.squeeze(64*8) key_material = shake_squeeze(kdf, 64*8) enc_key = key_material[0:32] mac_key = key_material[32:64] Loading Loading @@ -139,9 +156,9 @@ def intro2_ntor_service(intro_auth_pubkey_str, client_enc_pubkey, service_enc_pr assert(len(secret) == INTRO_SECRET_LEN) info = M_HSEXPAND + subcredential kdf = sha3.SHAKE256() kdf = shake_256() kdf.update(secret + T_HSENC + info) key_material = kdf.squeeze(64*8) key_material = shake_squeeze(kdf, 64*8) enc_key = key_material[0:32] mac_key = key_material[32:64] Loading