我想对xml文档进行数字签名。问题是我无法在服务器端执行此操作,因为证书是从智能卡读取器读取的。插入智能卡后,我们还可以通过Windows证书存储区访问证书。我想到了使用nodejs软件包win-ca访问证书,并使用xml-crypto用correct 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中,有没有一种方法可以让我使用私钥签名而不必从文件中读取私钥?