def sendMessage(self, addr): print('sending message to '+str(addr)) data=self.msg.encode('ascii') onion=OnionPacket() onion.createOnionPacket(self.keypair, self.endkey, data, self.keys.entropy) dustmail=DustmailClient(self.router, addr) dustmail.sendMessage(encode(onion.packet))
def sendMessage(self, addr): data = self.msg.encode('ascii') onion = OnionPacket() onion.createOnionPacket(self.reader.keys.getEndpoint(), self.endkey, data, self.reader.keys.entropy) dustmail = DustmailClient(self.reader.router, addr) dustmail.sendMessage(encode(onion.packet)) self.reader.commandDone.set()
def decodePacket(self, endpoint, data): packet = OnionPacket() packet.decodeOnionPacket(self.keypair, data) if packet.checkMac() and packet.checkTimestamp(): return packet else: print('Integrity failed', packet.checkMac(), packet.checkTimestamp()) print(packet) return None
def displayMessage(self, fname): f = open(fname, 'r') msg = f.read() f.close() data = decode(msg) onion = OnionPacket() #print(onion) try: onion.decodeOnionPacket(self.endpoint, data) except: traceback.print_exc() #print(onion) print(onion.data.decode('ascii'))
def sendMessage(self, message): print('sendMessage ' + str(message)) onion = OnionPacket() onion.decodeOnionPacket(self.router.keys.getKeypair(), decode(message)) frm = encode(onion.sender) to = encode(onion.receiver) print('frm: ' + str(frm)) print('to: ' + str(to)) if not os.path.exists(self.maildir + '/' + to): os.mkdir(self.maildir + '/' + to) filename = None while not filename or os.path.exists(filename): filename = self.makeName(frm, to) f = open(filename, 'w') f.write(message) f.close() notifyPrefs = YamlMap('config/dustmail-notify.yaml') try: mailAddr = notifyPrefs[to] addressBook = YamlMap('config/dustmail-addressbook.yaml') frmName = self.nameForPubkey(addressBook, frm) if not frmName: frmName = frm notifier = Notifier('*****@*****.**') notifier.notify( mailAddr, 'New DustMail Message', "You have a DustMail message from " + frmName + ".") except KeyError: print('No notification set')
def encodePacket(self, endpoint, data): packet = OnionPacket() packet.createOnionPacket(self.keypair, endpoint, data, self.keys.entropy) return packet