diff --git a/bitaddress.org.html b/bitaddress.org.html
index 58fce80..3ecc97d 100644
--- a/bitaddress.org.html
+++ b/bitaddress.org.html
@@ -1619,21 +1619,24 @@ if (typeof Crypto == "undefined" || !Crypto.util) {
if (sr.pool == null) {
sr.pool = new Array();
sr.pptr = 0;
- var t;
+
+ // Use webcrypto if available
if (window.crypto && window.crypto.getRandomValues) {
try {
- // Use webcrypto if available
- var ua = new Uint8Array(32);
+ var ua = new Uint8Array(sr.poolSize);
window.crypto.getRandomValues(ua);
- for (t = 0; t < 32; ++t)
- sr.pool[sr.pptr++] = ua[t];
+ for (var i = 0 ; i < sr.poolSize ; i++) {
+ sr.pool[i] = ua[i];
+ }
} catch (e) { alert(e); }
+ } else {
+ for (var i = 0 ; i < sr.poolSize ; i++) { // extract some randomness from Math.random()
+ var t = Math.floor(65536 * Math.random());
+ sr.pool[i] = t >>> 8;
+ sr.pool[i] = t & 255;
+ }
}
- while (sr.pptr < sr.poolSize) { // extract some randomness from Math.random()
- t = Math.floor(65536 * Math.random());
- sr.pool[sr.pptr++] = t >>> 8;
- sr.pool[sr.pptr++] = t & 255;
- }
+
sr.pptr = 0;
sr.seedTime();
// entropy
diff --git a/src/securerandom.js b/src/securerandom.js
index 2637647..6fa56c0 100644
--- a/src/securerandom.js
+++ b/src/securerandom.js
@@ -132,21 +132,24 @@
if (sr.pool == null) {
sr.pool = new Array();
sr.pptr = 0;
- var t;
+
+ // Use webcrypto if available
if (window.crypto && window.crypto.getRandomValues) {
try {
- // Use webcrypto if available
- var ua = new Uint8Array(32);
+ var ua = new Uint8Array(sr.poolSize);
window.crypto.getRandomValues(ua);
- for (t = 0; t < 32; ++t)
- sr.pool[sr.pptr++] = ua[t];
+ for (var i = 0 ; i < sr.poolSize ; i++) {
+ sr.pool[i] = ua[i];
+ }
} catch (e) { alert(e); }
+ } else {
+ for (var i = 0 ; i < sr.poolSize ; i++) { // extract some randomness from Math.random()
+ var t = Math.floor(65536 * Math.random());
+ sr.pool[i] = t >>> 8;
+ sr.pool[i] = t & 255;
+ }
}
- while (sr.pptr < sr.poolSize) { // extract some randomness from Math.random()
- t = Math.floor(65536 * Math.random());
- sr.pool[sr.pptr++] = t >>> 8;
- sr.pool[sr.pptr++] = t & 255;
- }
+
sr.pptr = 0;
sr.seedTime();
// entropy