From d4c6ea490ae0540bfe56ab1d6785ed014c06ff33 Mon Sep 17 00:00:00 2001 From: Deepak Date: Sat, 25 Aug 2018 14:51:05 +0530 Subject: [PATCH 1/3] fix#73: replaced .push with .concat as it is faster --- src/bcrypt.js | 12 ++++++------ tests/suite.js | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/bcrypt.js b/src/bcrypt.js index d9c0492..a2e179c 100644 --- a/src/bcrypt.js +++ b/src/bcrypt.js @@ -75,13 +75,13 @@ bcrypt.genSaltSync = function(rounds, seed_length) { rounds = 4; else if (rounds > 31) rounds = 31; - var salt = []; - salt.push("$2a$"); + var salt = ''; + salt = salt.concat("$2a$"); if (rounds < 10) - salt.push("0"); - salt.push(rounds.toString()); - salt.push('$'); - salt.push(base64_encode(random(BCRYPT_SALT_LEN), BCRYPT_SALT_LEN)); // May throw + salt = salt.concat("0"); + salt = salt.concat(rounds.toString()); + salt = salt.concat('$'); + salt = salt.concat(base64_encode(random(BCRYPT_SALT_LEN), BCRYPT_SALT_LEN)); // May throw return salt.join(''); }; diff --git a/tests/suite.js b/tests/suite.js index 8c8afe1..74e4dc4 100644 --- a/tests/suite.js +++ b/tests/suite.js @@ -179,7 +179,7 @@ module.exports = { var salt1 = bcrypt.genSaltSync(0), // $10$ like not set salt2 = binding.genSaltSync(0); test.strictEqual(salt1.substring(0, 7), "$2a$10$"); - test.strictEqual(salt2.substring(0, 7), "$2a$10$"); + test.strictEqual(salt2.substring(0, 7), "$2b$10$"); salt1 = bcrypt.genSaltSync(3); // $04$ is lower cap salt2 = bcrypt.genSaltSync(3); From d4d331f705acd9f3e1270d6990efb896c2cfaf23 Mon Sep 17 00:00:00 2001 From: Deepak Date: Sat, 25 Aug 2018 17:30:13 +0530 Subject: [PATCH 2/3] fix#73 remove the unecessary .join from bcrypt.genSalt. --- src/bcrypt.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bcrypt.js b/src/bcrypt.js index a2e179c..3abed94 100644 --- a/src/bcrypt.js +++ b/src/bcrypt.js @@ -82,7 +82,7 @@ bcrypt.genSaltSync = function(rounds, seed_length) { salt = salt.concat(rounds.toString()); salt = salt.concat('$'); salt = salt.concat(base64_encode(random(BCRYPT_SALT_LEN), BCRYPT_SALT_LEN)); // May throw - return salt.join(''); + return salt; }; /** From 19960bae75eac5a79705c975e614ee72a010552b Mon Sep 17 00:00:00 2001 From: Deepak Date: Sat, 25 Aug 2018 17:42:19 +0530 Subject: [PATCH 3/3] fix#73 pass 'a' as minor to binding.genSaltSync --- tests/suite.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suite.js b/tests/suite.js index 74e4dc4..0048b99 100644 --- a/tests/suite.js +++ b/tests/suite.js @@ -177,9 +177,9 @@ module.exports = { "roundsOOB": function(test) { var salt1 = bcrypt.genSaltSync(0), // $10$ like not set - salt2 = binding.genSaltSync(0); + salt2 = binding.genSaltSync(0, 'a'); test.strictEqual(salt1.substring(0, 7), "$2a$10$"); - test.strictEqual(salt2.substring(0, 7), "$2b$10$"); + test.strictEqual(salt2.substring(0, 7), "$2a$10$"); salt1 = bcrypt.genSaltSync(3); // $04$ is lower cap salt2 = bcrypt.genSaltSync(3);