PDF TimeStamping - 验证问题 - Vb.net-Java-TSA-iText-Bouncy

时间:2013-05-23 10:34:37

标签: pdf timestamp signature

我有一对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

1 个答案:

答案 0 :(得分:0)

最后,我们认为这是TSA服务器问题。 我认为它至少在Adobe Reader眼中并没有完成RFC 3161规范。