我已经认证了两份pdf文件(使用基于Itext 7的相同机制签名和验证),当我使用adobe reader DC检查其有效性时,只有一个有绿色标记。
好的: https://1drv.ms/b/s!AkF6t4TavwMvgxWaidlUqvPvHH1r
不好的一个: https://1drv.ms/b/s!AkF6t4TavwMvgxQCMdGY61S1EvUh问候
David L
答案 0 :(得分:7)
这不是Adobe的错误,它是一个功能。 (还有一个iText错误)
当Adobe执行加密验证时,它还会执行其他检查以查看签名是否受到攻击。它分析了几个嫌疑人,如果该分析结果为否定,Adobe将向您显示错误消息。这是Adobe误报分析和有效性。但是,有一个解决这些隐藏要求的工作。
不幸的是,在特定情况下,iText 7在非附加模式下使用时会引入规范不允许的更改。问题是iText引入了小节。这是规范允许您执行的操作,但第一次修订明确禁止这样做:
第7.5.4节交叉引用表 [...]对于从未进行过增量更新的文件,交叉引用部分只应包含一个子部分,其对象编号从0开始。[...]
下面你会发现在非附加模式下使用iText后第一个版本的外部参照,每个彩色矩形都是一个新的子部分。为了顺从,应该只有一个矩形。
这将在即将推出的计划于7月底发布的7.0.4版本中修复。
答案 1 :(得分:2)
由于多个其他工具验证这两个文档没有任何问题......我们可能认为这是一个adobe reader bug。
特别是因为Adobe Acrobat本身就被撕裂了: