|
- from twistednoise import genkeypair
- from noise.connection import NoiseConnection, Keypair
-
- server_key_pair = genkeypair()
- client_key_pair = genkeypair()
-
- init = NoiseConnection.from_name(b'Noise_XK_448_ChaChaPoly_SHA256')
- init.set_as_initiator()
-
- init.set_keypair_from_private_bytes(Keypair.STATIC, client_key_pair[1])
- init.set_keypair_from_public_bytes(Keypair.REMOTE_STATIC, server_key_pair[0])
-
- resp = NoiseConnection.from_name(b'Noise_XK_448_ChaChaPoly_SHA256')
- resp.set_as_responder()
-
- resp.set_keypair_from_private_bytes(Keypair.STATIC, server_key_pair[1])
-
- init.start_handshake()
- resp.start_handshake()
-
- messages = []
-
- cursend, currecv = init, resp
- while not init.handshake_finished and not resp.handshake_finished:
- # send a message
- msg = cursend.write_message()
- currecv.read_message(msg)
-
- # record it
- messages.append(msg)
-
- # swap roles
- cursend, currecv = currecv, cursend
-
- print(list(map(len, messages)))
|