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.
		
		
		
		
			
				
					43 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					43 lines
				
				1.1 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								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
							 |