aboutsummaryrefslogtreecommitdiff
path: root/node_modules/bn.js/test/pummel/dh-group-test.js
blob: 37a259ffa210bbe2efaa7405408d0d9fc4d4a93a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* global describe, it */

var assert = require('assert');
var BN = require('../../').BN;
var fixtures = require('../fixtures');

describe('BN.js/Slow DH test', function () {
  var groups = fixtures.dhGroups;
  Object.keys(groups).forEach(function (name) {
    it('should match public key for ' + name + ' group', function () {
      var group = groups[name];

      this.timeout(3600 * 1000);

      var base = new BN(2);
      var mont = BN.red(new BN(group.prime, 16));
      var priv = new BN(group.priv, 16);
      var multed = base.toRed(mont).redPow(priv).fromRed();
      var actual = new Buffer(multed.toArray());
      assert.equal(actual.toString('hex'), group.pub);
    });
  });
});