[Pkg-javascript-commits] [node-diffie-hellman] 46/88: formating and function names
Bastien Roucariès
rouca at moszumanska.debian.org
Thu May 4 10:19:15 UTC 2017
This is an automated email from the git hooks/post-receive script.
rouca pushed a commit to branch master
in repository node-diffie-hellman.
commit 934fa1a7faafa35f3d1ca8d889906d300f81cb6a
Author: Calvin Metcalf <cmetcalf at appgeo.com>
Date: Tue Jan 27 07:22:13 2015 -0500
formating and function names
---
browser.js | 12 +--
dh.js | 241 +++++++++++++++++++++++++++++--------------------------
generatePrime.js | 5 +-
3 files changed, 134 insertions(+), 124 deletions(-)
diff --git a/browser.js b/browser.js
index 2152764..414eeaf 100644
--- a/browser.js
+++ b/browser.js
@@ -3,14 +3,14 @@ var primes = require('./primes.json');
var DH = require('./dh');
-function DiffieHellmanGroup(mod) {
- var prime = new Buffer(primes[mod].prime, 'hex')
- var gen = new Buffer(primes[mod].gen, 'hex')
+function getDiffieHellman(mod) {
+ var prime = new Buffer(primes[mod].prime, 'hex');
+ var gen = new Buffer(primes[mod].gen, 'hex');
return new DH(prime, gen);
}
-function DiffieHellman(prime, enc, generator, genc) {
+function createDiffieHellman(prime, enc, generator, genc) {
if (Buffer.isBuffer(enc) || (typeof enc === 'string' && ['hex', 'binary', 'base64'].indexOf(enc) === -1)) {
genc = generator;
generator = enc;
@@ -36,5 +36,5 @@ function DiffieHellman(prime, enc, generator, genc) {
return new DH(prime, generator, true);
}
-exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = DiffieHellmanGroup;
-exports.createDiffieHellman = exports.DiffieHellman = DiffieHellman;
+exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman;
+exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman;
diff --git a/dh.js b/dh.js
index ae28d5e..f52b4d3 100644
--- a/dh.js
+++ b/dh.js
@@ -9,149 +9,158 @@ var SEVEN = new BN(7);
var primes = require('./generatePrime');
var randomBytes = require('randombytes');
module.exports = DH;
+
function setPublicKey(pub, enc) {
- enc = enc || 'utf8';
- if (!Buffer.isBuffer(pub)) {
- pub = new Buffer(pub, enc);
- }
- this._pub = new BN(pub);
+ enc = enc || 'utf8';
+ if (!Buffer.isBuffer(pub)) {
+ pub = new Buffer(pub, enc);
+ }
+ this._pub = new BN(pub);
}
+
function setPrivateKey(priv, enc) {
- enc = enc || 'utf8';
- if (!Buffer.isBuffer(priv)) {
- priv = new Buffer(priv, enc);
- }
- this._priv = new BN(priv);
+ enc = enc || 'utf8';
+ if (!Buffer.isBuffer(priv)) {
+ priv = new Buffer(priv, enc);
+ }
+ this._priv = new BN(priv);
}
+
var primeCache = {};
function checkPrime(prime, generator) {
- var gen = generator.toString('hex');
- var hex = [gen, prime.toString(16)].join('_');
- if (hex in primeCache) {
- return primeCache[hex];
- }
- var error = 0;
-
- if (prime.isEven() ||
- !primes.simpleSieve ||
- !primes.fermatTest(prime) ||
- !millerRabin.test(prime)) {
- //not a prime so +1
- error += 1;
-
- if (gen === '02' || gen === '05') {
- // we'd be able to check the generator
- // it would fail so +8
- error += 8;
- } else {
- //we wouldn't be able to test the generator
- // so +4
- error += 4;
- }
- primeCache[hex] = error;
- return error;
- }
- if (!millerRabin.test(prime.shrn(1))) {
- //not a safe prime
- error += 2;
- }
- var rem;
- switch (gen) {
- case '02':
- if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {
- // unsuidable generator
- error += 8;
- }
- break;
- case '05':
- rem = prime.mod(TEN);
- if (rem.cmp(THREE) && rem.cmp(SEVEN)) {
- // prime mod 10 needs to equal 3 or 7
- error += 8;
- }
- break;
- default:
- error += 4;
- }
- primeCache[hex] = error;
- return error;
+ var gen = generator.toString('hex');
+ var hex = [gen, prime.toString(16)].join('_');
+ if (hex in primeCache) {
+ return primeCache[hex];
+ }
+ var error = 0;
+
+ if (prime.isEven() ||
+ !primes.simpleSieve ||
+ !primes.fermatTest(prime) ||
+ !millerRabin.test(prime)) {
+ //not a prime so +1
+ error += 1;
+
+ if (gen === '02' || gen === '05') {
+ // we'd be able to check the generator
+ // it would fail so +8
+ error += 8;
+ } else {
+ //we wouldn't be able to test the generator
+ // so +4
+ error += 4;
+ }
+ primeCache[hex] = error;
+ return error;
+ }
+ if (!millerRabin.test(prime.shrn(1))) {
+ //not a safe prime
+ error += 2;
+ }
+ var rem;
+ switch (gen) {
+ case '02':
+ if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {
+ // unsuidable generator
+ error += 8;
+ }
+ break;
+ case '05':
+ rem = prime.mod(TEN);
+ if (rem.cmp(THREE) && rem.cmp(SEVEN)) {
+ // prime mod 10 needs to equal 3 or 7
+ error += 8;
+ }
+ break;
+ default:
+ error += 4;
+ }
+ primeCache[hex] = error;
+ return error;
}
+
function defineError (self, error) {
- try {
- Object.defineProperty(self, 'verifyError', {
- enumerable: true,
- value: error,
- writable: false
- });
- } catch(e) {
- self.verifyError = error;
- }
+ try {
+ Object.defineProperty(self, 'verifyError', {
+ enumerable: true,
+ value: error,
+ writable: false
+ });
+ } catch(e) {
+ self.verifyError = error;
+ }
}
function DH(prime, generator, malleable) {
- this.setGenerator(generator);
- this.__prime = new BN(prime);
- this._prime = BN.mont(this.__prime);
- this._pub = void 0;
- this._priv = void 0;
-
- if (malleable) {
- this.setPublicKey = setPublicKey;
- this.setPrivateKey = setPrivateKey;
- defineError(this, checkPrime(this.__prime, generator));
- } else {
- defineError(this, 8);
- }
- this._makeNum = function makeNum() {
- return randomBytes(prime.length);
- };
+ this.setGenerator(generator);
+ this.__prime = new BN(prime);
+ this._prime = BN.mont(this.__prime);
+ this._pub = void 0;
+ this._priv = void 0;
+
+ if (malleable) {
+ this.setPublicKey = setPublicKey;
+ this.setPrivateKey = setPrivateKey;
+ defineError(this, checkPrime(this.__prime, generator));
+ } else {
+ defineError(this, 8);
+ }
+ this._makeNum = function makeNum() {
+ return randomBytes(prime.length);
+ };
}
+
DH.prototype.generateKeys = function () {
- if (!this._priv) {
- this._priv = new BN(this._makeNum());
- }
- this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();
- return this.getPublicKey();
+ if (!this._priv) {
+ this._priv = new BN(this._makeNum());
+ }
+ this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();
+ return this.getPublicKey();
};
DH.prototype.computeSecret = function (other) {
- other = new BN(other);
- other = other.toRed(this._prime);
- var secret = other.redPow(this._priv).fromRed();
- var out = new Buffer(secret.toArray());
- var prime = this.getPrime();
- if (out.length < prime.length) {
- var front = new Buffer(prime.length - out.length);
- front.fill(0);
- out = Buffer.concat([front, out]);
- }
- return out;
+ other = new BN(other);
+ other = other.toRed(this._prime);
+ var secret = other.redPow(this._priv).fromRed();
+ var out = new Buffer(secret.toArray());
+ var prime = this.getPrime();
+ if (out.length < prime.length) {
+ var front = new Buffer(prime.length - out.length);
+ front.fill(0);
+ out = Buffer.concat([front, out]);
+ }
+ return out;
};
+
DH.prototype.getPublicKey = function getPublicKey(enc) {
- return returnValue(this._pub, enc);
+ return returnValue(this._pub, enc);
};
+
DH.prototype.getPrivateKey = function getPrivateKey(enc) {
- return returnValue(this._priv, enc);
+ return returnValue(this._priv, enc);
};
DH.prototype.getPrime = function (enc) {
- return returnValue(this.__prime, enc);
+ return returnValue(this.__prime, enc);
};
+
DH.prototype.getGenerator = function (enc) {
- return returnValue(this._gen, enc);
+ return returnValue(this._gen, enc);
};
+
DH.prototype.setGenerator = function (gen, enc) {
- enc = enc || 'utf8';
- if (!Buffer.isBuffer(gen)) {
- gen = new Buffer(gen, enc);
- }
- this._gen = new BN(gen);
+ enc = enc || 'utf8';
+ if (!Buffer.isBuffer(gen)) {
+ gen = new Buffer(gen, enc);
+ }
+ this._gen = new BN(gen);
};
function returnValue(bn, enc) {
- var buf = new Buffer(bn.toArray());
- if (!enc) {
- return buf;
- } else {
- return buf.toString(enc);
- }
+ var buf = new Buffer(bn.toArray());
+ if (!enc) {
+ return buf;
+ } else {
+ return buf.toString(enc);
+ }
}
\ No newline at end of file
diff --git a/generatePrime.js b/generatePrime.js
index 5f6300b..248b5b1 100644
--- a/generatePrime.js
+++ b/generatePrime.js
@@ -40,6 +40,7 @@ function _getPrimes() {
primes = res;
return res;
}
+
function simpleSieve(p) {
var primes = _getPrimes();
@@ -54,10 +55,12 @@ function simpleSieve(p) {
return true;
}
+
function fermatTest(p) {
var red = BN.mont(p);
return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;
}
+
function findPrime(bits, gen) {
if (bits < 16) {
// this is what openssl does
@@ -109,8 +112,6 @@ function findPrime(bits, gen) {
}
var num = generateRandom(bits);
-
-
var n2 = num.shrn(1);
while (true) {
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-diffie-hellman.git
More information about the Pkg-javascript-commits
mailing list