cryptoSL2024/alice.py

31 lines
897 B
Python

import argparse
import socket
import contextlib
from ot import alice
from net import send, send_point, recv, recv_point
def main():
p = argparse.ArgumentParser()
p.add_argument('msg0', help='First file which Bob can receive')
p.add_argument('msg1', help='Second file which Bob can receive')
p.add_argument('-p', '--port', type=int, default=8080)
args = p.parse_args()
with open(args.msg0, 'rb') as f0, open(args.msg1, 'rb') as f1:
m0 = f0.read()
m1 = f1.read()
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(('0.0.0.0', args.port))
s.listen(1)
bob, address = s.accept()
ip, _ = address
a = alice(m0, m1)
send_point(bob, a.send(None))
send(bob, a.send(recv_point(bob)))
if __name__ == "__main__":
main()