Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

switch to safe-buffer #31

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions browser.js
Original file line number Diff line number Diff line change
@@ -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)
}
Expand All @@ -21,18 +22,18 @@ 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') {
return new DH(generatePrime(prime, generator), generator, true)
}

if (!Buffer.isBuffer(prime)) {
prime = new Buffer(prime, enc)
prime = Buffer.from(prime, enc)
}

return new DH(prime, generator, true)
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
"dependencies": {
"bn.js": "^4.1.0",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"miller-rabin": "^4.0.0",
"randombytes": "^2.0.0"
"randombytes": "^2.0.0",
"safe-buffer": "^5.1.2"
},
"devDependencies": {
"tap-spec": "^1.0.1",
Expand Down
21 changes: 11 additions & 10 deletions test.js
Original file line number Diff line number Diff line change
@@ -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'
Expand Down Expand Up @@ -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);
});
}
Expand All @@ -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');
});
}