1234567891011121314151617181920212223242526272829303132333435363738 |
- 'use strict';
- /* global window */
- /**
- * Normalizes our expected stringified form of a function across versions of node
- * @param {Function} fn The function to stringify
- */
- function normalizedFunctionString(fn) {
- return fn.toString().replace('function(', 'function (');
- }
- function insecureRandomBytes(size) {
- const result = new Uint8Array(size);
- for (let i = 0; i < size; ++i) result[i] = Math.floor(Math.random() * 256);
- return result;
- }
- let randomBytes = insecureRandomBytes;
- if (typeof window !== 'undefined' && window.crypto && window.crypto.getRandomValues) {
- randomBytes = size => window.crypto.getRandomValues(new Uint8Array(size));
- } else {
- try {
- randomBytes = require('crypto').randomBytes;
- } catch (e) {
- // keep the fallback
- }
- // NOTE: in transpiled cases the above require might return null/undefined
- if (randomBytes == null) {
- randomBytes = insecureRandomBytes;
- }
- }
- module.exports = {
- normalizedFunctionString,
- randomBytes
- };
|