Использование xml-crypto с PSHA1 - PullRequest
1 голос
/ 06 марта 2019

Можно ли использовать XML Crypto с использованием ключа PSHA1 (http://schemas.xmlsoap.org/ws/2005/02/trust/CK/PSHA1)? *

. У меня есть оба секрета и я генерирую строку ключа 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
}

1 Ответ

1 голос
/ 08 марта 2019

Алгоритм PSHA1 не реализован в Crypto Library, но есть пакет PSHA1 npm, который можно использовать для генерации секретного ключа.После этого вы можете сгенерировать хеш SHA1 стандартным способом, используя сообщение и ключ.

Я задал очень похожий вопрос, который отвечает на вопрос: https://stackoverflow.com/a/55053741/5065447

...