问题描述
如何从crypto.load_certificate获得公共密钥加密? (例如“ RSA(2048位)”。
我可以很容易地获得公共密钥,如下所示:
from OpenSSL import crypto
cert = crypto.load_certificate(crypto.FILETYPE_PEM,open("certificate.crt")).read()
pubKey = cert.get_pubkey()
但是我在有关加密的文档中找不到任何内容。有什么想法吗?
解决方法
实际上很简单:
from OpenSSL import crypto
cert = crypto.load_certificate(crypto.FILETYPE_PEM,open("certificate.crt")).read()
pubKey = cert.get_pubkey()
keySize = pubKey.bits()
if pubKey.type() == crypto.TYPE_RSA:
keyType = 'RSA'
elif pubKey.type() == crypto.TYPE_DSA:
keyType = 'DSA'
print(keyType + "-" + str(keySize))