This commit is contained in:
Ondrej Novy 2014-01-09 18:19:13 -08:00
commit a3a94ff545
2 changed files with 26 additions and 20 deletions

View file

@ -1619,21 +1619,24 @@ if (typeof Crypto == "undefined" || !Crypto.util) {
if (sr.pool == null) { if (sr.pool == null) {
sr.pool = new Array(); sr.pool = new Array();
sr.pptr = 0; sr.pptr = 0;
var t;
// Use webcrypto if available
if (window.crypto && window.crypto.getRandomValues) { if (window.crypto && window.crypto.getRandomValues) {
try { try {
// Use webcrypto if available var ua = new Uint8Array(sr.poolSize);
var ua = new Uint8Array(32);
window.crypto.getRandomValues(ua); window.crypto.getRandomValues(ua);
for (t = 0; t < 32; ++t) for (var i = 0 ; i < sr.poolSize ; i++) {
sr.pool[sr.pptr++] = ua[t]; sr.pool[i] = ua[i];
}
} catch (e) { alert(e); } } 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.pptr = 0;
sr.seedTime(); sr.seedTime();
// entropy // entropy

View file

@ -132,21 +132,24 @@
if (sr.pool == null) { if (sr.pool == null) {
sr.pool = new Array(); sr.pool = new Array();
sr.pptr = 0; sr.pptr = 0;
var t;
// Use webcrypto if available
if (window.crypto && window.crypto.getRandomValues) { if (window.crypto && window.crypto.getRandomValues) {
try { try {
// Use webcrypto if available var ua = new Uint8Array(sr.poolSize);
var ua = new Uint8Array(32);
window.crypto.getRandomValues(ua); window.crypto.getRandomValues(ua);
for (t = 0; t < 32; ++t) for (var i = 0 ; i < sr.poolSize ; i++) {
sr.pool[sr.pptr++] = ua[t]; sr.pool[i] = ua[i];
}
} catch (e) { alert(e); } } 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.pptr = 0;
sr.seedTime(); sr.seedTime();
// entropy // entropy