我希望能够使用 itext 多次签署 pdf 文件。但我没有私钥。我正在生成一个哈希供客户端签名,在重新签名后,我调用 signDeferred()
。是否可以制作多个空容器,用所有空容器生成一个哈希值,然后在它们出现时添加签名?
我尝试添加超过 1 个空容器,生成哈希,客户端签名并返回哈希,我尝试添加,但收到错误,它不是最后一个字段。您只能在最后一个字段上调用 signDeferred
。但我不知道如何修复它,因为 signDetached
不是一个选项,因为我没有私钥。
不,这是不可能的,至少对于可互操作的 PDF 签名来说是不可能的。
原因是没有为 PDF 指定真正的并行签名(或反签名)概念,只有串行签名概念,一个签名接一个签名,每个新签名也覆盖所有先前的签名:
(有关更多详细信息,请参阅此答案。)
严格来说,PDF 规范并不要求签名来覆盖除嵌入签名容器本身的占位符之外的所有整个修订版,它只是推荐它。因此,理论上可以创建具有多个签名的 PDF,每个签名覆盖除所有嵌入的签名值之外的整个 PDF。
但实际上,PDF 签名验证器会拒绝此类构造。此外,更现代的签名配置文件(特别是 PAdES 基线配置文件)确实需要签名来覆盖除签名容器占位符之外的所有整个修订版。
以上是多次延期签约的详细内容。更多信息请关注PHP中文网其他相关文章!