def foundPeer(self, endkey, peer):
    print('foundPeer!!! '+str(endkey)+' '+str(peer))
    destkey=decode(peer[0])
    addr=peer[1]

    if keys.isKnown(addr) or self.keys.outgoingInvites.getInviteForHost(False, decodeAddress(addr)):
      self.sendMessage(decodeAddress(addr))
    else:
      trackback.setPutInviteForPeerCallback(addr, self.foundInvite)
      tracker.getInviteForPeer(addr)
    def foundPeer(self, endkey, peer):
        destkey = decode(peer[0])
        addr = peer[1]

        if self.reader.keys.isKnown(
                addr) or self.reader.keys.outgoingInvites.getInviteForHost(
                    False, decodeAddress(addr)):
            self.sendMessage(decodeAddress(addr))
        else:
            self.reader.trackback.setPutInviteForPeerCallback(
                addr, self.foundInvite)
            self.tracker.getInviteForPeer(addr)
    def __init__(self, router, endpoint):
        self.router = router
        self.endpoint = endpoint

        self.keys = router.keys
        self.maildir = 'spool/' + encode(endpoint.public.bytes)
        self.addressBook = YamlMap('config/dustmail-addressbook.yaml')
        self.done = Event()
        self.commandDone = Event()

        self.book = YamlMap('config/dustmail-addressbook.yaml')

        dustmailConfig = YamlMap('config/dustmail-config.yaml')

        try:
            destAddress = dustmailConfig['tracker']
        except:
            entry = self.addInvite()
            destAddress = entry['tracker']
            dustmailConfig['tracker'] = destAddress

        dest, outport, v6 = decodeAddress(destAddress)

        host = getPublicIP(v6)
        inport = dustmailConfig['port']

        invite = self.keys.generateInvite(inport, v6=v6)
コード例 #4
0
ファイル: reader.py プロジェクト: blanu/Dust
  def __init__(self, router, endpoint):
    self.router=router
    self.endpoint=endpoint

    self.keys=router.keys
    self.maildir='spool/'+encode(endpoint.public.bytes)
    self.addressBook=YamlMap('config/dustmail-addressbook.yaml')
    self.done=Event()
    self.commandDone=Event()

    self.book=YamlMap('config/dustmail-addressbook.yaml')

    dustmailConfig=YamlMap('config/dustmail-config.yaml')

    try:
      destAddress=dustmailConfig['tracker']
    except:
      entry=self.addInvite()
      destAddress=entry['tracker']
      dustmailConfig['tracker']=destAddress

    dest, outport, v6=decodeAddress(destAddress)

    print('Registering with tracker...')
    self.tracker=TrackerClient(self.router, addr=(dest, outport))

    host=getPublicIP(v6)
    inport=dustmailConfig['port']
    self.tracker.putPeerForEndpoint(encode(self.endpoint.public.bytes), [encode(self.endpoint.public.bytes), encodeAddress((host,inport))])

    invite=self.keys.generateInvite(inport, v6=v6)
    self.tracker.putInviteForPeer(encodeAddress((host, inport)), encode(invite.message))

    self.trackback=self.router.getService('trackback')
コード例 #5
0
ファイル: reader.py プロジェクト: blanu/Dust
  def foundPeer(self, endkey, peer):
    destkey=decode(peer[0])
    addr=peer[1]

    if self.reader.keys.isKnown(addr) or self.reader.keys.outgoingInvites.getInviteForHost(False, decodeAddress(addr)):
      self.sendMessage(decodeAddress(addr))
    else:
      self.reader.trackback.setPutInviteForPeerCallback(addr, self.foundInvite)
      self.tracker.getInviteForPeer(addr)
コード例 #6
0
ファイル: reader.py プロジェクト: blanu/Dust
  def __init__(self, reader, name, msg):
    self.reader=reader
    self.name=name
    self.msg=msg

    destAddress=self.reader.book[self.name]['tracker']
    dest, outport, v6=decodeAddress(destAddress)
    recipient=self.reader.book[self.name]['pubkey']
    self.endkey=decode(recipient)

    self.reader.trackback.setPutPeerForEndpointCallback(recipient, self.foundPeer)
    self.tracker=TrackerClient(self.reader.router, addr=(dest, outport))
    self.tracker.getPeerForEndpoint(recipient)
    def __init__(self, reader, name, msg):
        self.reader = reader
        self.name = name
        self.msg = msg

        destAddress = self.reader.book[self.name]['tracker']
        dest, outport, v6 = decodeAddress(destAddress)
        recipient = self.reader.book[self.name]['pubkey']
        self.endkey = decode(recipient)

        self.reader.trackback.setPutPeerForEndpointCallback(
            recipient, self.foundPeer)
        self.tracker = TrackerClient(self.reader.router, addr=(dest, outport))
        self.tracker.getPeerForEndpoint(recipient)
    def __init__(self, router, endpoint):
        self.router = router
        self.endpoint = endpoint

        self.keys = router.keys
        self.maildir = 'spool/' + encode(endpoint.public.bytes)
        self.addressBook = YamlMap('config/dustmail-addressbook.yaml')
        self.done = Event()
        self.commandDone = Event()

        self.book = YamlMap('config/dustmail-addressbook.yaml')

        dustmailConfig = YamlMap('config/dustmail-config.yaml')

        try:
            destAddress = dustmailConfig['tracker']
        except:
            entry = self.addInvite()
            destAddress = entry['tracker']
            dustmailConfig['tracker'] = destAddress

        dest, outport, v6 = decodeAddress(destAddress)

        print('Registering with tracker...')
        self.tracker = TrackerClient(self.router, addr=(dest, outport))

        host = getPublicIP(v6)
        inport = dustmailConfig['port']
        self.tracker.putPeerForEndpoint(encode(self.endpoint.public.bytes), [
            encode(self.endpoint.public.bytes),
            encodeAddress((host, inport))
        ])

        invite = self.keys.generateInvite(inport, v6=v6)
        self.tracker.putInviteForPeer(encodeAddress((host, inport)),
                                      encode(invite.message))

        self.trackback = self.router.getService('trackback')
    0, os.path.realpath(os.path.join(os.path.dirname(__file__), "..")))

from dust.crypto.keys import KeyManager

from dust.server.router import PacketRouter
from dust.crypto.keys import KeyManager
from dust.core.util import getPublicIP, encodeAddress, decodeAddress, encode
from dust.util.ymap import YamlMap
from dust.util.safethread import wait

from dust.services.tracker.trackerClient import TrackerClient

inport = int(sys.argv[1])
v6 = sys.argv[2]
passwd = sys.argv[3]
trackerAddr = decodeAddress(sys.argv[4])

host = getPublicIP(v6)

keys = KeyManager()
keys.setInvitePassword(passwd)

try:
    keys.loadKeypair('config/id.yaml')
except:
    print('Generating server keypair...')
    keys.createKeypair()
    keys.saveKeypair('config/id.yaml')

keys.loadKnownHosts('config/knownhosts.yaml')
keys.loadIncomingInvites('config/incoming_invites.ip')
コード例 #10
0
ファイル: invite.py プロジェクト: blanu/Dust
from dust.crypto.curve import Key
from dust.core.util import getPublicIP, encode, decode, encodeAddress, decodeAddress
from dust.server.router import PacketRouter
from dust.util.safethread import waitForEvent
from dust.invite.invite_packet import InviteMessage
from dust.extensions.onion.onion_packet import OnionPacket

from dust.services.tracker.trackerClient import TrackerClient
from dust.services.dustmail.dustmailClient import DustmailClient
from dust.invite.invite_packet import InviteMessage
from dust.services.dustmail.dustmail_packet import DustmailInvitePacket

passwd=sys.argv[1]
inport=int(sys.argv[2])
destAddress=sys.argv[3]
dest, outport, v6=decodeAddress(destAddress)
ipasswd=sys.argv[4]

host=getPublicIP(v6)
print('Host: '+str(host))

keys=KeyManager()
keys.setInvitePassword(passwd)
keys.loadKnownHosts('config/knownhosts.yaml')
keys.loadKeypair('config/id.yaml')
keys.loadIncomingInvites('config/incoming_invites.ip')
keys.loadOutgoingInvites('config/outgoing_invites.ip')
endpoint=keys.loadEndpoint(os.path.expanduser('~/.dust/endpoint.yaml'))

keypair=keys.getKeypair()
pubkey=keypair.public
コード例 #11
0
ファイル: chat-send.py プロジェクト: blanu/Dust
import sys
import time
from dust.crypto.keys import KeyManager
from dust.extensions.multiplex.multiplex_socket import *
from dust.core.util import getPublicIP, decodeAddress

passwd=sys.argv[1]
inport=int(sys.argv[2])
addr=sys.argv[3]

dest, outport, ipv=decodeAddress(addr)

host=getPublicIP(ipv)

keys=KeyManager()
keys.setInvitePassword(passwd)
keys.loadKnownHosts('config/knownhosts.yaml')
keys.loadKeypair('config/id.yaml')
keys.loadIncomingInvites('config/incoming_invites.ip')
keys.loadOutgoingInvites('config/outgoing_invites.ip')

msock=multiplex_socket(keys)
msock.bind((host, inport))
msock.connect((dest, outport))
msock.connectToService('chat')

msg=''
while msg!='.':
  print('>> ', end='')
  msg=sys.stdin.readline().strip()
  msock.msend(msg.encode('ascii'))
 def foundInvite(self, addr, invite):
     self.sendMessage(decodeAddress(addr))
コード例 #13
0
import sys
import time
from dust.crypto.keys import KeyManager
from dust.extensions.multiplex.multiplex_socket import *
from dust.core.util import getPublicIP, decodeAddress

passwd = sys.argv[1]
inport = int(sys.argv[2])
addr = sys.argv[3]

dest, outport, ipv = decodeAddress(addr)

host = getPublicIP(ipv)

keys = KeyManager()
keys.setInvitePassword(passwd)
keys.loadKnownHosts('config/knownhosts.yaml')
keys.loadKeypair('config/id.yaml')
keys.loadIncomingInvites('config/incoming_invites.ip')
keys.loadOutgoingInvites('config/outgoing_invites.ip')

msock = multiplex_socket(keys)
msock.bind((host, inport))
msock.connect((dest, outport))
msock.connectToService('chat')

msg = ''
while msg != '.':
    print('>> ', end='')
    msg = sys.stdin.readline().strip()
    msock.msend(msg.encode('ascii'))
コード例 #14
0
ファイル: invite.py プロジェクト: optionalg/Dust
from dust.crypto.curve import Key
from dust.core.util import getPublicIP, encode, decode, encodeAddress, decodeAddress
from dust.server.router import PacketRouter
from dust.util.safethread import waitForEvent
from dust.invite.invite_packet import InviteMessage
from dust.extensions.onion.onion_packet import OnionPacket

from dust.services.tracker.trackerClient import TrackerClient
from dust.services.dustmail.dustmailClient import DustmailClient
from dust.invite.invite_packet import InviteMessage
from dust.services.dustmail.dustmail_packet import DustmailInvitePacket

passwd = sys.argv[1]
inport = int(sys.argv[2])
destAddress = sys.argv[3]
dest, outport, v6 = decodeAddress(destAddress)
ipasswd = sys.argv[4]

host = getPublicIP(v6)
print('Host: ' + str(host))

keys = KeyManager()
keys.setInvitePassword(passwd)
keys.loadKnownHosts('config/knownhosts.yaml')
keys.loadKeypair('config/id.yaml')
keys.loadIncomingInvites('config/incoming_invites.ip')
keys.loadOutgoingInvites('config/outgoing_invites.ip')
endpoint = keys.loadEndpoint(os.path.expanduser('~/.dust/endpoint.yaml'))

keypair = keys.getKeypair()
pubkey = keypair.public
コード例 #15
0
ファイル: serve.py プロジェクト: blanu/Dust
sys.path.insert(0, os.path.realpath(os.path.join(os.path.dirname(__file__), "..")))

from dust.crypto.keys import KeyManager

from dust.server.router import PacketRouter
from dust.crypto.keys import KeyManager
from dust.core.util import getPublicIP, encodeAddress, decodeAddress, encode
from dust.util.ymap import YamlMap
from dust.util.safethread import wait

from dust.services.tracker.trackerClient import TrackerClient

inport=int(sys.argv[1])
v6=sys.argv[2]
passwd=sys.argv[3]
trackerAddr=decodeAddress(sys.argv[4])

host=getPublicIP(v6)

keys=KeyManager()
keys.setInvitePassword(passwd)

try:
  keys.loadKeypair('config/id.yaml')
except:
  print('Generating server keypair...')
  keys.createKeypair()
  keys.saveKeypair('config/id.yaml')

keys.loadKnownHosts('config/knownhosts.yaml')
keys.loadIncomingInvites('config/incoming_invites.ip')
コード例 #16
0
ファイル: reader.py プロジェクト: blanu/Dust
 def foundInvite(self, addr, invite):
   self.sendMessage(decodeAddress(addr))