diff --git a/js/controllers/signin.js b/js/controllers/signin.js index 06584f8f6..04eedc1c7 100644 --- a/js/controllers/signin.js +++ b/js/controllers/signin.js @@ -31,22 +31,19 @@ angular.module('copay.signin').controller('SigninController', walletFactory.network.on('badSecret', function() { }); - walletFactory.joinCreateSession($scope.connectionId, $scope.nickname, function(err,w) { + var passphrase = Passphrase.getBase64($scope.joinPassword); + walletFactory.joinCreateSession($scope.connectionId, $scope.nickname, passphrase, function(err,w) { $scope.loading = false; - if (err || !w || !$scope.joinPassword) { + if (err || !w) { if (err === 'joinError') $rootScope.flashMessage = { message: 'Can not find peer'}; else if (err === 'badSecret') $rootScope.flashMessage = { message: 'Bad secret secret string', type: 'error'}; - else if (!$scope.joinPassword) - $rootScope.flashMessage = { message: 'Enter your wallet password', type: 'error' }; else $rootScope.flashMessage = { message: 'Unknown error', type: 'error'}; controllerUtils.onErrorDigest(); } else { - var passphrase = Passphrase.getBase64($scope.joinPassword); - w.storage._setPassphrase(passphrase); controllerUtils.startNetwork(w); } }); diff --git a/js/models/core/Passphrase.js b/js/models/core/Passphrase.js index 57f765cd1..12a9edf17 100644 --- a/js/models/core/Passphrase.js +++ b/js/models/core/Passphrase.js @@ -2,7 +2,7 @@ function Passphrase(config) { config = config || {}; - this.salt = config.storageSalt; + this.salt = config.storageSalt || 'mjuBtGybi/4='; this.iterations = config.iterations || 1000; }; diff --git a/js/models/core/WalletFactory.js b/js/models/core/WalletFactory.js index a76446372..a757c340a 100644 --- a/js/models/core/WalletFactory.js +++ b/js/models/core/WalletFactory.js @@ -153,7 +153,7 @@ WalletFactory.prototype.remove = function(walletId) { }; -WalletFactory.prototype.joinCreateSession = function(secret, nickname, cb) { +WalletFactory.prototype.joinCreateSession = function(secret, nickname, passphrase, cb) { var self = this; var s; @@ -162,7 +162,7 @@ WalletFactory.prototype.joinCreateSession = function(secret, nickname, cb) { } catch (e) { return cb('badSecret'); } - + //Create our PrivateK var privateKey = new PrivateKey({ networkName: this.networkName }); this.log('\t### PrivateKey Initialized'); @@ -180,6 +180,7 @@ WalletFactory.prototype.joinCreateSession = function(secret, nickname, cb) { if (data.type ==='walletId') { data.opts.privateKey = privateKey; data.opts.nickname = nickname; + data.opts.passphrase = passphrase; var w = self.open(data.walletId, data.opts); w.firstCopayerId = s.pubKey; return cb(null, w); diff --git a/js/models/storage/LocalEncrypted.js b/js/models/storage/LocalEncrypted.js index 470c9f39f..14a05ad12 100644 --- a/js/models/storage/LocalEncrypted.js +++ b/js/models/storage/LocalEncrypted.js @@ -47,9 +47,11 @@ Storage.prototype._read = function(k) { var ret; try { ret = localStorage.getItem(k); - ret = this._decrypt(ret); - ret = ret.toString(CryptoJS.enc.Utf8); - ret = JSON.parse(ret); + if (ret){ + ret = this._decrypt(ret); + ret = ret.toString(CryptoJS.enc.Utf8); + ret = JSON.parse(ret); + } } catch (e) { console.log('Error while decrypting: '+e); throw e;