Пример #1
0
def main():
    print('This is Alice, p = {}; g = {}'.format(p, g))
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as alice:
        alice.bind(alice_add)
        alice.listen()

        conn, _ = alice.accept()

        # send Name
        conn.send(b'Hey, Alice here!')
        # receive name
        print(conn.recv(1024).decode())

        # choose private key
        a = choose_private_key()
        print('private key:', a)

        # compute public key
        A = compute_public_key(a)
        print('public key:', A)

        # send A
        conn.send(str(A).encode())

        # Receive B
        B = int(conn.recv(1024).decode())
        print('Received from Bob:', B)

        # compute shared secret key
        K = compute_shared_secret_key(a, B)

    print(K)
Пример #2
0
def main():
    print('This is Bob, p = {}; g = {}'.format(p, g))
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as bob:
        bob.connect(alice_add)        

        # revc name
        print(bob.recv(1024).decode())
        # send Name
        bob.send(b'Hey, Bob here!')

        # choose private key
        b = choose_private_key()
        print('private key:', b)

        # compute public key
        B = compute_public_key(b)
        print('public key:', B)
        
        # send A
        bob.send(str(B).encode())

        # Receive B
        A = int(bob.recv(1024).decode())
        print('Received from Alice:', A)

        # compute shared secret key
        K = compute_shared_secret_key(b, A)

    print(K)