from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization, hashes
def generate_key_pair():
# RSA秘密鍵の生成
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048,
)
# 秘密鍵をPEM形式にエンコード
private_key_pem = private_key.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.PKCS8,
encryption_algorithm=serialization.NoEncryption(),
).decode("utf-8")
# 公開鍵をPEM形式にエンコード
public_key_pem = private_key.public_key().public_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo,
).decode("utf-8")
return private_key_pem, public_key_pem
PRIVATE_KEY, PUBLIC_KEY = generate_key_pair()