我想生成一个私有公钥对,并分别将它们放入 private.key 和 public.key 文件中。 我有以下代码。
from OpenSSL import crypto, SSL
def gen_rsa_key_pair():
k = crypto.PKey()
k.generate_key(crypto.TYPE_RSA, 1024)
open("Priv.key", "wt").write(crypto.dump_privatekey(crypto.FILETYPE_PEM, k))
crypto.dump_publickey()
不可用。
如何将公钥转储到文件?
答案 0 :(得分:0)
用于打印公共RSA密钥的OpenSSL函数似乎不会被Python OpenSSL包装器导出。通过访问crypto
模块的内部,您仍然可以自己执行此操作(假设您已在本地安装此软件包),如此代码段所示:
>>> bio = crypto._new_mem_buf()
>>> rsa = crypto._lib.EVP_PKEY_get1_RSA(k._pkey)
>>> crypto._lib.PEM_write_bio_RSAPublicKey(bio, rsa)
1
>>> s = crypto._bio_to_string(bio)
>>> print(s)
-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBANF1gYh10F8HTQdM6+bkwAwJ0Md6bMciKbP3qS6KTki3v3m+cM17Szqq
Mp4xxWbvnS2oeotYfn8eaZg0QUTOVDd1F7tuOxVEdvQ9ZEp1aeOCRU3b9QZSmVfg
wJrqDG3f149mNdexI12plwaxyt6odonv6+fEQJrbhrV/nIA8N/EFAgMBAAE=
-----END RSA PUBLIC KEY-----
这仅用于说明目的。应通过新方法crypto
等将适当的解决方案添加到dump_publickey()
模块本身。