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

标签 javascript node.js certificate sign

尝试使用我在 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 本身并没有实现它,但是这个模块在这方面做得很好:

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

关于javascript - 无法在 Node.js 中使用 ECDH 私钥签署缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32381875/

相关文章:

javascript - 使用JavaScript将页面滚动到屏幕上的某个点(如果小于某个大小)?

javascript - 将 List 对象从 javascript 转换为 JSON

javascript - 如何从 <tr >'s double-click listener to a <button>' s 点击监听器传递 JS 对象?

javascript - Alexa Just Listen 调用名称然后闪烁并停止?

java - 使用 SSL 证书的 Java 连接 HTTPS 错误

javascript - asp.net MVC 路由 - javascript url 404 错误

javascript - 无法创建从 HTML 到本地主机的套接字连接

node.js - 如何访问 package.json 配置部分?

ssl - 当我尝试从计算机自己的 ip 访问时,自签名 SSL 证书未在本地验证

security - 如果客户端已经有服务器证书,SSL 握手/协议(protocol)如何工作?