为了账号安全,请及时绑定邮箱和手机立即绑定

使用 ESIG/DSS 向 PDF 添加带有可见时间戳和 Reason 字段的数字签名

使用 ESIG/DSS 向 PDF 添加带有可见时间戳和 Reason 字段的数字签名

温温酱 2021-09-12 16:47:55
我正在尝试理解和实施基于欧盟委员会赞助的数字签名服务项目的解决方案。我目前已经在 Nowina NexU 客户端软件的帮助下成功地使用了前面提到的 github 链接中提到的 DSS-DEMO 应用程序提供的抽象。我的愿望是使用以下配置对 PDF 文档进行数字签名:没有容器PAdES 签名表笼罩PAdES_BASELINE_LT 签名级别SHA256 摘要算法我希望签名有一个可见的部分,即可以在文档的第一页上看到。这在一定程度上证明了这里。就个人而言,我需要实际的签名时间戳和她证书中的签名者姓名。在上面的演示中,这是通过向签名函数提供“参数”来完成的。我还想填写签名的 Reason 字段 - 当您使用 Adobe Acrobat Reader 等程序查看签名属性时,它随后会显示。到目前为止,我的问题如下,我似乎找不到关于它们的示例或其他类型的信息。如果我想显示从 Timestamp Authority 服务获得的签名时间戳,我将如何获取它,因为与时间戳服务器的通信是在签名过程中完成的,即在指定我上面提到的参数之后。我想我必须深入研究 DSS 代码并自己完成所有步骤。目前,奇怪的事情发生了。当我指定硬编码的原因(如“testtest”)或根本没有原因时,签名似乎被认为是有效的,或者至少是未知的。当我根据其他结果填写时,签名无效。因为这样的事情通常不会通过魔法发生,我一定是做错了什么。代码的组织方式大致如下 - 两台机器之间存在 REST 通信 - 一个服务器和一个安装了 NexU 的客户端。NexU 与智能卡或客户端计算机上的任何其他证书存储进行所有通信 - 它与服务器交换摘要值和签名摘要值。其中,服务器代码中有两个特定阶段:getDataToSign - 这里的摘要是从 PDF 内容中计算出来的signDocument - 这里是实际的签名 - (我猜是将签名嵌入到文档中?)。我为这两个阶段提供了大量参数,其中包括指定签名时间戳、原因和我希望出现在第一页上的文本的视觉参数。我在两个阶段使用相同的参数执行此操作(因为我不确定应该在哪个阶段给出哪个阶段)我的签名日期 - 尽可能接近时间戳授权服务器的时间戳是否合乎逻辑?好的 - 在签名过程开始时,我将其设置为我自己服务器的当前时间戳。我正在使用 PADSSignatureParameters.setReason 设置 Reason。任何有用的见解表示赞赏 - 谢谢。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 177 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信