为什么这两个 itext 7 签名和验证文档之一对 Adob​​e DC reader 无效?

Why is one of these two itext 7 signed and validated document is not valid with Adobe DC reader?

我有两个 pdf 文档经过认证(使用基于 Itext 7 的相同机制签名和验证),当我使用 adobe reader DC 检查它们的有效性时,只有一个有绿色标记。

好的: https://1drv.ms/b/s!AkF6t4TavwMvgxWaidlUqvPvHH1r

不好的: https://1drv.ms/b/s!AkF6t4TavwMvgxQCMdGY61S1EvUh

此致

大卫·L

由于其他多种工具可以毫无问题地验证这两个文档...我们可能认为这是一个 adobe reader 错误。

特别是 Adob​​e Acrobat 本身被撕裂了:

这不是 Adob​​e 错误,而是一项功能。 (还有一个 iText 错误)

当 Adob​​e 执行密码验证时,它还会执行额外的检查以查看签名是否受到攻击。它分析了几个嫌疑人,如果分析结果是否定的,Adobe 将向您显示一条错误消息。这是 Adob​​e 误报了分析和有效性。但是,有一种解决这些隐藏要求的方法。

首先在non-append模式下使用iText修改文档:

不幸的是,在特定情况下,iText 7 在 non-append 模式下使用时会引入规范不允许的更改。问题是 iText 引入了小节。这是规范允许你做的事情,但第一次修订明确不允许这样做:

Section 7.5.4 Cross-Reference Table [...] For a file that has never been incrementally updated, the cross-reference section shall contain only one subsection, whose object numbering begins at 0. [...]

下面是iText在non-append模式下使用后第一次修改的外部参照,每个彩色矩形都是一个新的小节。为了合规,应该只有一个矩形。

这将在计划于 7 月底发布的即将发布的 7.0.4 版本中得到解决。