使用 tcpdf 库,我可以向 pdf 添加签名,但时间戳(RFC3161)尚未在此库(applyTSA)中实现,我需要此功能。
根据 ISO 32000-1:2008:
作为无符号属性的时间戳信息 (PDF 1.6):时间戳记号应符合 RFC3161,并且应按照 RFC3161 的附录 A 中的描述计算并嵌入到 PKCS#7 对象中。时间戳的具体处理及其处理留给特定的签名处理程序来定义。
来自 RFC3161 附录 A
以下对象标识符标识签名时间戳属性:
id-aa-timeStampToken OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) aa(2) 14 }
Signature 时间戳属性值具有 ASN.1 类型 SignatureTimeStampToken:
SignatureTimeStampToken ::= TimeStampToken
TimeStampToken 中的 messageImprint 字段的值应是 SignerInfo 中的签名字段值的哈希值,用于被标记的签名数据。
使用 openssl 生成时间戳非常容易,但我不清楚如何将其嵌入到 PKCS#7 对象中。我的问题是:
- 如何在我的签名中添加时间戳?
- 或者,是否有任何具有此功能的开源库(php 或其他)?
一个例子将不胜感激