本文介绍了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 摘要的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-27 13:45