创建 PAdES 签名
Creating PAdES signature
我正在尝试使用以下工作流程创建 PAdES 签名:
- PDF 已准备好签名并在浏览器中计算哈希值
- 哈希发送到后端
- 分离的CAdES签名在后端形成
- 分离的CAdES被发送回PAdES签名组装的浏览器
我们有一个 PDF 签名的工作示例,其工作方式如下:
- 准备好 PDF 并在浏览器中计算哈希值
- 哈希发送到后端
- 在后端创建分离的 PKCS7 签名(通过使用 BouncyCastle 库)
- 分离的 PKCS7 被发送回组装 PDF 签名的浏览器
这工作正常。
但是,现在我们在后端使用 DSS 库而不是 BouncyCastle,因为我们正在尝试创建 PAdES 签名。因此,DSS 库正在创建分离的 CAdES(应该与分离的 PAdES 相同)而不是 PKCS7。但是,在浏览器中组装签名时,签名是无效的(连证书信息都看不到)。
根据我的理解,CAdES 是 PKCS7 的扩展,因此这种方法应该可行。
我首先试图了解我们的方法是否有问题,如果没有,我将尝试分享我们用来制作分离的 CAdES 签名的代码,看看那里是否有问题。
我想通了。分离的 CaDES 签名的大小是分离的 PKCS7 签名的 2 倍多,所以我们没有留下足够的 space 来容纳签名,所以签名基本上覆盖了 PDF 内容。当我增加签名的 space 时,一切正常
我正在尝试使用以下工作流程创建 PAdES 签名:
- PDF 已准备好签名并在浏览器中计算哈希值
- 哈希发送到后端
- 分离的CAdES签名在后端形成
- 分离的CAdES被发送回PAdES签名组装的浏览器
我们有一个 PDF 签名的工作示例,其工作方式如下:
- 准备好 PDF 并在浏览器中计算哈希值
- 哈希发送到后端
- 在后端创建分离的 PKCS7 签名(通过使用 BouncyCastle 库)
- 分离的 PKCS7 被发送回组装 PDF 签名的浏览器
这工作正常。
但是,现在我们在后端使用 DSS 库而不是 BouncyCastle,因为我们正在尝试创建 PAdES 签名。因此,DSS 库正在创建分离的 CAdES(应该与分离的 PAdES 相同)而不是 PKCS7。但是,在浏览器中组装签名时,签名是无效的(连证书信息都看不到)。
根据我的理解,CAdES 是 PKCS7 的扩展,因此这种方法应该可行。
我首先试图了解我们的方法是否有问题,如果没有,我将尝试分享我们用来制作分离的 CAdES 签名的代码,看看那里是否有问题。
我想通了。分离的 CaDES 签名的大小是分离的 PKCS7 签名的 2 倍多,所以我们没有留下足够的 space 来容纳签名,所以签名基本上覆盖了 PDF 内容。当我增加签名的 space 时,一切正常