24 lines
696 B
JavaScript
24 lines
696 B
JavaScript
/* 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);
|
|
});
|
|
});
|
|
});
|