Пример #1
0
def dump_directories_cont(dir1):
    check_dir(dir1)
    list1 = sync.create_list_of_files(dir1)
    for i in list1:
        print(dir1 + i[0] + ':')
        pcap.dump(dir1 + i[0])
        print("-------------------------------")
Пример #2
0
def _appendIt(fname, argument, message):

    import os
    import crypto
    import pcap

    pcapf = (fname + '.pcap')
    keyf = (fname + '.key')

    def load_keyfile(fn):
        with open(fn, 'r') as f:
            key = eval(f.read())
        if key['type'] == 'ed25519':
            fid = bytes.fromhex(key['public'])
            signer = crypto.ED25519(bytes.fromhex(key['private']))
        elif key['type'] == 'hmac_sha256':
            fid = bytes.fromhex(key['feed_id'])
            signer = crypto.HMAC256(bytes.fromhex(key['private']))
        return fid, signer

    if argument == 'dump':
        pcap.dump(pcapf)

    if argument == 'create' or argument == 'append':
        fid, signer = load_keyfile(keyf)

        if argument == 'create':
            try:
                os.remove(pcapf)
            except:
                pass
            feed = FEED(pcapf, fid, signer, True)
        else:
            feed = FEED(pcapf, fid, signer)

        if message != '':
            contend = ('[\"'+str(message)+'\"]')
            feed.write(contend)
            print("New entry has been saved to " + fname + ".pcap: \"" + str(message) + "\"")
        else:
            print("No message was passed, file " + fname + ".pcap created")
Пример #3
0
 def run(self):
     inputs = [self.socket]
     outputs = []
     with self.mesh_lock:
         for n in self.mesh.nodes():
             n.application.start()
     if self.dump:
         pcap.init()
     while inputs:
         readable, writable, exceptional = select.select(
             inputs, outputs, inputs)
         for s in readable:
             if s is self.socket:
                 data, sender = s.recvfrom(180)
                 if data:
                     # TODO: set LQI according to edge weight and check channel
                     if self.dump:
                         time, buf = zep.parse(data)
                         pcap.dump(time, buf)
                     with self.mesh_lock:
                         new = node.Node(*sender[:2])
                         self.__add_to_mesh_if_new(new)
                         for neighbor in self.mesh.neighbors(new):
                             s.sendto(data, neighbor.to_sockaddr())
Пример #4
0
 def __init__(self, p=None, fname=None, open=True):
     if p is not None:
         # XXX dirty hack
         # the next line has a dirty hack and looks like some design problems
         # feel free to propose better solution or send a patch
         #
         # anyway, Joao Medeiros proposed to put a quote here:
         # "In Python, there isn't much of an idea of "Private"
         # Python's philosophy is "We're all consenting adults here."
         # Thus, there isn't much of an idea of "friends" either.
         # In Java terminology, on a technical level everybody is already 
         # friends with everybody else already." by Jeremy Bowers
         self._pcap = p._pcap
     else:
         self._pcap = None
     self.fname = fname
     self._dump = pcap.dump(self._pcap, self.fname, open)
Пример #5
0
    parser = argparse.ArgumentParser(description='BACnet feed tool')

    parser.add_argument('--keyfile1')
    parser.add_argument('pcapfile1', metavar='PCAPFILE1', default=None)

    parser.add_argument('--keyfile2')
    parser.add_argument('pcapfile2', metavar='PCAPFILE2', default=None)

    parser.add_argument('CMD', choices=['sync', 'dump', 'get', 'seq', 'check', 'all'])

    args = parser.parse_args()

    # Dump two pcap files
    if args.CMD == 'dump':
        if args.pcapfile1 is not None:
            pcap.dump(args.pcapfile1)
        print('-----------------------------')
        print('-----------------------------')
        if args.pcapfile2 is not None:
            pcap.dump(args.pcapfile2)

    elif args.CMD == 'get':
        if args.pcapfile1 is not None:
            pcap.get_only_context(args.pcapfile1)
        print('-----------------------------')
        print('-----------------------------')
        if args.pcapfile2 is not None:
            pcap.get_only_context(args.pcapfile2)

    elif args.CMD == 'seq':
        if args.pcapfile1 is not None:
Пример #6
0
            fid = bytes.fromhex(key['public'])
            signer = crypto.ED25519(bytes.fromhex(key['private']))
        elif key['type'] == 'hmac_sha256':
            fid = bytes.fromhex(key['feed_id'])
            signer = crypto.HMAC256(bytes.fromhex(key['private']))
        return fid, signer

    parser = argparse.ArgumentParser(description='BACnet feed tool')
    parser.add_argument('--keyfile')
    parser.add_argument('pcapfile', metavar='PCAPFILE')
    parser.add_argument('CMD', choices=['create','dump','append','check'])
    
    args = parser.parse_args()

    if args.CMD == 'dump':
        pcap.dump(args.pcapfile)

    elif args.CMD in ['create','append']:
        if args.keyfile == None:
            print("missing keyfile parameter")
            sys.exit()
        fid, signer = load_keyfile(args.keyfile)

        if args.CMD == 'create':
            try:
                os.remove(args.pcapfile)
            except:
                pass
            feed = FEED(args.pcapfile, fid, signer, True)
        else:
            feed = FEED(args.pcapfile, fid, signer)