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.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							1.6 KiB
						
					
					
				var test = require('tape') | 
						|
var crypto = require('diffie-hellman/browser') | 
						|
 | 
						|
test('diffie-hellman mod groups', function (t) { | 
						|
  [ | 
						|
    'modp1', 'modp2', 'modp5', 'modp14', 'modp15', 'modp16' | 
						|
  ].forEach(function (mod) { | 
						|
    t.test(mod, function (t) { | 
						|
      t.plan(3) | 
						|
      var dh1 = crypto.getDiffieHellman(mod) | 
						|
      var p1 = dh1.getPrime().toString('hex') | 
						|
      dh1.generateKeys() | 
						|
      var dh2 = crypto.getDiffieHellman(mod) | 
						|
      var p2 = dh2.getPrime().toString('hex') | 
						|
      dh2.generateKeys() | 
						|
      t.equals(p1, p2, 'equal primes') | 
						|
      var pubk1 = dh1.getPublicKey() | 
						|
      var pubk2 = dh2.getPublicKey() | 
						|
      t.notEquals(pubk1, pubk2, 'diff public keys') | 
						|
      var pub1 = dh1.computeSecret(pubk2).toString('hex') | 
						|
      var pub2 = dh2.computeSecret(dh1.getPublicKey()).toString('hex') | 
						|
      t.equals(pub1, pub2, 'equal secrets') | 
						|
    }) | 
						|
  }) | 
						|
}) | 
						|
 | 
						|
test('diffie-hellman key lengths', function (t) { | 
						|
  [ | 
						|
    64, 65, 192 | 
						|
  ].forEach(function (len) { | 
						|
    t.test('' + len, function (t) { | 
						|
      t.plan(3) | 
						|
      var dh2 = crypto.createDiffieHellman(len) | 
						|
      var prime2 = dh2.getPrime() | 
						|
      var p2 = prime2.toString('hex') | 
						|
      var dh1 = crypto.createDiffieHellman(prime2) | 
						|
      var p1 = dh1.getPrime().toString('hex') | 
						|
      dh1.generateKeys() | 
						|
      dh2.generateKeys() | 
						|
      t.equals(p1, p2, 'equal primes') | 
						|
      var pubk1 = dh1.getPublicKey() | 
						|
      var pubk2 = dh2.getPublicKey() | 
						|
      t.notEquals(pubk1, pubk2, 'diff public keys') | 
						|
      var pub1 = dh1.computeSecret(pubk2).toString('hex') | 
						|
      var pub2 = dh2.computeSecret(dh1.getPublicKey()).toString('hex') | 
						|
      t.equals(pub1, pub2, 'equal secrets') | 
						|
    }) | 
						|
  }) | 
						|
})
 | 
						|
 |