Utilizo las bondades de openssl para verificar la validación de los archivos xmls que recibo, obtengo los "certificados", de ahi el "PUBLIC KEY" para llegar a la cadena original y validar el sello. Todo funciona bien, pero me tope con un XML que no puedo cargar, teniendo la información del certificado y al querer obtener el "PUBLIC KEY" obtengo un error del openssl que dice así:
unable to load certificate
12724:error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long:.\crypto\asn1\asn1_lib.c:150:
12724:error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header:.\crypto\asn1\tasn_dec.c
12724:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:.\crypto\asn1\tasn_dec.c:382:Type=X509_CERT_AUX
12724:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:.\crypto\pem\pem_oth.c:83:
y de ahí no salgo, para múltiples xmls no he tenido problemas, es algo que tengo funcionando hace 2 años. Lógicamente el XML origen es correcto, lo verifico con el SAT y el Validacfd sin ningún problema.
La linea que ejecución que me genera el error es:
openssl x509 -in CERTIFI.txt -pubkey -noout > KEYPUB.PEM
en donde keypub.pem será el archivo resultante que contendrá el "PUBLIC KEY".
Anexo los archivos certifi.pem y xml origen.
Gracias anticipadas.