def do_handshake(self): self.logger.info('Do handshake') self.channel.send_name(self.node_name) _, status = self.channel.recv_status() if status == 'ok': self.logger.info('Status is "ok"') else: self.logger.warning( 'Status is "%s" does not know ' 'what to do with it', status) return challenge = self.channel.recv_challenge() out_challenge = challenge[3] challenge = gen_challenge() self.channel.send_challenge_reply(self.cookie, challenge, out_challenge) challenge_ack = self.channel.recv_challenge_ack() if challenge_ack[1] == gen_digest(challenge, self.cookie): self.logger.info('Connection is up') self._state = 'connected' if self.connected_event is not None: self.connected_event.set() else: self.logger.warning('Cannot set up connection, ' 'because of digest missmatch.')
def do_handshake(self): self.logger.info('Do handshake') self.channel.send_name(self.node_name) _, status = self.channel.recv_status() if status == 'ok': self.logger.info('Status is "ok"') else: self.logger.warning('Status is "%s" does not know ' 'what to do with it', status) return challenge = self.channel.recv_challenge() out_challenge = challenge[3] challenge = gen_challenge() self.channel.send_challenge_reply(self.cookie, challenge, out_challenge) challenge_ack = self.channel.recv_challenge_ack() if challenge_ack[1] == gen_digest(challenge, self.cookie): self.logger.info('Connection is up') self._state = 'connected' if self.connected_event is not None: self.connected_event.set() else: self.logger.warning('Cannot set up connection, ' 'because of digest missmatch.')
def send_challenge_reply(self, cookie, challenge, out_challenge): self.logger.info('Sending challenge reply') digest = gen_digest(out_challenge, cookie) self._send(encode_challenge_reply(challenge, digest)) self.logger.info('Challenge reply sended')