clear private key from memory only when locked

This commit is contained in:
Kyle Spearrin 2017-06-05 16:01:29 -04:00
parent 96be646641
commit 5b6c8c3480
2 changed files with 13 additions and 5 deletions

View File

@ -285,13 +285,18 @@ function initCryptoService(constantsService) {
return deferred.promise; return deferred.promise;
}; };
CryptoService.prototype.clearPrivateKey = function () { CryptoService.prototype.clearPrivateKey = function (memoryOnly) {
var deferred = Q.defer(); var deferred = Q.defer();
_privateKey = null; _privateKey = null;
if (memoryOnly) {
deferred.resolve();
}
else {
chrome.storage.local.remove('encPrivateKey', function () { chrome.storage.local.remove('encPrivateKey', function () {
deferred.resolve(); deferred.resolve();
}); });
}
return deferred.promise; return deferred.promise;
}; };

View File

@ -68,8 +68,11 @@ function initLockService(self) {
} }
LockService.prototype.lock = function () { LockService.prototype.lock = function () {
Q.all([self.cryptoService.clearKey(), self.cryptoService.clearOrgKeys(true)]).then(function () { Q.all([
self.cryptoService.clearPrivateKey(); self.cryptoService.clearKey(),
self.cryptoService.clearOrgKeys(true),
self.cryptoService.clearPrivateKey(true)
]).then(function () {
self.setIcon(); self.setIcon();
self.folderService.clearCache(); self.folderService.clearCache();
self.loginService.clearCache(); self.loginService.clearCache();