123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- var bcrypt = require('../bcrypt');
- var EXPECTED = 2500; //number of times to iterate these tests...
- module.exports = {
- test_salt_length: function(assert) {
- assert.expect(EXPECTED);
- var n = 0;
- for (var i = 0; i < EXPECTED; i++) {
- bcrypt.genSalt(10, function(err, salt) {
- assert.equals(29, salt.length, "Salt ("+salt+") isn't the correct length. It is: " + salt.length);
- n++;
- });
- }
- function checkVal() {
- if (n == EXPECTED) {
- assert.done();
- } else {
- setTimeout(checkVal, 100);
- }
- }
- setTimeout(checkVal, 100);
- },
- test_hash_length: function(assert) {
- assert.expect(EXPECTED);
- var SALT = '$2a$04$TnjywYklQbbZjdjBgBoA4e';
- var n = 0;
- for (var i = 0; i < EXPECTED; i++) {
- bcrypt.hash('test', SALT, function(err, crypted) {
- assert.equals(60, crypted.length, "Encrypted ("+crypted+") isn't the correct length. It is: " + crypted.length);
- n++;
- });
- }
- function checkVal() {
- if (n == EXPECTED) {
- assert.done();
- } else {
- setTimeout(checkVal, 100);
- }
- }
- setTimeout(checkVal, 100);
- },
- test_compare: function(assert) {
- assert.expect(EXPECTED);
- var HASH = '$2a$04$TnjywYklQbbZjdjBgBoA4e9G7RJt9blgMgsCvUvus4Iv4TENB5nHy';
- var n = 0;
- for (var i = 0; i < EXPECTED; i++) {
- bcrypt.compare('test', HASH, function(err, match) {
- assert.equal(true, match, "No match.");
- n++;
- });
- }
- function checkVal() {
- if (n == EXPECTED) {
- assert.done();
- } else {
- setTimeout(checkVal, 100);
- }
- }
- setTimeout(checkVal, 100);
- },
- test_hash_and_compare: function(assert) {
- assert.expect((EXPECTED-1)*3);
- var salt = bcrypt.genSaltSync(4),
- idx = 0,
- good_done = false,
- bad_done = false;
- function next() {
- return test('secret' + Math.random());
- }
- function test(password) {
- idx += 1;
- return bcrypt.hash(password, salt, function(err, hash) {
- if (err) throw err;
- //console.log('\nbcrypt iter ' + idx);
- assert.ok(hash);
- bcrypt.compare(password, hash, function(err, res) {
- //if (err) throw err;
- assert.ok(res);
- if (idx >= (EXPECTED-1)) {
- good_done = true;
- }
- });
- bcrypt.compare('bad' + password, hash, function(err, res) {
- //if (err) throw err;
- assert.ok(!res);
- if (idx >= (EXPECTED-1)) {
- bad_done = true;
- }
- });
- if (idx < ((EXPECTED)-1)) {
- next();
- } else {
- function checkDone() {
- if (idx >= (EXPECTED-1) && good_done && bad_done) {
- assert.done();
- } else {
- setTimeout(checkDone, 100);
- }
- }
- setTimeout(checkDone, 100);
- }
- });
- }
- next();
- }
- };
|