def plant_tree_req(handler, request): loop = asyncio.get_event_loop() # TODO """ if not handler.io_transport: handler.io_transport, _ = \ loop.create_unix_connection(proto.PomaresIOProtocol, config.io_sock_file) """ new_msg = proto.encode(proto.Ack(b'plant reply ' + request.tree)) new_msg = handler.box.encrypt(new_msg) handler.send_data(proto.compress_buff(new_msg))
def do_handshake(self, handler, msg): logger.debug('do_handshake()') try: # receive client pubkey and create my init_box handler.init_box = CryptoBox(self.keyobj) logger.debug("server init_box pk: {}".format(self.keyobj.pk)) logger.debug("server init_box sk: {}".format(self.keyobj.sk)) # init box with client's pubkey handler.init_box.box_with(msg.key) # create and send secret handler.box = SecretBox() sk_msg = encode(PubKeyReply(handler.box.sk)) sk_msg = handler.init_box.encrypt(sk_msg) handler.send_data(compress_buff(sk_msg)) handler.handshaked = True logger.info('HANDSHAKED1') except: raise BadHandshake()
session = self.loop.run_until_complete(self.server) session_admin = self.loop.run_until_complete(self.admin_server) session_io = self.loop.run_until_complete(self.io_server) logger.debug('serving on {}'.format(session.sockets[0].getsockname())) logger.debug('serving admin on {}'.format(session_admin.sockets[0]. getsockname())) logger.debug('serving io on {}'.format(session_io.sockets[0]. getsockname())) self.loop.run_forever() def start_server(keyfile, address, port): server = PomaresServer(pathjoin(key_path, keyfile), address, port) server.run() if __name__ == '__main__': if sys.argv[1] == 'client': loop = asyncio.get_event_loop() payload = sys.argv[2] payload = bytes(payload.encode()) print('input size: {}'.format(len(payload))) payload = compress_buff(payload) print('payload size: {}'.format(4+len(payload))) server_prot = PomaresProtocol(payload) loop.run_until_complete(loop.create_connection(lambda: server_prot, host='127.0.0.1', port=8080)) loop.run_forever() loop.close()
session_admin = self.loop.run_until_complete(self.admin_server) session_io = self.loop.run_until_complete(self.io_server) logger.debug('serving on {}'.format(session.sockets[0].getsockname())) logger.debug('serving admin on {}'.format( session_admin.sockets[0].getsockname())) logger.debug('serving io on {}'.format( session_io.sockets[0].getsockname())) self.loop.run_forever() def start_server(keyfile, address, port): server = PomaresServer(pathjoin(key_path, keyfile), address, port) server.run() if __name__ == '__main__': if sys.argv[1] == 'client': loop = asyncio.get_event_loop() payload = sys.argv[2] payload = bytes(payload.encode()) print('input size: {}'.format(len(payload))) payload = compress_buff(payload) print('payload size: {}'.format(4 + len(payload))) server_prot = PomaresProtocol(payload) loop.run_until_complete( loop.create_connection(lambda: server_prot, host='127.0.0.1', port=8080)) loop.run_forever() loop.close()
def echo(handler, request): new_msg = proto.encode(proto.Ack(b'echo ' + request.value)) new_msg = handler.box.encrypt(new_msg) handler.send_data(proto.compress_buff(new_msg))
def send_command(self, handler): new_msg = encode(self.command) new_msg = handler.box.encrypt(new_msg) handler.send_data(compress_buff(new_msg))
def do_handshake_init(self): logger.debug('do_handshake_init()') # send my pubkey to server handshk_payload = compress_buff(encode(PubKeyReply(self.keyobj.pk))) self.client_prot = PomaresProtocol(handshk_payload)