import socket, ssl def secure_send_file(file_path, server_ip, server_port=12345): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) secure_sock = context.wrap_socket(sock, server_hostname=server_ip) secure_sock.connect((server_ip, server_port)) with open(file_path, `rb`) as file: secure_sock.sendall(file.read()) print(`File sent successfully.`) secure_sock.close() def secure_receive_file(file_path, server_port=12345): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) context = ssl.create_default_context(ssl.Purpose.SERVER_AUTH) secure_sock = context.wrap_socket(sock, server_side=True, certfile="cert.pem", keyfile="key.pem") secure_sock.bind((`0.0.0.0`, server_port)) secure_sock.listen(5) client_sock, addr = secure_sock.accept() print(f"Accepted connection from {addr}") with open(file_path, `wb`) as file: while True: data = client_sock.recv(1024) if not data: break file.write(data) print(`File received successfully.`) client_sock.close() secure_sock.close() Example usage secure_send_file(`send.txt`, `192.169.0.1`) secure_receive_file(`received.txt`)
©