如何使用python M2Crypto提取RSA公共指数

如何使用python M2Crypto提取RSA公共指数,python,ssl,x509certificate,m2crypto,Python,Ssl,X509certificate,M2crypto,我有以下代码提取主机叶证书和证书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 as时:

我有以下代码提取主机叶证书和证书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 as时:

key = RSA.importKey(publickey.as_der())
我得到了这个错误:

('file()参数1必须是不带空字节的编码字符串,而不是 str',)

我想避免将证书保存在本地系统中。我只是想提取一些信息,比如模数和指数。
我从错误中了解到,
importKey
函数将aregment作为DER文件而不是字符串。你能帮我找到一个解决方法吗?

这段代码应该给出模数和公共指数:

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

我不想要模数,因为我已经从
mod=pk.get_module()
中得到了它。我想要的是通常命名为
e
的公共指数。我也无法提取
n
。你确定我把
c
发送到
importKey
?我一开始误读了这个问题,并假设了一些事情。请参阅代码的编辑版本。检查编辑2 plz。thanx.我不确定
file()
错误是由什么引起的。我用于测试的代码是,而且似乎在我的系统上正常工作。