{"version":3,"file":"rng.mjs","sources":["../../../../../../../packages/utils/jsencrypt/jselib/jsbn/rng.js"],"sourcesContent":["// Random number generator - requires a PRNG backend, e.g. prng4.js\nimport { prng_newstate, rng_psize } from './prng4'\nvar rng_state\nvar rng_pool = null\nvar rng_pptr\n// Initialize the pool with junk if needed.\nif (rng_pool == null) {\n\trng_pool = []\n\trng_pptr = 0\n\tvar t = void 0\n\tif (typeof window !== 'undefined' && window.crypto && window.crypto.getRandomValues) {\n\t\t// Extract entropy (2048 bits) from RNG if available\n\t\tvar z = new Uint32Array(256)\n\t\twindow.crypto.getRandomValues(z)\n\t\tfor (t = 0; t < z.length; ++t) {\n\t\t\trng_pool[rng_pptr++] = z[t] & 255\n\t\t}\n\t}\n\t// Use mouse events for entropy, if we do not have enough entropy by the time\n\t// we need it, entropy will be generated by Math.random.\n\tvar count = 0\n\tvar onMouseMoveListener_1 = function (ev) {\n\t\tcount = count || 0\n\t\tif (count >= 256 || rng_pptr >= rng_psize) {\n\t\t\tif (window.removeEventListener) {\n\t\t\t\twindow.removeEventListener('mousemove', onMouseMoveListener_1, false)\n\t\t\t} else if (window.detachEvent) {\n\t\t\t\twindow.detachEvent('onmousemove', onMouseMoveListener_1)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\ttry {\n\t\t\tvar mouseCoordinates = ev.x + ev.y\n\t\t\trng_pool[rng_pptr++] = mouseCoordinates & 255\n\t\t\tcount += 1\n\t\t} catch (e) {\n\t\t\t// Sometimes Firefox will deny permission to access event properties for some reason. Ignore.\n\t\t}\n\t}\n\tif (typeof window !== 'undefined') {\n\t\tif (window.addEventListener) {\n\t\t\twindow.addEventListener('mousemove', onMouseMoveListener_1, false)\n\t\t} else if (window.attachEvent) {\n\t\t\twindow.attachEvent('onmousemove', onMouseMoveListener_1)\n\t\t}\n\t}\n}\nfunction rng_get_byte() {\n\tif (rng_state == null) {\n\t\trng_state = prng_newstate()\n\t\t// At this point, we may not have collected enough entropy.  If not, fall back to Math.random\n\t\twhile (rng_pptr < rng_psize) {\n\t\t\tvar random = Math.floor(65536 * Math.random())\n\t\t\trng_pool[rng_pptr++] = random & 255\n\t\t}\n\t\trng_state.init(rng_pool)\n\t\tfor (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {\n\t\t\trng_pool[rng_pptr] = 0\n\t\t}\n\t\trng_pptr = 0\n\t}\n\t// TODO: allow reseeding after first request\n\treturn rng_state.next()\n}\nvar SecureRandom = /** @class */ (function () {\n\tfunction SecureRandom() {}\n\tSecureRandom.prototype.nextBytes = function (ba) {\n\t\tfor (var i = 0; i < ba.length; ++i) {\n\t\t\tba[i] = rng_get_byte()\n\t\t}\n\t}\n\treturn SecureRandom\n})()\nexport { SecureRandom }\n"],"names":["SecureRandom"],"mappings":"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"}