react / react-0.13.3 / examples / basic-commonjs / node_modules / browserify / node_modules / crypto-browserify / test / dh.js
80728 viewsvar test = require('tape');1var crypto = require('diffie-hellman/browser');2test('diffie-hellman mod groups', function (t) {3[4'modp1', 'modp2', 'modp5', 'modp14', 'modp15', 'modp16'5].forEach(function (mod) {6t.test(mod, function (t){7t.plan(3);8var dh1 = crypto.getDiffieHellman(mod);9var p1 = dh1.getPrime().toString('hex');10dh1.generateKeys();11var dh2 = crypto.getDiffieHellman(mod);12var p2 = dh2.getPrime().toString('hex');13dh2.generateKeys();14t.equals(p1, p2, 'equal primes');15var pubk1 = dh1.getPublicKey();16var pubk2 = dh2.getPublicKey();17t.notEquals(pubk1, pubk2, 'diff public keys');18var pub1 = dh1.computeSecret(pubk2).toString('hex');19var pub2 = dh2.computeSecret(dh1.getPublicKey()).toString('hex');20t.equals(pub1, pub2, 'equal secrets');21});22});23});24test('diffie-hellman key lengths', function (t) {25[2664, 65, 19227].forEach(function (len) {28t.test('' + len, function (t){29t.plan(3);30var dh2 = crypto.createDiffieHellman(len);31var prime2 = dh2.getPrime();32var p2 = prime2.toString('hex');33var dh1 = crypto.createDiffieHellman(prime2);34var p1 = dh1.getPrime().toString('hex');35dh1.generateKeys();36dh2.generateKeys();37t.equals(p1, p2, 'equal primes');38var pubk1 = dh1.getPublicKey();39var pubk2 = dh2.getPublicKey();40t.notEquals(pubk1, pubk2, 'diff public keys');41var pub1 = dh1.computeSecret(pubk2).toString('hex');42var pub2 = dh2.computeSecret(dh1.getPublicKey()).toString('hex');43t.equals(pub1, pub2, 'equal secrets');44});45});46});474849