You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
674 B
27 lines
674 B
2 years ago
|
var random = require('./random');
|
||
|
var isBrowser = require('./isBrowser');
|
||
|
var isNode = require('./isNode');
|
||
|
exports = function(size) {
|
||
|
var ret = new Uint8Array(size);
|
||
|
for (var i = 0; i < size; i++) ret[i] = random(0, 255);
|
||
|
return ret;
|
||
|
};
|
||
|
var crypto;
|
||
|
if (isBrowser) {
|
||
|
crypto = window.crypto || window.msCrypto;
|
||
|
if (crypto) {
|
||
|
exports = function(size) {
|
||
|
var ret = new Uint8Array(size);
|
||
|
crypto.getRandomValues(ret);
|
||
|
return ret;
|
||
|
};
|
||
|
}
|
||
|
} else if (isNode) {
|
||
|
crypto = eval('require')('crypto');
|
||
|
exports = function(size) {
|
||
|
return crypto.randomBytes(size);
|
||
|
};
|
||
|
}
|
||
|
|
||
|
module.exports = exports;
|