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