summaryrefslogtreecommitdiffstats
path: root/node_modules/crypto-browserify/test/node/dh.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/crypto-browserify/test/node/dh.js')
-rw-r--r--node_modules/crypto-browserify/test/node/dh.js51
1 files changed, 51 insertions, 0 deletions
diff --git a/node_modules/crypto-browserify/test/node/dh.js b/node_modules/crypto-browserify/test/node/dh.js
new file mode 100644
index 0000000..0b3aa71
--- /dev/null
+++ b/node_modules/crypto-browserify/test/node/dh.js
@@ -0,0 +1,51 @@
+var test = require('tape')
+var cryptoB = require('../../')
+var crypto = require('crypto')
+
+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 = cryptoB.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(pubk1).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 = cryptoB.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')
+ })
+ })
+})