PyCrypto 2.3を使用していますが、生成したキーをファイルに保存して、クライアントとサーバーに配布したいと思います。キーを正しく印刷する方法が見つからないようです。また、インターネットで例を見つけることもできません。
_ def resetKeys(self):
keys = RSA.generate(1024)
privHandle = open(self.privateKeyFile, 'wb')
privHandle.write(keys.privatekey())
privHandle.close()
pubHandle = open(self.publicKeyFile, 'wb')
pubHandle.write(keys.publickey())
pubHandle.close()
_
このコードは多くの理由で機能しません。まず、keys.publickey()
は印刷できないようで、次のように返されます。
_ <_RSAobj @0x10f810d0 n(1024),e>
_
次に、keys
にはprivatekey
という名前の関数がありません。
誰かが以前にそれをしたことがありますか?
秘密鍵の場合はkeys.exportKey()
、公開鍵の場合はkeys.publickey().exportKey()
。 format
引数を使用して出力形式を変更できます。 このサイトのドキュメント を参照してください。
次のコードは、RSAキーペアを作成し、それらをPEMファイルに保存し、印刷します。
元のクレジット:この投稿のwRARと[ pyOpenSSLがpemファイルを作成)からのAJ poultier
from Crypto.PublicKey import RSA
private_key = RSA.generate(1024)
public_key = private_key.publickey()
print(private_key.exportKey(format='PEM'))
print(public_key.exportKey(format='PEM'))
with open ("private.pem", "w") as prv_file:
print("{}".format(private_key.exportKey()), file=prv_file)
with open ("public.pem", "w") as pub_file:
print("{}".format(public_key.exportKey()), file=pub_file)