| var generatePrime = require('./lib/generatePrime') |
| var primes = require('./lib/primes.json') |
| |
| var DH = require('./lib/dh') |
| |
| function getDiffieHellman (mod) { |
| var prime = new Buffer(primes[mod].prime, 'hex') |
| var gen = new Buffer(primes[mod].gen, 'hex') |
| |
| return new DH(prime, gen) |
| } |
| |
| var ENCODINGS = { |
| 'binary': true, 'hex': true, 'base64': true |
| } |
| |
| function createDiffieHellman (prime, enc, generator, genc) { |
| if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) { |
| return createDiffieHellman(prime, 'binary', enc, generator) |
| } |
| |
| enc = enc || 'binary' |
| genc = genc || 'binary' |
| generator = generator || new Buffer([2]) |
| |
| if (!Buffer.isBuffer(generator)) { |
| generator = new Buffer(generator, genc) |
| } |
| |
| if (typeof prime === 'number') { |
| return new DH(generatePrime(prime, generator), generator, true) |
| } |
| |
| if (!Buffer.isBuffer(prime)) { |
| prime = new Buffer(prime, enc) |
| } |
| |
| return new DH(prime, generator, true) |
| } |
| |
| exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman |
| exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman |