Added getEntropy endpoint at /entropy

This commit is contained in:
MrDHat 2013-07-04 03:16:22 +05:30
Родитель 0ff1610a20
Коммит f2779a4907
2 изменённых файлов: 28 добавлений и 1 удалений

Просмотреть файл

@ -6,6 +6,7 @@ const Hapi = require('hapi');
const fs = require('fs');
const CC = require('compute-cluster');
const config = require('../lib/config').root();
const crypto = require('crypto');
const hour = 1000 * 60 * 60;
const T = Hapi.types;
@ -40,6 +41,13 @@ var routes = [
}
}
},
{
method: 'GET',
path: '/entropy',
config: {
handler: getEntropy
}
},
{
method: 'POST',
path: '/create',
@ -295,6 +303,12 @@ function resetPassword(request) {
);
}
function getEntropy(request) {
crypto.randomBytes(32, function(err, buf) {
request.reply(buf.toString('base64'));
});
}
module.exports = {
routes: routes
};

Просмотреть файл

@ -18,7 +18,7 @@ var TEST_KB_NEW = 'super secret!';
var TEST_WRAPKB = crypto.randomBytes(32).toString('base64');
describe('user', function() {
var sessionId, accountToken, pubkey, signToken, resetToken;
var sessionId, accountToken, pubkey, signToken, resetToken, entropy;
it('should create a new account', function(done) {
testClient.makeRequest('POST', '/create', {
@ -383,5 +383,18 @@ describe('user', function() {
});
});
it('should generate 32 bytes of random crypto entropy', function(done) {
testClient.makeRequest('GET', '/entropy', function(res) {
try {
entropy = res.result;
assert.equal(res.statusCode, 200);
assert.equal(entropy.length, 44);
} catch (e) {
return done(e);
}
done();
});
});
});