diff --git a/browser.js b/browser.js index d4be92b..ae8bf52 100644 --- a/browser.js +++ b/browser.js @@ -1,11 +1,12 @@ var generatePrime = require('./lib/generatePrime') var primes = require('./lib/primes.json') +var Buffer = require('safe-buffer').Buffer var DH = require('./lib/dh') function getDiffieHellman (mod) { - var prime = new Buffer(primes[mod].prime, 'hex') - var gen = new Buffer(primes[mod].gen, 'hex') + var prime = Buffer.from(primes[mod].prime, 'hex') + var gen = Buffer.from(primes[mod].gen, 'hex') return new DH(prime, gen) } @@ -21,10 +22,10 @@ function createDiffieHellman (prime, enc, generator, genc) { enc = enc || 'binary' genc = genc || 'binary' - generator = generator || new Buffer([2]) + generator = generator || Buffer.from([2]) if (!Buffer.isBuffer(generator)) { - generator = new Buffer(generator, genc) + generator = Buffer.from(generator, genc) } if (typeof prime === 'number') { @@ -32,7 +33,7 @@ function createDiffieHellman (prime, enc, generator, genc) { } if (!Buffer.isBuffer(prime)) { - prime = new Buffer(prime, enc) + prime = Buffer.from(prime, enc) } return new DH(prime, generator, true) diff --git a/package.json b/package.json index 054e36a..4a6354a 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "randombytes": "^2.0.0", + "safe-buffer": "^5.1.2" }, "devDependencies": { "tap-spec": "^1.0.1", diff --git a/test.js b/test.js index 7019b97..943e4f4 100644 --- a/test.js +++ b/test.js @@ -1,6 +1,7 @@ var test = require('tape'); var nodeCrypto = require('./'); var myCrypto = require('./browser'); +var Buffer = require('safe-buffer').Buffer var mods = [ 'modp1', 'modp2', 'modp5', 'modp14', 'modp15', 'modp16', 'modp17', 'modp18' @@ -96,12 +97,12 @@ function bylen2(t) { } test('create primes gen 2', function (t) { - var f = bylen(t, new Buffer([2])); + var f = bylen(t, Buffer.from([2])); lens2.forEach(f); }); if (!isNode10()) { test('create primes gen 5', function (t) { - var f = bylen(t, new Buffer([5])); + var f = bylen(t, Buffer.from([5])); lens2.forEach(f); }); } @@ -117,22 +118,22 @@ while (++i < 2) { if (!isNode10()) { test('check errors', function (t) { t.plan(5); - var p1 = new Buffer('db10e7f61adcc193', 'hex'); - var p2 = new Buffer('db10e7f61adcc194', 'hex'); + var p1 = Buffer.from('db10e7f61adcc193', 'hex'); + var p2 = Buffer.from('db10e7f61adcc194', 'hex'); var dh1 = myCrypto.createDiffieHellman(p1); var dh2 = nodeCrypto.createDiffieHellman(p1); t.equals(dh1.verifyError, dh2.verifyError, 'same error for good prime'); dh1 = myCrypto.createDiffieHellman(p2); dh2 = nodeCrypto.createDiffieHellman(p2); t.equals(dh1.verifyError, dh2.verifyError, 'same error for bad prime'); - dh1 = myCrypto.createDiffieHellman(p2, new Buffer([7])); - dh2 = nodeCrypto.createDiffieHellman(p2, new Buffer([7])); + dh1 = myCrypto.createDiffieHellman(p2, Buffer.from([7])); + dh2 = nodeCrypto.createDiffieHellman(p2, Buffer.from([7])); t.equals(dh1.verifyError, dh2.verifyError, 'same error for bad prime non testable generator'); - dh1 = myCrypto.createDiffieHellman(p1.toString('hex'), 'hex', new Buffer([5])); - dh2 = nodeCrypto.createDiffieHellman(p1.toString('hex'), 'hex', new Buffer([5])); + dh1 = myCrypto.createDiffieHellman(p1.toString('hex'), 'hex', Buffer.from([5])); + dh2 = nodeCrypto.createDiffieHellman(p1.toString('hex'), 'hex', Buffer.from([5])); t.equals(dh1.verifyError, dh2.verifyError, 'same error for good prime wrong generator'); - dh1 = myCrypto.createDiffieHellman(p1, new Buffer([11]).toString('hex'), 'hex'); - dh2 = nodeCrypto.createDiffieHellman(p1, new Buffer([11]).toString('hex'), 'hex'); + dh1 = myCrypto.createDiffieHellman(p1, Buffer.from([11]).toString('hex'), 'hex'); + dh2 = nodeCrypto.createDiffieHellman(p1, Buffer.from([11]).toString('hex'), 'hex'); t.equals(dh1.verifyError, dh2.verifyError, 'same error for good prime non testable generator'); }); }