是否可以通过PSHA1(http://schemas.xmlsoap.org/ws/2005/02/trust/CK/PSHA1)密钥使用XML Crypto?

我同时拥有两个秘密,并使用它们生成了一个PSHA1密钥字符串,但是此操作失败了:


  错误:错误:0906D06C:PEM例程:PEM_read_bio:无起始行


我不是该密钥需要采用哪种格式才能被接受,它不是PEM证书,只是基于2个随机数的字符串。客户端在请求期间提供的一种,服务器在响应中提供的一种。



const sig = new SignedXml();
sig.addReference("/*[local-name()='Envelope']/*[local-name()='Header']/*[local-name()='Security']/*[local-name()='Timestamp']");
sig.signingKey = '<SIGNING_KEY>';
sig.computeSignature(xml);
fs.writeFileSync('signed.xml', sig.getSignedXml());





它在signer.sign行上失败:

this.getSignature = function(signedInfo, signingKey) {
  var signer = crypto.createSign("RSA-SHA1")
  signer.update(signedInfo)
  var res = signer.sign(signingKey, 'base64')
  return res
}

最佳答案

PSHA1算法未在加密库中实现,但是有一个PSHA1 npm包可用于生成密钥。之后,您可以使用消息和密钥以标准方式生成SHA1哈希。

我在这里问了一个非常类似的问题,它回答了这个问题:
https://stackoverflow.com/a/55053741/5065447

关于node.js - 在PSHA1中使用xml-crypto,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55029822/

10-11 23:24