pkcs7 openssl_sign getting extension error ejecutar desde php openssl pkcs#7

openssl_sign - php 7.2 openssl



PHP ¿Cómo analizar el blob de firma de pkcs7? (2)

¿Qué pasa con esta solución :)

<?php $result = shell_exec(''openssl pkcs7 -inform DER -in signature.pkcs7 -print_certs -text''); var_dump ($result); // you can use preg_match() if you want to parse something specific

Tengo una firma PKCS7 con la que puedo obtener contenido analizado con

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

¿Pero cómo se puede obtener el mismo resultado con las funciones openssl de PHP?

Editar. Logré crear un archivo PEM correcto con la siguiente función:

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);

Sin embargo, no pude analizar los datos con ninguna de las funciones mencionadas en el manual de PHP. Funciona usando openssl con:

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


Desafortunadamente, creo que no hay una solución simple. Si desea analizar la firma codificada DER PKCS # 7 en PHP, necesita algún analizador ASN.1. Las funciones de OpenSSL en PHP no son capaces de hacerlo.

¿Existen bibliotecas PHP para analizar ASN.1 o generar código PHP basado en él?

Intenta decodificar tus datos DER con algunos de los analizadores referenciados. Si algún analizador funciona, debería poder ver y extraer la información requerida. Como primer paso, puedes probar el analizador en línea del proyecto phpseclib.

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