Openssl
從 p7s 中提取時間戳(簽名文件)
我正在尋找如何從 p7s 文件中提取時間戳資訊(文件簽名時)。
我目前正在通過 asn1parse 提取時間戳並使用字元串 (id-smime-aa-timeStampToken)
我解析的文件中的內容如下所示。
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
我正在從偏移量 19137 中提取長度為 2165 的數據(我假設它與偏移量 hl=4 l=2161 存在於同一行),不確定這是正確的,但我得到了正確的時間細節。
但是有沒有辦法直接從p7s中提取時間戳呢?
您可以使用 OpenSSL 的
cms
命令查看簽名的 PKCS#7 文件的內容。假設您沒有獲得簽名者的證書,因此沒有驗證簽名並且只查看結構,您可以使用:openssl cms -verify -noverify -cmsout -print -inform DER -in file.p7s
這將轉儲結構的詳細資訊,其中包括以下摘錄:
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
awk
您可以使用或grep
為必填signingTime
欄位過濾此內容。如果過濾 OpenSSL 的文本輸出不適合您,還有其他工具更適合檢查任何 ASN.1 結構的內容。例如,如果您精通 Python,則可以使用pyasn1crypto。