如何在node.js中进行PKCS7签名?

Jes*_*sse 8 ruby openssl cryptography certificate node.js

所以我将一个ruby库移植到node.js,需要创建一个PKCS7签名.

这是ruby lib正在做的事情:

p12_certificate = OpenSSL::PKCS12::new(File.read('some-path.c12'), self.certificate_password)
x509_certificate = OpenSSL::X509::Certificate.new(File.read('some-other-path.pem'))


flag = OpenSSL::PKCS7::BINARY|OpenSSL::PKCS7::DETACHED
signed = OpenSSL::PKCS7::sign(p12_certificate.certificate, p12_certificate.key, File.read('some-manifest'), [x509_certificate], flag)
Run Code Online (Sandbox Code Playgroud)

我如何在节点中实现相同的功能?我假设它会是这样的:

crypto.createCredentials({
  pfx : fs.readFileSync('some-cert.p12'),
  passphrase : this.certificate_password,
  cert : fs.readFileSync('some-path.pem','some-encoding'),
})
Run Code Online (Sandbox Code Playgroud)

问题:

  • 这是正确的方法吗?
  • 我是否需要指定密钥,ca列表,crl列表或密码列表?
  • 我应该使用什么编码来读取证书?
  • 什么是线路设置的节点等价物 signed
  • 什么是节点的等价物 signed.to_der

Alb*_*elB 0

验证 PKCS#7 (PEM) 签名/解压 Node.js 中的数据

除了链接之外无法发表更多评论,但希望这可以帮助您开始。这只是验证签名,但是我确信您可以对其进行逆向工程以创建一个签名。