Last active
April 22, 2022 01:29
-
-
Save lkdocs/6519378 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def generate_RSA(bits=2048): | |
''' | |
Generate an RSA keypair with an exponent of 65537 in PEM format | |
param: bits The key length in bits | |
Return private key and public key | |
''' | |
from Crypto.PublicKey import RSA | |
new_key = RSA.generate(bits, e=65537) | |
public_key = new_key.publickey().exportKey("PEM") | |
private_key = new_key.exportKey("PEM") | |
return private_key, public_key |
Gives me error:
new_key = RSA.generate(bits, e=65537)
TypeError: generate_c() got an unexpected keyword argument 'e'
e should be random methinks =P
@miigotu "youthinks" wrong. e should be chosen so that e and λ(n) are coprime. It is not chosen at random, and since it is usually small for computation reasons, and included in the public key, it can always be known by an attacker anyway.
from Crypto.PublicKey import RSA
code = 'nooneknows'
key = RSA.generate(2048)
privatekey = key.exportKey(passphrase=code, pkcs=8)
publickey = key.publickey().exportKey()
Nice But How Can I Write The Private Key I Tried This:
f = open('PublicKey.pem','w')
f.write(publick_key)
f.close()
BUT IT DOESN'T WORK WITH THE PRIVATE KEY, JUST RETURNS 0B
@WarAtLord try publick_key.exportKey("PEM")
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Pycrypto is unmaintained and has known vulnerabilities. Use
pycryptodome
, it is a drop-in replacement.