Example #1
0
    def route(self, handler, msg):
        logger.debug('routing msg: {}'.format(msg))
        try:
            msg = decompress_buff(msg)
            logger.debug('decompressed msg: {}'.format(msg))
            if not handler.handshaked:
                msg = decode(msg)
                logger.debug('decoded msg: {}'.format(msg))
                # at this point we can only expect PubKeyReply
                self.do_handshake(handler, msg)
            else:
                msg = handler.box.decrypt(msg)
                request = decode(msg)
                logger.debug('decrypted and decoded msg: {}'.format(request))

                # TODO treat client requests here
                routes.talk_server(handler, request)

        except Exception as err:
            logger.info('ignoring request [bad key] {}'.format(err))
            raise
Example #2
0
    def route(self, handler, msg):
        logger.debug('routing msg: {}'.format(msg))
        try:
            msg = decompress_buff(msg)
            logger.debug('decompressed msg: {}'.format(msg))
            if not handler.handshaked:
                msg = decode(msg)
                logger.debug('decoded msg: {}'.format(msg))
                # at this point we can only expect PubKeyReply
                self.do_handshake(handler, msg)
            else:
                msg = handler.box.decrypt(msg)
                request = decode(msg)
                logger.debug('decrypted and decoded msg: {}'.format(request))

                # TODO treat client requests here
                routes.talk_server(handler, request)

        except Exception as err:
            logger.info('ignoring request [bad key] {}'.format(err))
            raise
Example #3
0
    def do_handshake(self, handler, msg):
        logger.debug('do_handshake()')
        # expect server to send secret key to init_box
        handler.init_box = CryptoBox(self.keyobj)
        handler.init_box.box_with(self.server_pub_key)

        # receive server secretkey
        msg = handler.init_box.decrypt(msg)
        msg = decode(msg)
        handler.box = SecretBox(key=msg.key)
        handler.handshaked = True
        logger.debug('HANDSHAKED2')

        # XXX send first command msg
        logger.debug('sending command msg')
        self.send_command(handler)