尝试使用我在 Node.js 中生成的私钥对对象进行签名时,出现“错误:0D07209B:asn1 编码例程:ASN1_get_object:太长”。
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 本身并没有实现它,但是这个模块在这方面做得很好:
关于javascript - 无法在 Node.js 中使用 ECDH 私钥签署缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32381875/