添加LTV(长期验证)会使byterange无效

2024-09-27 07:32:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个小型库,旨在成为一个高级(简单易用)库,用于对使用WeasyPrint库(https://github.com/Kozea/WeasyPrint)生成的pdf进行数字签名

我已经让它用于自签名证书,现在我正在使用Globalsign DSS API(https://www.globalsign.com/en/resources/apis/api-documentation/digital-signing-service-api-documentation.html)的数字签名适配器

除了LTV(长期验证)之外,我的一切都正常工作,LTV需要一个DSS字典,列出OCSP信息和链中的任何证书(用于处理撤销)

当我添加DSS时(必须在签名数据写入之后),我在Adobe Acrobat中得到一个错误,指出byterange的签名无效

如何在不使byterange失效的情况下启用DSS功能

我对iText库进行了深入的研究,但它太抽象了,很难理解正在编写的实际数据。我仍然冒昧地为iText添加标签,因为它在处理PDF中的数字签名时有点像行业标准


Tags: 数据httpsgithubcomapipdfdocumentation证书
1条回答
网友
1楼 · 发布于 2024-09-27 07:32:33

多亏了这篇命名精美的文档,我才明白这一点: Electronic Signatures and Infrastructures (ESI); PDF Advanced Electronic Signature Profiles; Part 4: PAdES Long Term - PAdES-LTV Profile 标题可能很冗长,但文档实际上是一个非常简洁和有益的阅读

DSS可以添加到原始byterange之后,方法是在文件末尾添加一个时间戳,该时间戳获取包含整个文件(包括DSS)的另一个byterange的摘要。您必须启用扩展才能正常工作,请参阅“第4.4章扩展字典”。链接文档中有更详细的细节

我认为值得一提的是,我通过使用ApachePDFBox实用程序在PDF中发现了一些语法错误。我要是早点找到就好了

如果你感兴趣,我在github上发布了这个库:https://github.com/hejsan/WeasySign。它已经起作用了,但需要一些润色

相关问题 更多 >

    热门问题