2015-09-03 2 views
4

Я получаю сообщение об ошибке: 0D07209B: asn1 процедуры кодирования: ASN1_get_object: слишком долго "при попытке подписать объект с помощью PrivateKey I, сгенерированного в узле .js.Невозможно подписать буфер с закрытым ключом ECDH в Node.js

ЬиЕ представляет собой простой объект, закодированные с помощью узла-cbor

var ecdh = crypto.createECDH('secp256k1') 
ecdh.generateKeys() 

var sign = crypto.createSign('RSA-SHA256') 
sign.update(buf) 
var buf_signed = sign.sign('-----BEGIN PRIVATE KEY-----\n' + 
           ecdh.getPrivateKey('base64') + 
           '\n-----END PRIVATE KEY-----' + 
           '\n-----BEGIN CERTIFICATE-----' + 
           '\n-----END CERTIFICATE-----', 'binary') 

Было бы строго необходимым сертификат? Не хватает ли какой-либо информации в строке PEM?

Любая помощь приветствуется, спасибо :)

ответ

1

Оказывается, мне не хватает, что для ЕС Цифровой Подписи, правильный способ сделать это с помощью ECDSA.

Node.js не реализует его изначально, но этот модуль делает хорошую работу делают так:

https://www.npmjs.com/package/ecdsa

Смежные вопросы