react / react-0.13.3 / examples / basic-commonjs / node_modules / browserify / node_modules / crypto-browserify / test / ecdh.js
80728 viewsvar mods = [1'secp256k1',2'secp224r1',3'prime256v1',4'prime192v1'5];6var test = require('tape');7var createECDH1 = require('../').createECDH;8var createECDH2 = require('create-ecdh/browser');9test('createECDH', function (t) {10mods.forEach(function (mod) {11t.test(mod + ' uncompressed', function (t){12t.plan(2);13var dh1 = createECDH1(mod);14dh1.generateKeys();15var dh2 = createECDH2(mod);16dh2.generateKeys();17var pubk1 = dh1.getPublicKey();18var pubk2 = dh2.getPublicKey();19t.notEquals(pubk1.toString('hex'), pubk2.toString('hex'), 'diff public keys');20var pub1 = dh1.computeSecret(pubk2).toString('hex');21var pub2 = dh2.computeSecret(pubk1).toString('hex');22t.equals(pub1, pub2, 'equal secrets');23});24t.test(mod + ' compressed', function (t){25t.plan(2);26var dh1 = createECDH1(mod);27dh1.generateKeys();28var dh2 = createECDH2(mod);29dh2.generateKeys();30var pubk1 = dh1.getPublicKey(null, 'compressed');31var pubk2 = dh2.getPublicKey(null, 'compressed');32t.notEquals(pubk1.toString('hex'), pubk2.toString('hex'), 'diff public keys');33var pub1 = dh1.computeSecret(pubk2).toString('hex');34var pub2 = dh2.computeSecret(pubk1).toString('hex');35t.equals(pub1, pub2, 'equal secrets');36});37t.test(mod + ' set stuff', function (t){38t.plan(5);39var dh1 = createECDH1(mod);40var dh2 = createECDH2(mod);41dh1.generateKeys();42dh2.generateKeys();43dh1.setPrivateKey(dh2.getPrivateKey());44dh1.setPublicKey(dh2.getPublicKey());45var priv1 = dh1.getPrivateKey('hex');46var priv2 = dh2.getPrivateKey('hex');47t.equals(priv1, priv2, 'same private key');48var pubk1 = dh1.getPublicKey();49var pubk2 = dh2.getPublicKey();50t.equals(pubk1.toString('hex'), pubk2.toString('hex'), 'same public keys, uncompressed');51t.equals(dh1.getPublicKey('hex', 'compressed'), dh2.getPublicKey('hex', 'compressed'), 'same public keys compressed');52t.equals(dh1.getPublicKey('hex', 'hybrid'), dh2.getPublicKey('hex', 'hybrid'), 'same public keys hybrid');53var pub1 = dh1.computeSecret(pubk2).toString('hex');54var pub2 = dh2.computeSecret(pubk1).toString('hex');55t.equals(pub1, pub2, 'equal secrets');56});57});58});5960