当前位置: 首页 > 知识库问答 >
问题:

创建PAdES签名

孟洋
2023-03-14

我试图使用以下工作流程创建PAdES签名:

  • PDF准备签名,哈希在浏览器中计算
  • 哈希发送到后端
  • 后端形成分离的CAdES签名
  • 分离的CAdES被发送回组装PAdES签名的浏览器

我们有一个PDF签名的工作示例,其工作原理如下:

  • 准备好PDF,并在浏览器中计算哈希值

这很好用。

然而,现在我们在后端使用DSS库,而不是BouncyCastle,因为我们正在尝试创建PAdES签名。因此,DSS lib正在创建分离的CADE(应该与分离的PADE相同),而不是PKCS7。但是,在浏览器中组装签名时,签名无效(即使证书信息也不可见)。

据我所知,CAdES是PKCS7的一个扩展,所以这种方法应该有效。

我首先试图了解我们的方法是否有问题,如果没有,我会尝试分享我们用来制作分离CAdES签名的代码,看看是否有问题。

共有1个答案

微生阳平
2023-03-14

我想出来了。这是因为分离的CaDES签名的大小是分离的PKCS7签名的2倍多,所以我们没有留下足够的空间来容纳签名,所以签名基本上覆盖了PDF内容。当我为签名增加空间时,一切都正常工作

 类似资料:
  • 我正在使用pdfbox 3.0.0 RC创建PADES签名,我的代码使用示例创建数字签名。但是,当我使用此工具打开文档时,我无法在Adobe Acrobat中看到签名级别,尽管它能够验证我的签名。 我没有创建VRI,所以我猜测这可能是一个问题,但如果这是验证我的签名所必需的,我不明白为什么签名显示为有效? Adobe Acrobat签名:

  • 是否可以使用存储在Azure密钥库中的X509证书创建RSA-SHA1签名?“不可抵赖证明书” 不幸的是,我不能将哈希算法更改为SHA256或更安全的东西,我真的需要将证书作为密钥存储在Azure Key Vault中。 null

  • 数字签名允许我们验证签名的作者,日期和时间,验证消息内容。 它还包括用于其他功能的身份验证功能。 数字签名的优点 在本节中,我们将了解要求使用数字签名的不同原因。 将数字签名实施到通信有几个原因 - 身份验证 (Authentication) 数字签名有助于验证消息来源。 例如,如果银行的分支机构向中央办公室发送消息,请求更改帐户余额。 如果中央办公室无法验证从授权来源发送的消息,则执行此类请求可

  • 我有一个问题与数字签名PDF文件已标记为PDF/A-3A兼容。使用PDFBox(最新版本,2.0.24)最终在Adobe Acrobat中获得无效签名,而使用iText7(最新版本)获得有效签名。目标是获得符合PAdES LTV的签名。 我的流程如下(使用PDFBox和iText7): 打开PDF,创建用于签名的散列(要签名的数据) 我呼叫第三方服务以取回数字签名 在服务响应中,我还获得了OCSP

  • 我有一个创建PDF文档Base64摘要的API。现在我想创建另一个API,它采用此摘要和PFX并创建一个ETSI. CAdES. detated签名并获取我想要嵌入到我的PDF中的LTV信息(Certs链、OCSP响应、CRL)以使用第三个API获得PAdES-LTV签名(我的第三个API将获取从此API获得的CAdES签名和LTV信息,并将它们嵌入到我的PDF中)。我不知道如何使用该摘要和带有J

  • Git 可以给历史中的某一个修订版本打上标签,通常我们会使用标签来表示一个版本的发布. 操作步骤: VCS —> Git —>Tag —>弹出创建标签配置窗口 配置介绍: Git Root: 项目地址 Current Branch: 显示当前的分支 Tag Name: 标签名 Force:如果相同的tag名已经存在了,是否强制创建. Commit: 通过输入的修订版本号、tag名来打标签,如果空白