我有一对 pdf 签名模块 (adbe.pkcs.sha1),用 Java 和 Vb.net 编写,使用Bouncycastle, AbcPdf, and iText 2.1.7 libraries.
该模块将时间戳标记添加到数字签名中,由TSA RFC 3161 Servers.
我们使用不同的提供者提供,用于测试我们使用:
到目前为止,它工作正常,但现在,一个“生产”TSA 服务器正在“以某种方式”返回一个 Adobe Reader 无法处理的时间戳。该提供商说他们只是按照 RFC 3161 的规定发送消息......而且他们不想告诉我更多信息。
使用该 TimeStampToken,它在 Adobe Reader 中显示的签名,但带有“签名具有时间戳 - 不可用的时间戳”警告。在某些版本中,我们可以看到“显示证书按钮”但 Adobe Reader 崩溃。
我的问题是:哪个工具可以帮助我发现我们添加到 PDF 中的时间戳记有什么问题?Inspectig pdf 代码,或者使用 adobe Professional,我能够看到 TimeStampToken,但我没有发现问题的想法。
任何想法都会受到欢迎。感谢您阅读本文。
更新:
如果我签署一个序列化的文本文件(字节数组)并将其添加TimeStampToken
到签名中,那么我可以从 中提取 Token CmsSignedData
,这似乎是正确的。
... p_oContenido as CmsSignedData
Dim oAlmacenFirmantes As SignerInformationStore = p_oContenido.GetSignerInfos()
' extracción de certificados del objeto firmado
Dim aCertificadosDetectados As IX509Store = p_oContenido.GetCertificates("Collection")
Dim aFirmantes As ICollection = oAlmacenFirmantes.GetSigners()
Dim oSello As New TimeStampToken(p_oContenido)
oFec = oSello.TimeStampInfo.GenTime ' it's ok
也许Abode Reader不明白TSA Server Policy
?