2017-01-15 6 views
0

RSA https://www.dlitz.net/software/pycrypto/api/current/Crypto.PublicKey.RSA-module.htmlためPyCryptoのこのドキュメントを使用して.pemファイルからRSAキーの読み取りが、私たちが書いて、.PEMにしてからキーを読み取るようになっているか、この言及:とValueError ImportKey

from Crypto.PublicKey import RSA 

key = RSA.generate(2048) 
f = open('mykey.pem','w') 
f.write(RSA.exportKey('PEM')) 
f.close() 
... 
f = open('mykey.pem','r') 
key = RSA.importKey(f.read()) 

を、これはどのようにあります私はそれをやった。

random_generator = Random.new().read 
rsakey = RSA.generate(1024, random_generator) 
f = open(email + '.pem', 'w') 
cipher = PKCS1_OAEP.new(rsakey.publickey()) 
f.write(str(rsakey.exportKey("PEM"))) 
f.write(str(rsakey.publickey().exportKey("PEM"))) 
... 
f = open(receiver + '.pem', 'r') 
key = RSA.importKey(f.read()) 
pubkey = key.publickey() 
f.close() 

が、それはこのエラーを返します: "WB" モードでキーを書い

File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Crypto/PublicKey/RSA.py", line 682, in importKey 
    raise ValueError("RSA key format is not supported") 
ValueError: RSA key format is not supported 

答えて

1

random_generator = Random.new().read 
rsakey = RSA.generate(1024, random_generator) 
f = open(email + '.pem', 'wb') 
cipher = PKCS1_OAEP.new(rsakey.publickey()) 
f.write(str(rsakey.exportKey("PEM"))) 
f.write(str(rsakey.publickey().exportKey("PEM"))) 
... 
f = open(receiver + '.pem', 'r') 
key = RSA.importKey(f.read()) 
pubkey = key.publickey() 
f.close() 
問題を解決しました