python – Pyopenssl验证文件签名
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Pyopenssl验证文件签名,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1434字,纯文字阅读大概需要3分钟。
内容图文
我想使用pyopenssl验证下载文件的签名和证书,但文档不清楚,谷歌没有帮助.
我在用户的机器上有一个根CA证书,现在当用户下载文件时,我将随之发送证书和签名.首先,我需要在机器上使用rootCA验证证书,然后我需要用文件验证签名
在openssl中,我可以使用以下来验证ca证书
openssl verify -CAfile <root_pem> <cert_pem>
以及以下验证文件
openssl dgst <algo> -verify <cert_pub_key> -signature <signature> <file>
我正在寻找使用python进行相同的方式,最好是pyopenssl
解决方法:
我一般都在学习OpenSSL,更不用说PyOpenSSL了.话虽如此,我能够使用以下内容验证PyOpenSSL中的文件(第二个命令):
from OpenSSL.crypto import load_publickey, FILETYPE_PEM, verify, X509
with open(file_to_verify, 'rb') as f:
file_data = f.read()
with open(signature_filename, 'rb') as f:
signature = f.read()
with open(public_key_filename) as f:
public_key_data = f.read()
# load in the publickey file, in my case, I had a .pem file.
# If the file starts with
# "-----BEGIN PUBLIC KEY-----"
# then it is of the PEM type. The only other FILETYPE is
# "FILETYPE_ASN1".
pkey = load_publickey(FILETYPE_PEM, public_key_data)
# the verify() function expects that the public key is
# wrapped in an X.509 certificate
x509 = X509()
x509.set_pubkey(pkey)
# perform the actual verification. We need the X509 object,
# the signature to verify, the file to verify, and the
# algorithm used when signing.
verify(x509, signature, file_data, 'sha256')
如果验证成功(即它什么都不做),verify()函数将返回None,否则如果出现错误则会引发异常.
内容总结
以上是互联网集市为您收集整理的python – Pyopenssl验证文件签名全部内容,希望文章能够帮你解决python – Pyopenssl验证文件签名所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。