def buildpacket(self, receiver): p = Packet() p.sender = self.uuid p.receiver = receiver p.rsa = self.__rsacrypt p.pubkey = self.serverkey if receiver != self.serveruuid: p.aes = self.__aesmapping[receiver] return p
def recv(self, encrypt=True, server=False): d = self.__client.recv(512) packet = Packet() if encrypt: packet.rsa = self.__rsacrypt msg = packet.decrypt(d[256:]) self.__rsacrypt.verify(msg, d[:256], self.serverkey) packet.from_bytes(msg) if packet.sender != self.serveruuid: packet.aes = self.__aesmapping[packet.sender] packet.decrypt_payload() else: packet.from_bytes(d) if packet.command == Command.SHAREPUB: d = self.__client.recv(21) packet.payload = packet.payload + d return packet