我正在尝试使用NodeJS中PKCS#7格式的签名对pdf文件进行数字签名。
设置:
Node-forge在生成PKCS#7格式方面做得很好。我已经验证了库的最终输出符合我的需求。默认情况下,pkcs7需要输入以下内容:
问题:
我想在HSM中生成并存储我的签名者(用户)密钥,因此我无法直接访问私钥。因此,我可以提供最终结果-将签名的内容作为输入,而不是要签名的内容(2.)和签名者的私钥(3.)。我无法在node-forge或任何其他JavaScript库中找到这样做的选项。
供参考的openssl命令需要相同的3个参数。
我使用bouncycastle库找到了Java解决方案。它提供了实现ContentSigner接口的功能。您基本上可以告诉该库-“每当对文件签名时都从此处获取签名”,因此从理论上讲,应该仅使用证书和签名内容即可创建PKCS#7。
问题:
如何仅通过使用证书和签名的文件内容来生成PKCS#7或任何其他有效的PDF签名格式?