如何使用Node.js与智能卡的私钥签署XML文档

时间:2019-05-21 12:02:20

标签: node.js certificate digital-signature private-key xml-signature

我想对xml文档进行数字签名。问题是我无法在服务器端执行此操作,因为证书是从智能卡读取器读取的。插入智能卡后,我们还可以通过Windows证书存储区访问证书。我想到了使用nodejs软件包win-ca访问证书,并使用xml-cryptocorrect syntax对我的xml文档进行签名。

我可以使用以下代码访问用户证书:

SUsername:string; 
SPassword:string;

onSubmit(){
console.log(this.SUsername,this.SPassword);

但是我还需要访问私钥。如果我可以将私钥导出到文件,则需要执行以下操作来读取它并用它签名xml:

const ca = require('win-ca')
certsPem = []

ca({
  format: ca.der2.pem,
  store: "MY",
  ondata: cert => certsPem.push(cert)
})

但是不可能从智能卡中导出私钥并将其存储在文件中,智能卡根本不允许这样做。在nodejs中,有没有一种方法可以让我使用私钥签名而不必从文件中读取私钥?

0 个答案:

没有答案