Exemplo n.º 1
0
 def test_message(self):
   send_message = b"hello there to you my good friends how is it that you are doing today I really would like to know oh yes I would"
   signed_cipher_text = Node.construct_message(master_encryptor, master_def.name, send_message)
   # self.log_bytes_stats(signed_cipher_text)
   response = send_data(self.addr, signed_cipher_text)
   message, signature = master_encryptor.decrypt(response)
   sender, status, body = message.split(b"\n", 2)
   self.assertEqual(sender, self.node.name.encode())
   self.assertEqual(status, b"ok")
   self.assertEqual(body, send_message.upper())
   self.assertTrue(master_encryptor.verify_message(message, signature))
Exemplo n.º 2
0
    def send(self, body, *, encrypt=True):
        if encrypt:
            message = Node.construct_message(self.encryptor, self.name, body)
        else:
            message = body

        response = send_data(self.server_address, message)
        message_status, data = Node.deconstruct_message(self.encryptor, response)

        if message_status == MessageState.ok:
            sender, body, signature = data
            return (True, body)
        elif message_status == MessageState.invalid_data:
            return (False, data)
        else:
            message, signature = data
            return (False, message)
Exemplo n.º 3
0
    def connect(self):

        server_name, server_public_key = send_data(self.server_address, "identify").decode().split("\n", 1)
        self.encryptor = Encryptor(self.private_key, server_public_key)
        return self.register()
Exemplo n.º 4
0
 def ping(self):
     return send_data(self.server_address, "ping") == b"pong"
Exemplo n.º 5
0
 def test_special_handling(self):
   self.node.hooks = HooksOverride()
   response = send_data(self.addr, b"register")
   self.assertEqual(response, b"Registered!")
Exemplo n.º 6
0
 def test_identify(self):
   response = send_data(self.addr, b"identify")
   expected_pk = self.node.name.encode() + b"\n" + node_pk.publickey().exportKey("PEM")
   self.assertEqual(response, expected_pk)
Exemplo n.º 7
0
 def test_ping(self):
   response = send_data(self.addr, b"ping")
   self.assertEqual(response, b"pong")