0

我正在尝试为我的 SSH 协议的 node.js 实现实现 diffie-hellman-group1-sha1 密钥交换。

我想为此使用内置的加密模块。我的代码:

var hellman = crypto.createDiffieHellman(
"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1"+
"29024E088A67CC74020BBEA63B139B22514A08798E3404DD"+
"EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245"+
"E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED"+
"EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381"+
"FFFFFFFFFFFFFFFF","hex");
hellman.setPrivateKey(crypto.randomBytes(20));
hellman.generateKeys(); 

但是 node.js 无法执行。它引发以下错误:“错误:未初始化”

有谁知道出了什么问题?

4

1 回答 1

0

好像是node.js的一个bug: https ://github.com/joyent/node/issues/2338

Node 7.5 版包含了一个解决方案,可以在其中获得预定义的 diffieHellmansusing crypto.getDiffieHellman("modp2");

它是在以下推送请求中添加的: https ://github.com/joyent/node/pull/2638

所有预定义的 diffie hellmans 都可以在这里观看: https ://gist.github.com/1899353

于 2012-02-24T10:19:45.340 回答