Use a worker to facilitate key generation

This commit is contained in:
lilia 2015-05-04 11:55:47 -07:00
parent f465bdddbf
commit 7d0aeac8cb
5 changed files with 14 additions and 18 deletions

View file

@ -139,7 +139,7 @@ module.exports = function(grunt) {
},
jscs: {
all: {
src: ['js/**/*.js', '!js/libtextsecure.js', '!js/components.js', 'test/**/*.js']
src: ['js/**/*.js', '!js/libtextsecure.js', '!js/libaxolotl-worker.js', '!js/components.js', 'test/**/*.js']
}
},
watch: {

View file

@ -37828,14 +37828,11 @@ axolotlInternal.RecipientRecord = function() {
encryptMessageFor: function(deviceObject, pushMessageContent) {
return axolotlInstance.encryptMessageFor(deviceObject, pushMessageContent);
},
generateKeys: function(count, progressCallback) {
if (textsecure.worker_path) {
axolotlInstance.startWorker(textsecure.worker_path);
}
return generateKeys(count, progressCallback).then(function(result) {
axolotlInstance.stopWorker();
return result;
});
startWorker: function() {
axolotlInstance.startWorker('/js/libaxolotl-worker.js');
},
stopWorker: function() {
axolotlInstance.stopWorker();
},
createIdentityKeyRecvSocket: function() {
return axolotlInstance.createIdentityKeyRecvSocket();

View file

@ -79,7 +79,6 @@
});
}
};
function createAccount(number, verificationCode, identityKeyPair, single_device) {
textsecure.storage.put('identityKey', identityKeyPair);
@ -119,6 +118,8 @@ function generateKeys(count, progressCallback) {
throw new Error('Invalid signedKeyId');
}
textsecure.protocol_wrapper.startWorker();
var store = textsecure.storage.axolotl;
var identityKey = store.getMyIdentityKey();
var result = { preKeys: [], identityKey: identityKey.pubKey };
@ -152,6 +153,7 @@ function generateKeys(count, progressCallback) {
textsecure.storage.put('maxPreKeyId', startId + count);
textsecure.storage.put('signedKeyId', signedKeyId + 1);
return Promise.all(promises).then(function() {
textsecure.protocol_wrapper.stopWorker();
return result;
});
}

View file

@ -55,14 +55,11 @@
encryptMessageFor: function(deviceObject, pushMessageContent) {
return axolotlInstance.encryptMessageFor(deviceObject, pushMessageContent);
},
generateKeys: function(count, progressCallback) {
if (textsecure.worker_path) {
axolotlInstance.startWorker(textsecure.worker_path);
}
return generateKeys(count, progressCallback).then(function(result) {
axolotlInstance.stopWorker();
return result;
});
startWorker: function() {
axolotlInstance.startWorker('/js/libaxolotl-worker.js');
},
stopWorker: function() {
axolotlInstance.stopWorker();
},
createIdentityKeyRecvSocket: function() {
return axolotlInstance.createIdentityKeyRecvSocket();