如何在验证时将PDF注释与签名连接?

时间:2014-02-19 16:38:39

标签: java itext digital-signature pdf-annotations

我正在尝试验证一个pades签名,但有一些警告,就像在adobe reader中一样(后来发生了变化......)。我可以验证签名的完整性,但是如何在签署文档后检查是否添加了注释?我可以从pdf列出注释,例如:

/ Annots [8 0 R 27 0 R 41 0 R]

显示:签名(8 0 R),注释(27 0 R)和另一个签名(41 0 R)。

如果我理解正确,第一个数字的序列(8,27,41)表示它们以pdf格式排列的顺序。或许我错了? 如果是,如何获取注释值及其属性?

1 个答案:

答案 0 :(得分:1)

请在digital signatures in PDF上查看我的图书。图2.20显示了PDF多次签名时的样子:

enter image description here

举个例子,很可能修订版1包含以下注释:

/Annots[8 0 R]

而修订版2包含:

/Annots[8 0 R 27 0 R]

修订版3包含:

/Annots[8 0 R 27 0 R 41 0 R]

回答你的问题:它们放在PDF中的顺序是:可能并非总是如此(PDF是一种相当特殊的格式),但你的猜测是一个安全的假设。

您想要检测在签名之前或之后添加了哪些注释。为此,您必须提取每个PDF的不同修订版。

PDF始终以%%EOF结尾,每个新签名在%%EOF之后添加数据。返回上一版本意味着删除文件末尾的字节,直到到达下一个%%EOF

如果你想使用iText这样做,你会在我的书中找到一些例子。