在 PAdES 第 4 部分的情况下,带有文档锁定的签名无效

2024-03-31

我遇到一个问题,我在 PAdES 第 4 部分的情况下设置了文档锁定功能。执行文档时间戳签名后签名无效。

文档锁定功能的代码片段如下:

PdfSigFieldLock pdfSigFieldLock = new PdfSigFieldLock();
pdfSigFieldLock.SetDocumentPermissions(PdfSigFieldLock.LockPermissions.NO_CHANGES_ALLOWED);
string[] fieldToLock = new string[] { signingRequest.FieldName };
pdfSigFieldLock.SetFieldLock(PdfSigFieldLock.LockAction.ALL, fieldToLock);
pdfSigFieldLock.GetPdfObject().Remove(PdfName.Fields);
pdfSigner.SetFieldLockDict(pdfSigFieldLock);

该文件附在这里:https://ascertia0-my.sharepoint.com/:f:/g/personal/muddassir_awan_ascertia_com/EpCcxOWGtLdIlR7MYO9LXf0BNtrUim3aCFdCUNbeRK8rIw?e=xAGnMU https://ascertia0-my.sharepoint.com/:f:/g/personal/muddassir_awan_ascertia_com/EpCcxOWGtLdIlR7MYO9LXf0BNtrUim3aCFdCUNbeRK8rIw?e=xAGnMU

问候, 穆达西尔·阿万


这是 Adob​​e Acrobat 签名验证例程中的一个已知错误;土坯PDF 架构师兼首席科学家伦纳德·罗森索尔承诺在未来的版本中解决这个问题.

See Apache PDFBox 问题 PDFBOX-3017:

Maruan Sahyoun added a comment - 02/Nov/20 20:14

从伦纳德·罗森索尔那里得到了最新消息:

我想告诉您,我们已经记录了一个与此相关的错误,并将在未来的版本中解决它。

感谢您提请我们注意此事。

Further

我:据我了解 - 应该可以在签名后添加 LTV,但目前 Acrobat 错误地标记了这一点,这是正确的吗?

伦纳德:正确

不过,一分钟的问题:您添加了一个扩展条目:

/Extensions<</ESIC<</BaseVersion/1.7/ExtensionLevel 5>>>>

虽然这确实可能是一个很好的提示对于使用 PAdES 语法的验证器,它严格来说是无效的在您声明自己为 PDF-1.6 的 PDF 中,请参阅中的讨论此 eSig DSS 问题 https://ec.europa.eu/cefdigital/tracker/browse/DSS-2392.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 PAdES 第 4 部分的情况下,带有文档锁定的签名无效 的相关文章

随机推荐

  • inputStream 和 utf 8 有时显示“?”人物

    所以我已经处理这个问题一个多月了 我还通过谷歌检查了几乎所有可能的相关解决方案 但我找不到任何真正解决我的情况的东西 我的问题是我正在尝试从网站下载 html 源代码 但在大多数情况下我得到的是某些文本显示一些 其中的字符 很可能是因为该网
  • 定义类型别名

    我发现 Pascal 的一个非常有用的功能是能够命名数据类型 例如 type person record name string age int end var me person you person etc 你能在 C 中做类似的事情吗
  • jQuery Unslide - 触摸不起作用

    我已经解决了这个问题 我发帖只是为了帮助其他人节省一些时间 我正在将 unslider 用于商业网站 这是一个我正在制作的响应式网站 因此向滑块添加触摸支持的功能很有吸引力 不幸的是 正如作者声称的那样 它不能直接开箱即用 UPDATE我使
  • 学习游戏开发,有什么书推荐吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 通过 SSH 执行 sudo 的正确方法是什么?

    我有一个脚本 它通过 SSH 在远程服务器上运行另一个脚本sudo 但是 当我输入密码时 它会显示在终端上 否则它工作正常 ssh user server sudo script 执行此操作的正确方法是什么 以便我可以输入密码sudo通过
  • 使用 Windows 服务手动实现 IoC

    我是 IoC 的新手 因此一直在遵循 Jeffery Palermo 在他的帖子中提供的示例http jeffreypalermo com blog the onion architecture part 1 http jeffreypal
  • SQL:限制链接到每个连接行的行

    我有某些情况需要 MySQL 查询的某些结果集 让我们先看看当前的查询 然后问我的问题 SELECT thread dateline AS tdateline post dateline AS pdateline MIN post date
  • Python 中(大)1554 x 1554 矩阵的行列式

    我需要在 python 中计算单精度的大型 1554 1554 值矩阵的行列式 这样做时我遇到了运行时警告 import numpy as np from numpy import linalg as LA a np random rand
  • 我可以在不使用 npm、VS、Node 等而只使用 JS 代码本身的情况下转换 ES6-ES5 吗?

    我试图让 Firefox 在 ES6 中运行 Promise 但遇到了触发错误的 let 关键字 语法错误 let 是保留标识符 更改脚本标签以包含 类型 应用程序 javascript 版本 1 7 没有用 所以我正在寻求转换代码 我的情
  • Angular 服务测试出了什么问题?

    我有一个调用外部网络服务的服务 angular module myApp services service autoCmpltDataSvc function http var innerMatch function data return
  • 如何管理 mpz_t 数组

    我正在使用 GMP 我需要一系列mpz t sizeof mpz t 给出 16 但我存储的数字比这个大得多 做mpz t 就地 成长 i e 我是否需要分配更多内存并允许就地增长 或者 GMP 是否在其他地方为它们分配空间并仅保留引用 在
  • 忽略拼写检查中的文本框

    我正在尝试创建一个仅对特定单元格进行拼写检查的宏 我已成功对单元格进行拼写检查 但由于某种原因 拼写检查向导随后继续运行 并尝试检查电子表格上的任何文本框 下面是代码 Range C8 Select Selection CheckSpell
  • 如何限制 .net / mono 进程的内存大小

    假设您有一个用 C 编写的应用程序 单进程 默认情况下 应用程序分配巨大的虚拟内存 远远超过其需要 例如驻留内存约为 10mb 而虚拟内存约为几 GB 在 Java 中 可以使用一个选项来限制这一点 java mx128m 如何对 net
  • 截断 MD5 的 ECDF 图

    在这个link https stackoverflow com questions 8184941 uniform distribution of truncated md5 它表示截断的 MD5 是均匀分布的 我想使用 PySpark 检
  • 在 Python 中迭代并从多维数组中选择特定数组

    想象一下我有这样的东西 import numpy as np arra np arange 16 reshape 2 2 4 这使 array 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 我想创建一个沿着特定
  • JavaFX TextArea如何设置带有自动换行符的文本

    在我的应用程序中 我使用了两个Tabs 在第一个中我放置了一个HtmlEditor在第二个中我放置了一个TextArea HTML 选项卡是默认的 当用户创建 HTML 输入时 他可以切换到TextArea以便直接查看或更改 HTML 源代
  • Webpack 未加载 Vue 的单文件组件 CSS

    Webpack 正在编译单个文件组件 但不加载 CSS HTML 和 Vue 已正确呈现 但没有 CSS 看来是webpack配置的问题 知道出了什么问题吗 我在用着webpack dev server加载开发服务器 src index h
  • 是否有可能 - 在 Flutter Web 应用程序中插入 google AdSense?

    我尝试在我的网站上插入下一个代码 Google AdSense 但目前尚未成功 代码是 1 有一段时间我尝试了带有类似句子的 dart js js context callMethod 但是 认为它不起作用 因为我们需要展
  • Ocaml,用列表中的给定元素替换所有指定元素

    我正在编写一个 ocaml 项目 其中我有一个函数可以替换所有 在字符列表中 E 这是我的建议代码 let rec string lst change E lst match lst with gt let a E a h t if h g
  • 在 PAdES 第 4 部分的情况下,带有文档锁定的签名无效

    我遇到一个问题 我在 PAdES 第 4 部分的情况下设置了文档锁定功能 执行文档时间戳签名后签名无效 文档锁定功能的代码片段如下 PdfSigFieldLock pdfSigFieldLock new PdfSigFieldLock pd