微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP如何解析pkcs7签名blob?

我有一个PKCS7签名,我可以从中获取解析内容

openssl pkcs7 -inform DER -in signature.pkcs7 -print_certs -text

但是如何使用PHP的openssl函数来实现相同的输出

编辑.我成功地使用以下函数创建了正确的PEM文件

function der2pem($der_data, $type="CERTIFICATE") {
   $pem = chunk_split(base64_encode($der_data), 64, "\n");
   $pem = "-----BEGIN $type-----\n".$pem."-----END $type-----\n";
   return $pem;
}
$data = der2pem($der_data, "PKCS7");

然而,我并没有成功地使用PHP手册中提到的任何功能来解析数据.它使用openssl工作:

openssl pkcs7 -inform PEM -in signature.pkcs7 -print_certs -text

解决方法:

不幸的是,我认为没有简单的解决方案.如果要在PHP中解析PKCS#7 DER编码签名,则需要一些ASN.1解析器. PHP中的OpenSSL函数无法执行此操作.

Do any PHP libraries exist for parsing ASN.1 or generating PHP code based on it?

尝试使用一些引用的解析器解码您的DER数据.如果任何解析器可以工作,您应该能够查看和提取所需的信息.作为第一步,您可以从PHPseclib项目尝试在线解析器.

http://phpseclib.sourceforge.net/x509/asn1parse.php

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐