我有以下代码提取主机叶证书和证书RSA公钥:
c = ssock.getpeercert(True)
x509 = M2Crypto.X509.load_cert_der_string(c)
publickey=x509.get_pubkey()
m=publickey.get_modulus()
我试图找到提取RSA密钥的公共指数的函数,但我找不到任何函数。你能帮我弄清楚如何提取RSA公钥的公共指数吗?
编辑:如果M2Crypt不可能的话。请指出任何其他方式。编辑2:当我尝试将证书加载为DER作为:
key = RSA.importKey(publickey.as_der())
我收到了这个错误:
(' file()参数1必须是没有NULL字节的编码字符串,不是 STR',)
我想避免在本地系统中保存证书。我只想提取模数和指数等信息。
我从错误中理解的是importKey
函数将参数作为DER文件而不是字符串。你能帮我找一个解决方法吗?
答案 0 :(得分:1)
此代码应该为您提供模数和公共指数:
import Crypto.PublicKey.RSA
c = ssock.getpeercert(True)
x509 = M2Crypto.X509.load_cert_der_string(c)
publickey = x509.get_pubkey()
key = Crypto.PublicKey.RSA.importKey(publickey.as_der())
modulus = key.n
public_exponent = key.e