master
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}