我们在客户端上存储公钥、私钥和 CA 证书。我们无法将其传递给服务器进行签名。我们正在客户端上创建一个签名,并希望将其发送到服务器进行签名嵌入。目的是使客户端尽可能轻巧,也可以使用相同的服务器代码,我们可以用于所有客户端。那么这可能吗?
PDFBox 支持外部签名容器创建。有关用法的详细信息,请参阅pdfbox-example
类CreateSignatureBase
、CreateSignature
、CreateVisibleSignature
和 CreateVisibleSignature
。特别是检查isExternalSigning
的注释,并isLateExternalSigning
属性定义和用法。
因此,服务器可以
- 可以准备PDF进行签名,
- 提取要签名的字节,以及
- 将它们或其哈希转发给客户端。
然后客户端可以
- 对给定数据进行签名,然后
- 将生成的签名容器推送到服务器。
最终服务器可以
- 将此签名容器注入到先前准备的 PDF 中。