extraer marca de tiempo de p7s (archivo de firma)

extraer marca de tiempo de p7s (archivo de firma)

Estoy buscando saber cómo extraer la información de la marca de tiempo (cuando el archivo está firmado) del archivo p7s.

Actualmente estoy extrayendo la marca de tiempo a través de asn1parse y usando la cadena (id-smime-aa-timeStampToken)

El contenido de mi archivo analizado se ve a continuación.

19120:d=7  hl=2 l=  11 prim: OBJECT            :id-smime-aa-timeStampToken
19133:d=7  hl=4 l=2165 cons: SET               
19137:d=8  hl=4 l=2161 cons: SEQUENCE          

Estoy extrayendo datos del desplazamiento 19137 con una longitud de 2165 (que supuse presente en la misma línea que el desplazamiento hl=4 l=2161), no estoy seguro de que sea correcto, pero obtengo los detalles de hora correctos.

¿Pero hay alguna forma de extraer la marca de tiempo directamente desde p7?

Respuesta1

Puede utilizar cmsel comando de OpenSSL para ver el contenido de un archivo PKCS#7 firmado. Suponiendo que no tiene el certificado del firmante y, por lo tanto, no está verificando la firma y solo está viendo la estructura, puede usar:

openssl cms -verify -noverify -cmsout -print -inform DER -in file.p7s

Esto arrojará detalles de la estructura, que incluye el siguiente extracto:

    signedAttrs:
        object: contentType (1.2.840.113549.1.9.3)
        set:
          OBJECT:pkcs7-data (1.2.840.113549.1.7.1)

        object: signingTime (1.2.840.113549.1.9.5)
        set:
          GENERALIZEDTIME:Aug  3 23:50:00 2020 GMT

Puede filtrar esto con awko para el campo greprequerido .signingTime

Si filtrar la salida de texto de OpenSSL no le sienta bien, existen otras herramientas más adecuadas para inspeccionar el contenido de cualquier estructura ASN.1. Si eres competente en Python, por ejemplo, puedes usarpyasn1crypto.

información relacionada