【发布时间】:2014-07-11 11:50:08
【问题描述】:
我们能够以一种方式对 PDF 进行外部签名,它会进行验证,但证书是不可见的。通过一项更改,我们可以让证书显示,但 PDF 不再验证。
我们编写的代码或多或少与我们在网上找到的所有示例的行数相同。
当我们使用时:
PdfSignature(PdfName.ADOBE_PPKLITE, PdfName.ADBE_PKCS7_SHA1);
我们得到一个经过验证的 pdf,但证书在 PDF 中不可见。在 FoxIT 阅读器中,“显示证书”按钮被禁用。
当我们把它改成:
PdfSignature(PdfName.ADOBE_PPKLITE, PdfName.ADBE_PKCS7_DETACHED);
显示证书按钮已启用(在 Foxit Reader 中),并显示证书,但不再验证 PDF。它显示:
Signature is INVALID
The document has been altered or corrupted since the Signature was applied
Certified by the current user
我们的签名代码是 digitalsignature 指南中给出的 presign/postsign servlet 的转换。
我错过了什么?
【问题讨论】:
标签: c# itextsharp itext digital-signature