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