.png)
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 cms
el 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 awk
o para el campo grep
requerido .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.