You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							42 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							42 lines
						
					
					
						
							1.1 KiB
						
					
					
				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
 | 
						|
 |