from cryptography.hazmat.primitives.asymmetric import rsa from cryptography.hazmat.primitives import serialization from Crypto.Util.number import getPrime e = 65537 p = getPrime(512) q = getPrime(512) n = p * q phi = (p - 1) * (q - 1) d = pow(e, -1, phi) dp = d % (p - 1) dq = d % (q - 1) q_inv = pow(q, -1, p) private_numbers = rsa.RSAPrivateNumbers( p=p, q=q, d=d, dmp1=dp, dmq1=dq, iqmp=q_inv, public_numbers=rsa.RSAPublicNumbers(e=e, n=n) ) key = private_numbers.private_key() print(key.private_bytes( encoding=serialization.Encoding.PEM, format=serialization.PrivateFormat.PKCS8, encryption_algorithm=serialization.NoEncryption() ).decode()) print(key.public_key().public_bytes( serialization.Encoding.PEM, serialization.PublicFormat.SubjectPublicKeyInfo ).decode())