1 | var generatePrime = require('./lib/generatePrime')
|
2 | var primes = require('./lib/primes.json')
|
3 |
|
4 | var DH = require('./lib/dh')
|
5 |
|
6 | function getDiffieHellman (mod) {
|
7 | var prime = new Buffer(primes[mod].prime, 'hex')
|
8 | var gen = new Buffer(primes[mod].gen, 'hex')
|
9 |
|
10 | return new DH(prime, gen)
|
11 | }
|
12 |
|
13 | var ENCODINGS = {
|
14 | 'binary': true, 'hex': true, 'base64': true
|
15 | }
|
16 |
|
17 | function createDiffieHellman (prime, enc, generator, genc) {
|
18 | if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {
|
19 | return createDiffieHellman(prime, 'binary', enc, generator)
|
20 | }
|
21 |
|
22 | enc = enc || 'binary'
|
23 | genc = genc || 'binary'
|
24 | generator = generator || new Buffer([2])
|
25 |
|
26 | if (!Buffer.isBuffer(generator)) {
|
27 | generator = new Buffer(generator, genc)
|
28 | }
|
29 |
|
30 | if (typeof prime === 'number') {
|
31 | return new DH(generatePrime(prime, generator), generator, true)
|
32 | }
|
33 |
|
34 | if (!Buffer.isBuffer(prime)) {
|
35 | prime = new Buffer(prime, enc)
|
36 | }
|
37 |
|
38 | return new DH(prime, generator, true)
|
39 | }
|
40 |
|
41 | exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman
|
42 | exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman
|