randomRequested is never turned off

This commit is contained in:
KAYLukas 2018-04-16 17:05:44 +02:00
parent f1714fd9b5
commit d0ed5134d7

View File

@ -34,7 +34,6 @@ importScripts('openpgp.js');
var openpgp = window.openpgp; var openpgp = window.openpgp;
var randomQueue = []; var randomQueue = [];
var randomRequested = false;
var MIN_SIZE_RANDOM_BUFFER = 40000; var MIN_SIZE_RANDOM_BUFFER = 40000;
var MAX_SIZE_RANDOM_BUFFER = 60000; var MAX_SIZE_RANDOM_BUFFER = 60000;
var MIN_SIZE_RANDOM_REQUEST = 20000; var MIN_SIZE_RANDOM_REQUEST = 20000;
@ -45,10 +44,9 @@ var MIN_SIZE_RANDOM_REQUEST = 20000;
*/ */
function randomCallback() { function randomCallback() {
if (!randomRequested) { if (!randomQueue.length) {
self.postMessage({ event: 'request-seed', amount: MAX_SIZE_RANDOM_BUFFER }); self.postMessage({ event: 'request-seed', amount: MAX_SIZE_RANDOM_BUFFER });
} }
randomRequested = true;
return new Promise(function(resolve, reject) { return new Promise(function(resolve, reject) {
randomQueue.push(resolve); randomQueue.push(resolve);
@ -134,7 +132,7 @@ function delegate(id, method, options) {
* @param {Object} event Contains event type and data * @param {Object} event Contains event type and data
*/ */
function response(event) { function response(event) {
if (!randomRequested && openpgp.crypto.random.randomBuffer.size < MIN_SIZE_RANDOM_BUFFER) { if (!randomQueue.length && openpgp.crypto.random.randomBuffer.size < MIN_SIZE_RANDOM_BUFFER) {
self.postMessage({ event: 'request-seed', amount: MIN_SIZE_RANDOM_REQUEST }); self.postMessage({ event: 'request-seed', amount: MIN_SIZE_RANDOM_REQUEST });
} }
self.postMessage(event, openpgp.util.getTransferables(event.data)); self.postMessage(event, openpgp.util.getTransferables(event.data));