Невозможно подписать с модулем ecdsa в узле JS
Я пытаюсь использовать модуль ecdsa, чтобы подписать некоторые данные с помощью закрытого ключа шифрования ecdh. Мой код ниже:
shaMsg = crypto.createHash('sha256').update(myData).digest();
signed = ecdsa.sign(shaMsg, myECDHKey);
Я сталкиваюсь со следующей проблемой:
ОШИБКА: Сервер - Произошло исключение: Ошибка: Ожидаемое свойство "1" типа BigInteger, получено Буфер
Может кто-нибудь мне помочь?
2 ответа
Решение
Поскольку я не получил никакого ответа, я попытался с другими модулями и получить то, что я хотел с elliptic
модуль:
var EC = require("elliptic").ec;
var ec = new EC("secp256k1");
var shaMsg = crypto.createHash("sha256").update(myData.toString()).digest();
var mySign = ec.sign(shaMsg, privateKey, {canonical: true});
Я надеюсь, что это может помочь кому-то еще.
Я получил это работает с:
var BigInteger = require('bigi');
var signature = ecdsa.sign(shaMsg, BigInteger.fromBuffer(privateKey));
Но не удалось проверить с publicKey типа Buffer, он ожидает Point.