dh-group-test.js 666 B

12345678910111213141516171819202122
  1. var assert = require('assert');
  2. var BN = require('../../').BN;
  3. var fixtures = require('../fixtures');
  4. describe('BN.js/Slow DH test', function() {
  5. var groups = fixtures.dhGroups;
  6. Object.keys(groups).forEach(function(name) {
  7. it('should match public key for ' + name + ' group', function() {
  8. var group = groups[name];
  9. this.timeout(3600 * 1000);
  10. var base = new BN(2);
  11. var mont = BN.red(new BN(group.prime, 16));
  12. var priv = new BN(group.priv, 16);
  13. var multed = base.toRed(mont).redPow(priv).fromRed();
  14. var actual = new Buffer(multed.toArray());
  15. assert.equal(actual.toString('hex'), group.pub);
  16. });
  17. });
  18. });