无法在Node.js中使用ECDH私钥对缓冲区进行签名

时间:2015-09-03 17:21:32

标签: javascript node.js certificate sign

我收到错误:0D07209B:asn1编码例程:ASN1_get_object:太长'尝试使用我在Node.js中生成的PrivateKey签署对象时

buf是一个用node-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 个答案:

答案 0 :(得分:1)

事实证明我错过了EC数字签名,正确的方法是使用ECDSA。

Node.js本身没有实现它,但是这个模块做得很好:

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