为什么这两个itext 7签名和验证文档中的一个对Adobe DC阅读器无效?

时间:2017-07-17 14:33:16

标签: pdf itext adobe signature itext7

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

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

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

问候

David L

2 个答案:

答案 0 :(得分:7)

这不是Adobe的错误,它是一个功能。 (还有一个iText错误)

当Adobe执行加密验证时,它还会执行其他检查以查看签名是否受到攻击。它分析了几个嫌疑人,如果该分析结果为否定,Adobe将向您显示错误消息。这是Adobe误报分析和有效性。但是,有一个解决这些隐藏要求的工作。

首先,iText用于非附加模式来修改文档: document properties

不幸的是,在特定情况下,iText 7在非附加模式下使用时会引入规范不允许的更改。问题是iText引入了小节。这是规范允许您执行的操作,但第一次修订明确禁止这样做:

  

第7.5.4节交叉引用表   [...]对于从未进行过增量更新的文件,交叉引用部分只应包含一个子部分,其对象编号从0开始。[...]

下面你会发现在非附加模式下使用iText后第一个版本的外部参照,每个彩色矩形都是一个新的子部分。为了顺从,应该只有一个矩形。 XREF table

这将在即将推出的计划于7月底发布的7.0.4版本中修复。

答案 1 :(得分:2)

由于多个其他工具验证这两个文档没有任何问题......我们可能认为这是一个adobe reader bug。

特别是因为Adobe Acrobat本身就被撕裂了:

Both "Some of the changes that have been made to this document since this signature was applied are not permitted by the document author." and "There have been no changes made to this document since this signature was applied." on the same dialog page