我有一对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
添加到签名,那么我可以从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
?
答案 0 :(得分:0)
最后,我们认为这是TSA服务器问题。 我认为它至少在Adobe Reader眼中并没有完成RFC 3161规范。