Files
netsec/week06/hard/generate_sig_keys.py
2024-12-10 00:51:04 +09:00

26 lines
780 B
Python

from Crypto.PublicKey import ECC
def generate_keys() -> tuple[str, str]:
key = ECC.generate(curve='ed25519')
private_key = key.export_key(format='PEM')
public_key = key.public_key().export_key(format='PEM')
return private_key, public_key
def write_keys(name: str, private_key: str, public_key: str):
with open(f'{name}_private.pem', 'wb') as f:
f.write(private_key.encode())
with open(f'{name}_public.pem', 'wb') as f:
f.write(public_key.encode())
if __name__ == '__main__':
privA, pubA = generate_keys()
privB, pubB = generate_keys()
privC, pubC = generate_keys()
write_keys('alice', privA, pubA)
write_keys('bob', privB, pubB)
write_keys('mitm', privC, pubC)
print('Keys generated and written to files')