master
Raw Download raw file
 1"use strict";
 2
 3var crypto = require('crypto');
 4
 5var sum = exports.sum = function (array) {
 6  return array.reduce(function (a, b) { return a + b; });
 7}
 8
 9exports.average = function (array) {
10  return sum(array) / array.length;
11}
12
13exports.sign = function (nonce, secret) {
14  var hmacCreator = crypto.createHmac('sha256', secret);
15  hmacCreator.update(nonce);
16  return hmacCreator.digest('hex');
17}
18
19exports.hash = function (value) {
20  var hashCreator = crypto.createHash('sha256');
21  hashCreator.update(value);
22  return hashCreator.digest('hex');
23}
24
25exports.generateRandom = function (byteCount) {
26  var buf = crypto.randomBytes(byteCount);
27  return buf.toString('hex');
28}
29
30exports.randString = function (randGenerator, length) {
31  var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ';
32  length = length || 32;
33  var string = '';
34  var charIndex;
35  var randomNumber;
36  for (charIndex = 0; charIndex < length; charIndex++) {
37    randomNumber = Math.floor(randGenerator() * chars.length);
38    string += chars.substring(randomNumber, randomNumber + 1);
39  }
40  return string;
41}