rsa lesson added
This commit is contained in:
37
training/h4tum/Intro_to_RSA/demo/PEM/gen.py
Normal file
37
training/h4tum/Intro_to_RSA/demo/PEM/gen.py
Normal file
@@ -0,0 +1,37 @@
|
||||
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())
|
||||
Reference in New Issue
Block a user