browser.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. (function() {
  2. var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
  3. var __module = nodeEnv ? module : {exports:{}};
  4. var __filename = 'preview-scripts/__node_modules/randombytes/browser.js';
  5. var __require = nodeEnv ? function (request) {
  6. return cc.require(request);
  7. } : function (request) {
  8. return __quick_compile_project__.require(request, __filename);
  9. };
  10. function __define (exports, require, module) {
  11. if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}(function (process,global){
  12. 'use strict'
  13. // limit of Crypto.getRandomValues()
  14. // https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues
  15. var MAX_BYTES = 65536
  16. // Node supports requesting up to this number of bytes
  17. // https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48
  18. var MAX_UINT32 = 4294967295
  19. function oldBrowser () {
  20. throw new Error('Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11')
  21. }
  22. var Buffer = require('safe-buffer').Buffer
  23. var crypto = global.crypto || global.msCrypto
  24. if (crypto && crypto.getRandomValues) {
  25. module.exports = randomBytes
  26. } else {
  27. module.exports = oldBrowser
  28. }
  29. function randomBytes (size, cb) {
  30. // phantomjs needs to throw
  31. if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')
  32. var bytes = Buffer.allocUnsafe(size)
  33. if (size > 0) { // getRandomValues fails on IE if size == 0
  34. if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues
  35. // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
  36. for (var generated = 0; generated < size; generated += MAX_BYTES) {
  37. // buffer.slice automatically checks if the end is past the end of
  38. // the buffer so we don't have to here
  39. crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))
  40. }
  41. } else {
  42. crypto.getRandomValues(bytes)
  43. }
  44. }
  45. if (typeof cb === 'function') {
  46. return process.nextTick(function () {
  47. cb(null, bytes)
  48. })
  49. }
  50. return bytes
  51. }
  52. }).call(this,require("../process/browser.js"),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
  53. }
  54. if (nodeEnv) {
  55. __define(__module.exports, __require, __module);
  56. }
  57. else {
  58. __quick_compile_project__.registerModuleFunc(__filename, function () {
  59. __define(__module.exports, __require, __module);
  60. });
  61. }
  62. })();