I have a PKCS7 signature which i can get parsed contents from with
openssl pkcs7 -inform DER -in signature.pkcs7 -print_certs -text
But how do archieve the same output with PHPs openssl functions?
Edit. I succeeded in creating a correct PEM file with the following function:
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");
Im not however successfull in parsing the data with any of the functions mentioned in the PHP manual. It works using openssl with:
openssl pkcs7 -inform PEM -in signature.pkcs7 -print_certs -text
Unfortunatelly, I believe there is not simple solution. If you want to parse PKCS#7 DER encoded signature in PHP, you need some ASN.1 parser. OpenSSL functions in PHP are not capable to do it.
Do any PHP libraries exist for parsing ASN.1 or generating PHP code based on it?
Try to decode your DER data with some of referenced parsers. If any parser will work, you should be able to see and extract required information. As first step, you can try online parser from phpseclib project.
http://phpseclib.sourceforge.net/x509/asn1parse.php
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With