diff options
| author | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 22:54:37 +0300 | 
|---|---|---|
| committer | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 22:54:37 +0300 | 
| commit | 703e03aba33f234712206769f57717ba7d92d23d (patch) | |
| tree | 0041f04ccb75bd5379c764e9fe42249fffe75fc3 /node_modules/uuid/lib/rng-browser.js | |
| parent | ab6e257e6e9d9a483d7e86f220d8b209a2cd7753 (diff) | |
| download | FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.gz FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.zst  | |
Added export_allowed file to make repository visible in cgit
Diffstat (limited to 'node_modules/uuid/lib/rng-browser.js')
| -rw-r--r-- | node_modules/uuid/lib/rng-browser.js | 34 | 
1 files changed, 34 insertions, 0 deletions
diff --git a/node_modules/uuid/lib/rng-browser.js b/node_modules/uuid/lib/rng-browser.js new file mode 100644 index 0000000..6361fb8 --- /dev/null +++ b/node_modules/uuid/lib/rng-browser.js @@ -0,0 +1,34 @@ +// Unique ID creation requires a high quality random # generator.  In the +// browser this is a little complicated due to unknown quality of Math.random() +// and inconsistent support for the `crypto` API.  We do the best we can via +// feature-detection + +// getRandomValues needs to be invoked in a context where "this" is a Crypto +// implementation. Also, find the complete implementation of crypto on IE11. +var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || +                      (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); + +if (getRandomValues) { +  // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto +  var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef + +  module.exports = function whatwgRNG() { +    getRandomValues(rnds8); +    return rnds8; +  }; +} else { +  // Math.random()-based (RNG) +  // +  // If all else fails, use Math.random().  It's fast, but is of unspecified +  // quality. +  var rnds = new Array(16); + +  module.exports = function mathRNG() { +    for (var i = 0, r; i < 16; i++) { +      if ((i & 0x03) === 0) r = Math.random() * 0x100000000; +      rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; +    } + +    return rnds; +  }; +}  | 
