我正在尝试采用CMS base64编码的字符串,将其转换为pkcs7文件,并使用javascript / nodejs提取叶子证书和中间证书,类似于以下openssl命令:
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
我几乎阅读了所有文章,并看到了其他语言的解决方案,但没有针对node的解决方案。我了解您可以使用node-forge实现我所需的功能,但是node-forge不支持ECC算法。有人知道可以帮助我完成此任务的任何其他解决方案/ npm软件包吗?请帮我。我对此很陌生。
答案 0 :(得分:0)
您是否看到{。{3}} for Node.js?这是一个纯JavaScript库,实现了PKI应用程序中使用的格式。它基于PKI.js,并完全支持CMS消息中的所有“ Suite B”算法。 OP提交的代码段:
const cmsSignedBuffer = stringToArrayBuffer(fromBase64(token.signature));
const asn1 = asn1js.fromBER(cmsSignedBuffer);
const cmsContentSimpl = new pkijs.ContentInfo({ schema: asn1.result });
const cmsSignedSimpl = new pkijs.SignedData({ schema: cmsContentSimpl.content })
另一种方法是例如对W3C Web Cryptography API之类的openssl使用包装器。包装器只是产生一个子进程来调用openssl。因此,必须在部署Node.js应用程序的系统上安装openssl。