from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP import os # Check if keys already exist if not os.path.exists("bob_private.pem"): key = RSA.generate(2048) private_key = key.export_key() public_key = key.publickey().export_key() # Save the private key with open("bob_private.pem", "wb") as f: f.write(private_key) # Save the public key with open("bob_public.pem", "wb") as f: f.write(public_key) print("Generated and saved Bob's public and private keys.") if not os.path.exists('ctext'): print('No ctext found. Run alice.py') exit(0) # Read the private key with open("bob_private.pem", "rb") as f: private_key = RSA.import_key(f.read()) # Read the ciphertext with open("ctext", "rb") as f: ciphertext = f.read() print(f'Ciphertext: {ciphertext}') cipher = PKCS1_OAEP.new(private_key) # Decrypt message = cipher.decrypt(ciphertext) print("Decrypted message:", message.decode())