예제 #1
0
import socket

BUFFER_SIZE = 1024

if __name__ == '__main__':
    my_addr = get_local_address()

    (a3, idA) = WLSK_Init.init()(base.get_hostname())
    print('Running on \x1b[1m{}\x1b[0m as an {}\nMy identity: {}\n'.format(my_addr, INITIATOR, idA))
    resp_addr = input('Enter {} address: '.format(RESPONDER))

    print('Connecting to the {}...'.format(RESPONDER))
    delay()
    with socket.create_connection((resp_addr, RESP_PORT)) as rsock:
        print('Sending my identity to the {}...'.format(RESPONDER))
        rsock.send(idA)

        n = rsock.recv(BUFFER_SIZE)
        delay()
        print('Received nonce')
        debug('n = {}'.format(n))

        (_, iv1, e, m) = a3(n)
        print('Sending encrypted data...')
        debug('e = {}\nm = {}'.format(e, m))
        delay()
        rsock.send(base.compose([iv1, e, m]))

    print('\x1b[32mSession finished\x1b[0m')

예제 #2
0
            debug('n = {}'.format(n))
            conn.send(n)

            data = conn.recv(BUFFER_SIZE)
            conn.close()

            (iv1, e, m) = base.decompose(data)
            print('Received secrets from {}'.format(INITIATOR))
            debug('e = {}\nm = {}'.format(e, m))

            (b6, idA_, idB_, iv2, e_, m_) = b4(iv1, e, m)

            print('Connecting to the {}...'.format(SERVER))
            delay()
            with socket.create_connection((server_addr, SERVER_PORT)) as ssock:
                print('Sending encrypted data...')
                debug("idA' = {}\nidB' = {}\ne'   = {}\nm'   = {}".format(idA_, idB_, iv2, e_, m_))
                delay()
                ssock.send(base.compose([idA_, idB_, iv2, e_, m_]))

                data = ssock.recv(BUFFER_SIZE)

            (iv3, e__, m__) = base.decompose(data)
            delay()
            print('Received secrets from {}'.format(SERVER))
            debug("e'' = {}\nm'' = {}".format(e__, m__))

            b6(iv3, e__, m__)
            print('\x1b[32mSession finished\x1b[0m')

예제 #3
0
    server = WLSK_S.init()

    with socket.socket() as sock:
        sock.bind((my_addr, SERVER_PORT))
        sock.listen(1)

        print('Listening on \x1b[1m{}\x1b[0m:{} as a {}'.format(my_addr, SERVER_PORT, SERVER))

        while True:
            print('\nAwaiting connection...')
            conn, addr = sock.accept()
            print('Received connection from {0[0]}:{0[1]}'.format(addr))

            data = conn.recv(BUFFER_SIZE)
            (idA_, idB_, iv2, e_, m_) = base.decompose(data)
            delay()
            print('Received secrets from {}'.format(RESPONDER))
            debug("idA' = {}\nidB' = {}\ne'   = {}\nm'   = {}".format(idA_, idB_, iv2, e_, m_))

            (_, iv3, e__, m__) = server(idA_, idB_, iv2, e_, m_)
            delay()
            print('Sending secrets...')
            debug("e'' = {}\nm'' = {}".format(e__, m__))
            conn.send(base.compose([iv3, e__, m__]))
            conn.close()

            delay()
            print('\x1b[32mSession finished\x1b[0m')

예제 #4
0
def option(exception):
    def wrapper(predicate):
        def ret(*args, **kwargs):
            if predicate(*args, **kwargs):
                return Right(*args, **kwargs)
            else:
                return Left(exception(*args, **kwargs))

        return ret

    return wrapper


exists = option(FileNotFoundError)(path.exists)
isfile = option(IsAFileError)(path.isfile)
isdir = option(IsADirectoryError)(path.isdir)

op, ar = parser.parse_args(fakeArgs)
for key, value in op.__dict__.items():
    if isinstance(value, Either):
        continue
    else:
        setattr(op, key, Right(value))
# filter = compose(list, filter)
out = op.output
files = compose(list, partial(filter, lambda s: s != ''), partial(str.split, sep=';'))

files = out.map(files)

files.map()