如何使用pyOpenSSL公钥验证签名邮件?

时间:2017-05-15 20:09:43

标签: python cryptography rsa pyopenssl dsa

我尝试使用pyOpenSSL签名数据,我创建密钥对(私有和公共)和证书。

我是这项技术的初学者,我使用的是OpenSSl,但如果您有建议在python中使用私钥和公钥生成签名消息,我就可以了! 我想在我的测试中使用RSA和DSA算法。

我找到m2CryptopyCrypto等。我不知道最好的是什么。 <{1}}对于python和gnupg是最近可见的。

我使用函数对我的私钥签名邮件,我验证了数据。 但是当我看到验证签名的功能时,我需要的参数: 私钥,签名,数据和摘要类型。

我不知道在这段代码中我错在哪里,我找到了一些例子,但我不明白这是如何工作的,因为验证函数的第一个参数是X509对象&#34;证书是X509实例对应于生成签名的私钥。&#34;第二个是使用私钥生成的签名..

此代码与私钥完美配合:

pyOpenSSl

那么,我的问题是,如何使用公钥来验证数据? 如果Bob给alice一个公钥,它如何用这个公钥检查消息?

你有个主意吗?

非常感谢, 罗曼

2 个答案:

答案 0 :(得分:1)

我在post找到了答案。

from OpenSSL.crypto import load_publickey, FILETYPE_PEM, verify, X509
# ... code ...
x509 = X509()
x509.set_pubkey(pub_key)
# ... code ...
print verify(x509, sign, sha, 'sha256')

我想知道..当我收到消息时,我使用公钥来验证发送器,但为什么我必须使用签名进行验证?要生成签名,我需要私钥.. 在使用图书馆时,我有什么不明白的地方吗?

答案 1 :(得分:0)

好的我理解了我的错误:Cryptography Digital signatures

source