无法在 Node.js 中使用 ECDH 私钥签署缓冲区

Being unable to sign an Buffer with ECDH private key in Node.js

我在 Node.js.

中尝试使用我生成的私钥对对象签名时收到 'error:0D07209B:asn1 encoding routines:ASN1_get_object:too long'

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 字符串中的任何信息?

感谢任何帮助,谢谢:)

原来我错过了 EC 数字签名,正确的方法是使用 ECDSA。

Node.js 并没有在本地实现它,但是这个模块在这方面做得很好:

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