【发布时间】:2013-09-12 10:39:51
【问题描述】:
早安,
我正在尝试将时间戳信息嵌入到 pdf 签名中,以便 adobe 向我报告签名是时间戳。目前,我所做的只是 Adobe 报告“签名包含嵌入的时间戳,但无法验证”,当您查看日期/时间属性时,它说“时间戳授权”不可用并且“显示证书”是灰色的。
显然,我在构建 PKCS#7 消息时做错了。但我现在不知道。 有人可以通过描述我需要采取的步骤来帮助我,以便为我的签名加盖时间戳吗?或者建议一个可以帮助我找到问题的工具?
我正在使用加密 API。我目前遵循的步骤如下:
- 使用 CryptHashMessage 函数 (SHA256) 创建 pdf 数据的摘要。
- 使用 CryptRetrieveTimeStamp 函数将此摘要发送到 TSA。我设置了 *TIMESTAMP_DONT_HASH_DATA* 标志,这样摘要就不会再次被散列。
- 来自 TSA 的回复作为未经身份验证的属性添加到 *CRYPT_SIGN_MESSAGE_PARA* 结构中,并且签名时间作为经过身份验证的属性添加。
- 然后我使用 CryptSignMessage 函数对使用上述结构的原始数据进行签名。
如何检查数据是否正确,以便 adobe 向我显示签名已加盖时间戳?
问候, 玛格达
【问题讨论】:
-
您能分享一个示例 PDF 吗?此外,您的 Adobe Reader 是否信任您的 TSA?
-
你会修复链接吗?我还想以编程方式对 pdf 进行签名和时间戳。
标签: pdf digital-signature cryptoapi trusted-timestamp