首页 > Java > 正文

多次延期签约

WBOY
发布: 2024-02-12 17:15:05
转载
777 人浏览过

问题内容

我希望能够使用 itext 多次签署 pdf 文件。但我没有私钥。我正在生成一个哈希供客户端签名,在重新签名后,我调用 signDeferred()。是否可以制作多个空容器,用所有空容器生成一个哈希值,然后在它们出现时添加签名?

我尝试添加超过 1 个空容器,生成哈希,客户端签名并返回哈希,我尝试添加,但收到错误,它不是最后一个字段。您只能在最后一个字段上调用 ​​signDeferred 。但我不知道如何修复它,因为 signDetached 不是一个选项,因为我没有私钥。

解决方法

不,这是不可能的,至少对于可互操作的 PDF 签名来说是不可能的。

原因是没有为 PDF 指定真正的并行签名(或反签名)概念,只有串行签名概念,一个签名接一个签名,每个新签名也覆盖所有先前的签名:

(有关更多详细信息,请参阅此答案。)

严格来说,PDF 规范并不要求签名来覆盖除嵌入签名容器本身的占位符之外的所有整个修订版,它只是推荐它。因此,理论上可以创建具有多个签名的 PDF,每个签名覆盖除所有嵌入的签名值之外的整个 PDF。

但实际上,PDF 签名验证器会拒绝此类构造。此外,更现代的签名配置文件(特别是 PAdES 基线配置文件)确实需要签名来覆盖除签名容器占位符之外的所有整个修订版。

以上是多次延期签约的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板