.png)
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 cms
o 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 awk
ou para o campo grep
obrigató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.