Files
crypto-hw3/part2/bob.py
T
2025-09-23 09:53:12 -05:00

39 lines
937 B
Python

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()
cipher = PKCS1_OAEP.new(private_key)
# Decrypt
message = cipher.decrypt(ciphertext)
print("Decrypted message:", message.decode())