|
@@ -83,11 +83,11 @@ from ntor_ref import hash_nil
|
|
|
from ntor_ref import PrivateKey
|
|
|
|
|
|
# String constants used in this protocol
|
|
|
-PROTOID = "tor-hs-ntor-curve25519-sha3-256-1"
|
|
|
-T_HSENC = PROTOID + ":hs_key_extract"
|
|
|
-T_HSVERIFY = PROTOID + ":hs_verify"
|
|
|
-T_HSMAC = PROTOID + ":hs_mac"
|
|
|
-M_HSEXPAND = PROTOID + ":hs_key_expand"
|
|
|
+PROTOID = b"tor-hs-ntor-curve25519-sha3-256-1"
|
|
|
+T_HSENC = PROTOID + b":hs_key_extract"
|
|
|
+T_HSVERIFY = PROTOID + b":hs_verify"
|
|
|
+T_HSMAC = PROTOID + b":hs_mac"
|
|
|
+M_HSEXPAND = PROTOID + b":hs_key_expand"
|
|
|
|
|
|
INTRO_SECRET_LEN = 161
|
|
|
REND_SECRET_LEN = 225
|
|
@@ -191,7 +191,7 @@ def service_part1(intro_auth_pubkey_str, client_enc_pubkey, intro_enc_privkey, i
|
|
|
|
|
|
ntor_key_seed = mac(rend_secret_hs_input, T_HSENC)
|
|
|
verify = mac(rend_secret_hs_input, T_HSVERIFY)
|
|
|
- auth_input = verify + intro_auth_pubkey_str + intro_enc_pubkey.serialize() + service_ephemeral_pubkey.serialize() + client_enc_pubkey.serialize() + PROTOID + "Server"
|
|
|
+ auth_input = verify + intro_auth_pubkey_str + intro_enc_pubkey.serialize() + service_ephemeral_pubkey.serialize() + client_enc_pubkey.serialize() + PROTOID + b"Server"
|
|
|
assert(len(auth_input) == AUTH_INPUT_LEN)
|
|
|
auth_input_mac = mac(auth_input, T_HSMAC)
|
|
|
|
|
@@ -218,7 +218,7 @@ def client_part2(intro_auth_pubkey_str, client_ephemeral_enc_pubkey, client_ephe
|
|
|
|
|
|
ntor_key_seed = mac(rend_secret_hs_input, T_HSENC)
|
|
|
verify = mac(rend_secret_hs_input, T_HSVERIFY)
|
|
|
- auth_input = verify + intro_auth_pubkey_str + intro_enc_pubkey.serialize() + service_ephemeral_rend_pubkey.serialize() + client_ephemeral_enc_pubkey.serialize() + PROTOID + "Server"
|
|
|
+ auth_input = verify + intro_auth_pubkey_str + intro_enc_pubkey.serialize() + service_ephemeral_rend_pubkey.serialize() + client_ephemeral_enc_pubkey.serialize() + PROTOID + b"Server"
|
|
|
assert(len(auth_input) == AUTH_INPUT_LEN)
|
|
|
auth_input_mac = mac(auth_input, T_HSMAC)
|
|
|
|
|
@@ -294,7 +294,7 @@ def do_pure_python_ntor_test():
|
|
|
assert(client_ntor_key_seed == service_ntor_key_seed)
|
|
|
assert(client_auth_input_mac == service_auth_input_mac)
|
|
|
|
|
|
- print "DONE: python dance [%s]" % repr(client_auth_input_mac)
|
|
|
+ print("DONE: python dance [%s]" % repr(client_auth_input_mac))
|
|
|
|
|
|
# Perform a pure little-t-tor integration test.
|
|
|
def do_little_t_tor_ntor_test():
|
|
@@ -334,7 +334,7 @@ def do_little_t_tor_ntor_test():
|
|
|
assert(client_ntor_key_seed == service_ntor_key_seed)
|
|
|
assert(client_ntor_auth_mac == service_ntor_auth_mac)
|
|
|
|
|
|
- print "DONE: tor dance [%s]" % repr(client_ntor_auth_mac)
|
|
|
+ print("DONE: tor dance [%s]" % repr(client_ntor_auth_mac))
|
|
|
|
|
|
"""
|
|
|
Do mixed test as follows:
|
|
@@ -379,7 +379,7 @@ def do_first_mixed_test():
|
|
|
assert(client_auth_input_mac == service_ntor_auth_mac)
|
|
|
assert(client_ntor_key_seed == service_ntor_key_seed)
|
|
|
|
|
|
- print "DONE: 1st mixed dance [%s]" % repr(client_auth_input_mac)
|
|
|
+ print("DONE: 1st mixed dance [%s]" % repr(client_auth_input_mac))
|
|
|
|
|
|
"""
|
|
|
Do mixed test as follows:
|
|
@@ -413,7 +413,7 @@ def do_second_mixed_test():
|
|
|
assert(client_ntor_key_seed == service_ntor_key_seed)
|
|
|
assert(client_ntor_auth_mac == service_ntor_auth_mac)
|
|
|
|
|
|
- print "DONE: 2nd mixed dance [%s]" % repr(client_ntor_auth_mac)
|
|
|
+ print("DONE: 2nd mixed dance [%s]" % repr(client_ntor_auth_mac))
|
|
|
|
|
|
def do_mixed_tests():
|
|
|
do_first_mixed_test()
|