我正在尝试验证一个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格式排列的顺序。或许我错了? 如果是,如何获取注释值及其属性?
答案 0 :(得分:1)
请在digital signatures in PDF上查看我的图书。图2.20显示了PDF多次签名时的样子:
举个例子,很可能修订版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这样做,你会在我的书中找到一些例子。