extrair carimbo de data / hora de p7s (arquivo de assinatura)

extrair carimbo de data / hora de p7s (arquivo de assinatura)

Estou procurando descobrir como extrair as informações do carimbo de data/hora (quando o arquivo é assinado) do arquivo p7s.

Atualmente estou extraindo o carimbo de data/hora através do asn1parse e usando a string (id-smime-aa-timeStampToken)

O conteúdo do meu arquivo analisado é semelhante ao abaixo.

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          

Estou extraindo dados do deslocamento 19137 com comprimento de 2165 (que presumi presente na mesma linha do deslocamento hl=4 l=2161), não tenho certeza se está correto, mas estou obtendo detalhes de tempo corretos.

Mas existe alguma maneira de extrair o carimbo de data/hora diretamente do p7s?

Responder1

Você pode usar cmso comando do OpenSSL para visualizar o conteúdo de um arquivo PKCS#7 assinado. Supondo que você não tenha o certificado do signatário e, portanto, não esteja verificando a assinatura e apenas visualizando a estrutura, você pode usar:

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

Isso irá despejar detalhes da estrutura, que inclui o seguinte extrato:

    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

Você pode filtrar isso com awkou para o campo grepobrigatório .signingTime

Se filtrar a saída de texto do OpenSSL não lhe agradar, existem outras ferramentas mais adequadas para inspecionar o conteúdo de qualquer estrutura ASN.1. Se você for competente em Python, por exemplo, poderá usarpyasn1crypto.

informação relacionada