验证Node.js中的文件签名

验证Node.js中的文件签名,node.js,pdf,digital-signature,node-crypto,Node.js,Pdf,Digital Signature,Node Crypto,我有一个pdf文件,用一些密钥算法登录,比如说1024位RSA。 如何验证Node.js中同时具有签名文件和公钥的签名 我知道有一个本地模块。但我不明白如何使用它,下面是一个来自文档的示例: const verify = crypto.createVerify('RSA-SHA256'); verify.write('some data to sign'); // should I write pdf file byte stream here? verify.end(); const pub

我有一个pdf文件,用一些密钥算法登录,比如说1024位RSA。 如何验证Node.js中同时具有签名文件和公钥的签名

我知道有一个本地模块。但我不明白如何使用它,下面是一个来自文档的示例:

const verify = crypto.createVerify('RSA-SHA256');
verify.write('some data to sign'); // should I write pdf file byte stream here?
verify.end();

const publicKey = getPublicKeySomehow();
const signature = getSignatureToVerify(); // this is not clear, what is the signature in current context?
console.log(verify.verify(publicKey, signature));
有人能解释一下吗

UPD 从这里我发现了正确的使用方法:

const res = verify.verify(fs.readFileSync('cert.cer'), fs.readFileSync('signed_doc.pdf'))
但它抛出了下一个错误

Error: PEM_read_bio_PUBKEY failed
    at Error (native)
    at Verify.verify (crypto.js:311:23)

问题:我可以使用
验证。使用
p7c
cer
证书验证
吗?

您没有签名文件,是吗?相反,您有一个已经包含签名的已签名文档。无法基于文件级验证来验证pdf文档的完整性。您需要一个特定于pdf的验证器。@ArtjomB。谢谢,你说得对。由于我无法在不使用特定工具的情况下验证pdf的完整性,我可能需要另一种方法。如果用户有文件签名,如何将其传递到服务器?