diff --git a/js/controllers/home.js b/js/controllers/home.js index 64c6be50e..076156770 100644 --- a/js/controllers/home.js +++ b/js/controllers/home.js @@ -5,7 +5,7 @@ angular.module('copayApp.controllers').controller('HomeController', function($sc var _credentials, _firstpin; $scope.init = function() { $scope.isMobile = isMobile.any(); - $scope.attempt=0; + $scope.attempt = 0; // This is only for backwards compat, insight api should link to #!/confirmed directly if (getParam('confirmed')) { @@ -43,12 +43,12 @@ angular.module('copayApp.controllers').controller('HomeController', function($sc if (newValue === _firstpin) { _firstpin = null; $scope.createPin(newValue); - } else { + } else { $scope.$$childTail.setPinForm.newpin.$setViewValue(''); $scope.$$childTail.setPinForm.newpin.$render(); $scope.$$childTail.setPinForm.repeatpin.$setViewValue(''); $scope.$$childTail.setPinForm.repeatpin.$render(); - + _firstpin = null; $scope.askForPin = 1; $scope.error = 'Entered PINs were not equal. Try again'; @@ -62,7 +62,7 @@ angular.module('copayApp.controllers').controller('HomeController', function($sc return; } $rootScope.starting = true; - + $timeout(function() { var credentials = pinService.get(pin, function(err, credentials) { if (err || !credentials) { @@ -72,7 +72,7 @@ angular.module('copayApp.controllers').controller('HomeController', function($sc } $scope.open(credentials.email, credentials.password); }); - },100); + }, 100); }; $scope.openWallets = function() { @@ -98,7 +98,7 @@ angular.module('copayApp.controllers').controller('HomeController', function($sc $rootScope.starting = null; $scope.openWallets(); }); - },100); + }, 100); }; $scope.openWithCredentials = function(form) { @@ -128,7 +128,7 @@ angular.module('copayApp.controllers').controller('HomeController', function($sc if ((err.toString() || '').match('PNOTFOUND')) { $scope.error = 'Invalid email or password'; - if($scope.attempt++>1) { + if ($scope.attempt++ > 1) { var storage = $scope.usingLocalStorage ? 'this device storage' : 'cloud storage'; $scope.error = 'Invalid email or password. You are trying to sign in using ' + storage + '. Change it on settings is necessary.'; }; @@ -144,9 +144,9 @@ angular.module('copayApp.controllers').controller('HomeController', function($sc $scope.error = 'Unknown error'; } $rootScope.starting = false; - $timeout(function(){ + $timeout(function() { $rootScope.$digest(); - },1) + }, 1) return; } @@ -164,7 +164,9 @@ angular.module('copayApp.controllers').controller('HomeController', function($sc $scope.askForPin = 1; $rootScope.starting = false; $rootScope.hideNavigation = true; - $rootScope.$digest(); + $timeout(function() { + $rootScope.$digest(); + }, 1); return; } // no mobile diff --git a/js/models/Identity.js b/js/models/Identity.js index a55e1d667..281ae9202 100644 --- a/js/models/Identity.js +++ b/js/models/Identity.js @@ -377,6 +377,7 @@ Identity.prototype._cleanUp = function() { * @desc Closes the wallet and disconnects all services */ Identity.prototype.close = function() { + this._cleanUp(); this.emitAndKeepAlive('closed'); }; diff --git a/js/plugins/EncryptedInsightStorage.js b/js/plugins/EncryptedInsightStorage.js index 0148216c7..706d699de 100644 --- a/js/plugins/EncryptedInsightStorage.js +++ b/js/plugins/EncryptedInsightStorage.js @@ -10,6 +10,10 @@ function EncryptedInsightStorage(config) { inherits(EncryptedInsightStorage, InsightStorage); +EncryptedInsightStorage.prototype._brokenDecryptUndef = function(body) { + cryptoUtil.decrypt('undefined' + SEPARATOR + 'undefined', body); +}; + EncryptedInsightStorage.prototype._brokenDecrypt = function(body) { var key = cryptoUtil.kdf(this.password + this.email, 'mjuBtGybi/4=', 100); log.debug('Trying legacy decrypt') @@ -31,6 +35,10 @@ EncryptedInsightStorage.prototype.getItem = function(name, callback) { decryptedJson = self._brokenDecrypt(body); } + if (!decryptedJson) { + decryptedJson = self._brokenDecryptUndef(body); + } + if (!decryptedJson) { log.debug('Could not decrypt value.'); return callback('PNOTFOUND'); diff --git a/js/plugins/LocalStorage.js b/js/plugins/LocalStorage.js index 3583453ea..c1793c1b9 100644 --- a/js/plugins/LocalStorage.js +++ b/js/plugins/LocalStorage.js @@ -26,7 +26,8 @@ function LocalStorage(opts) { LocalStorage.prototype.init = function() {}; LocalStorage.prototype.setCredentials = function(email, password, opts) { - // NOP + this.email = email; + this.password = password; }; LocalStorage.prototype.getItem = function(k, cb) {