本文介绍了pyOpenSSL 的 PKCS7 对象提供的信息很少,我怎样才能得到签名中公钥的 sha1 摘要的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在 Python 中解析 android apk 的 CERT.RSA.我知道它可以用 pyOpenSSL 解析
导入 OpenSSL
cert = OpenSSL.crypto.load_pkcs7_data(类型,缓冲区)
证书的类型为OpenSSL.crypto.PKCS7".
但是现在 PKCS7 对象不完整,我无法获得所需的属性,有没有其他方法来解析该文件?
解决方案
You can convert PKCS#7
to PEM
using openssl
, PEM
is readable using PyOpenSSL
openssl pkcs7 -print_certs -in sample.p7b -out sample.cer
It's not implemented, the Pull Request stalles since 2015.
Useing the code from the Pull Request you can doit.
Usage:
pkcs7 = crypto.load_pkcs7_data(crypto.FILETYPE_ASN1, open('signature.der', 'rb').read())
certs = get_certificates(pkcs7)
print(certs)
for cert in certs:
print('digest:{}'.format(cert.digest('sha256')))
Tested with Python:3.4.2 - OpenSSL:17.1.0 - cryptography:1.9 - cffi:1.10.0
Use
OpenSSL.crypto.load_pkcs7_data(type, buffer)
这篇关于pyOpenSSL 的 PKCS7 对象提供的信息很少,我怎样才能得到签名中公钥的 sha1 摘要的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!