Browse Source

initial commit

tags/v1.0.0
s2 5 years ago
commit
20def6c189
4 changed files with 96 additions and 0 deletions
  1. +2
    -0
      .gitignore
  2. +17
    -0
      lib/securerandomstring.js
  3. +24
    -0
      package.json
  4. +53
    -0
      tests.js

+ 2
- 0
.gitignore View File

@@ -0,0 +1,2 @@
/.settings
/.project

+ 17
- 0
lib/securerandomstring.js View File

@@ -0,0 +1,17 @@
var crypto = require('crypto');

function securerandomstring(cb, options) {
options = options || {};
var length = options['length'] || 32;

crypto.randomBytes(length, function(ex, buf) {
if (ex) throw ex;

var string = buf.toString('base64');
cb(string.substr(0, length));
});

};


module.exports = securerandomstring;

+ 24
- 0
package.json View File

@@ -0,0 +1,24 @@
{
"name": "securerandomstring",
"version": "0.0.1",
"description": "Generates a secure random string with a given length",
"main": "lib/securerandomstring.js",
"scripts": {
"test": "tests.js"
},
"repository": {
"type": "git",
"url": "https://github.com/S2-/securerandomstring.git"
},
"keywords": [
"secure",
"random",
"string"
],
"author": "Simon Santoro",
"license": "ISC",
"bugs": {
"url": "https://github.com/S2-/securerandomstring/issues"
},
"homepage": "https://github.com/S2-/securerandomstring"
}

+ 53
- 0
tests.js View File

@@ -0,0 +1,53 @@
var securerandomstring = require('./lib/securerandomstring.js');


//my awesome test framework
var test = function(name, what, ref, c) {
process.stdout.write(name);

if (typeof(c) !== 'boolean') {
c = true;
}

if (typeof(what) === 'function') {
what = what();
}
if (typeof(ref) === 'function') {
ref = ref();
}

if ((what === ref) === c) {
process.stdout.write(' ✓');
} else {
process.stdout.write(' ⛝\n');
process.stdout.write(' ----> expected | ' + (typeof(ref) === 'string' ? ref.replace(/ /g, '·') + '\n' : ref + '\n'));
process.stdout.write(' ----> got | ' + (typeof(what) === 'string' ? what.replace(/ /g, '·') + '\n' : what + '\n'));
}
process.stdout.write('\n');
};



//the actual tests
securerandomstring(function(sr) {
test('generate a random string 32 chars long',
sr.length,
32
);
});

securerandomstring(function(sr) {
test('generate a random string 1 char long',
sr.length,
1
);
}, {length: 1});

securerandomstring(function(sr) {
test('generate a random string 256 chars long',
sr.length,
256
);
}, {length: 256});



Loading…
Cancel
Save