def test_handshake(temp_client): """ Test the handshake :return: """ serverpriv = identity.genkey() serverpub = serverpriv.get_verifying_key() secret, message = null_proto.client_handshake_begin(temp_client["longterm"], temp_client["session"], serverpub) assert secret assert message server_secret, gotpub, challenge, challenge_plain = null_proto.server_handshake_begin(serverpriv, message) assert secret == server_secret response = null_proto.client_handshake_finish(temp_client["longterm"], server_secret, challenge) complete = null_proto.server_handshake_finish(gotpub, challenge_plain, response) assert "status" in complete assert complete["status"] == "complete"
def POST(self): postdata = web.data() request = json.loads(postdata) pubhash = request["fingerprint"] with session_lock: assert pubhash in pending_sessions session = pending_sessions[pubhash] result = null_proto.server_handshake_finish(session.pubkey, session.challenge_plain, request) # session ready session.commander = Commander() session.commander.session = session session.commander.pubkey = session.pubkey session.handshake_done = True del(pending_sessions[pubhash]) sessions[pubhash] = session return json.dumps(result)