fixing import wallet
This commit is contained in:
parent
69daee6ed1
commit
e614b375e7
3 changed files with 36 additions and 11 deletions
|
|
@ -30,7 +30,7 @@ angular.module('copayApp.controllers').controller('ImportController',
|
|||
$rootScope.iden.importEncryptedWallet(encryptedObj, password, skipFields, opts, function(err, w) {
|
||||
if (!w) {
|
||||
$scope.loading = false;
|
||||
notification.error('Error', err || 'Wrong password');
|
||||
$scope.error = 'Wrong password';
|
||||
$rootScope.$digest();
|
||||
return;
|
||||
}
|
||||
|
|
@ -47,7 +47,7 @@ angular.module('copayApp.controllers').controller('ImportController',
|
|||
updateStatus('Importing wallet - We are almost there...');
|
||||
if (err) {
|
||||
$scope.loading = false;
|
||||
notification.error('Error', 'Error updating indexes: ' + err);
|
||||
$scope.error = 'Error updating indexes: ' + err;
|
||||
}
|
||||
controllerUtils.installWalletHandlers($scope, w);
|
||||
controllerUtils.setFocusedWallet(w);
|
||||
|
|
@ -72,7 +72,7 @@ angular.module('copayApp.controllers').controller('ImportController',
|
|||
function(err, wallet) {
|
||||
if (err) {
|
||||
$scope.loading = false;
|
||||
notification.error('Error', 'Could not read wallet. Please check your password');
|
||||
$scope.error = 'Could not read wallet. Please check your password';
|
||||
} else {
|
||||
controllerUtils.installWalletHandlers($scope, wallet);
|
||||
controllerUtils.setFocusedWallet(wallet);
|
||||
|
|
@ -89,7 +89,7 @@ angular.module('copayApp.controllers').controller('ImportController',
|
|||
|
||||
if (form.$invalid) {
|
||||
$scope.loading = false;
|
||||
notification.error('Error', 'There is an error in the form.');
|
||||
$scope.error = 'There is an error in the form';
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -104,8 +104,7 @@ angular.module('copayApp.controllers').controller('ImportController',
|
|||
|
||||
if (!backupFile && !backupText) {
|
||||
$scope.loading = false;
|
||||
notification.error('Error', 'Please, select your backup file');
|
||||
$scope.loading = false;
|
||||
$scope.error = 'Please, select your backup file';
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -115,7 +114,7 @@ angular.module('copayApp.controllers').controller('ImportController',
|
|||
copay.Compatibility.importEncryptedWallet($rootScope.iden, backupText, $scope.password, {},
|
||||
function(err, wallet) {
|
||||
if (err) {
|
||||
notification.error('Error', 'Could not read wallet. Please check your password');
|
||||
$scope.error = 'Could not read wallet. Please check your password';
|
||||
} else {
|
||||
copay.Compatibility.deleteOldWallet(backupOldWallet);
|
||||
controllerUtils.installWalletHandlers($scope, wallet);
|
||||
|
|
|
|||
|
|
@ -288,7 +288,18 @@ Identity.prototype.close = function(cb) {
|
|||
Identity.prototype.importEncryptedWallet = function(cypherText, password, opts, cb) {
|
||||
var crypto = opts.cryptoUtil || cryptoUtil;
|
||||
var obj = crypto.decrypt(password, cypherText);
|
||||
if (!obj) return cb(new Error('Could not decrypt'));
|
||||
console.log('[Identity.js.290:obj:]',obj); //TODO
|
||||
|
||||
if (!obj) {
|
||||
// 0.7.3 broken KDF
|
||||
log.debug('Trying legacy encryption...');
|
||||
var passphrase = crypto.kdf(password, 'mjuBtGybi/4=', 100);
|
||||
obj = crypto.decrypt(passphrase, ejson);
|
||||
}
|
||||
console.log('[Identity.js.300:obj:]',obj); //TOD
|
||||
|
||||
if (!obj)
|
||||
return cb(new Error('Could not decrypt'));
|
||||
try {
|
||||
obj = JSON.parse(obj);
|
||||
} catch (e) {
|
||||
|
|
@ -338,13 +349,21 @@ Identity.prototype.closeWallet = function(wallet, cb) {
|
|||
});
|
||||
};
|
||||
|
||||
Identity.importFromEncryptedFullJson = function(str, password, opts, cb) {
|
||||
Identity.importFromEncryptedFullJson = function(ejson, password, opts, cb) {
|
||||
var crypto = opts.cryptoUtil || cryptoUtil;
|
||||
|
||||
var str = crypto.decrypt(password, str);
|
||||
var str = crypto.decrypt(password, ejson);
|
||||
|
||||
if (!str) {
|
||||
return cb('BADSTR');
|
||||
// 0.7.3 broken KDF
|
||||
log.debug('Trying legacy encryption...');
|
||||
var passphrase = crypto.kdf(password, 'mjuBtGybi/4=', 100);
|
||||
str = crypto.decrypt(passphrase, ejson);
|
||||
}
|
||||
|
||||
if (!str)
|
||||
return cb('BADSTR');
|
||||
|
||||
return Identity.importFromFullJson(str, password, opts, cb);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,13 @@
|
|||
<div class="large-12 columns">
|
||||
<div class="panel">
|
||||
<form name="importForm" ng-submit="import(importForm)" novalidate>
|
||||
<p class="text-warning size-12"
|
||||
ng-show="error">
|
||||
<i class="fi-x"></i>
|
||||
{{error|translate}}
|
||||
</p>
|
||||
|
||||
|
||||
<div ng-show="!is_iOS && !backupOldWallet">
|
||||
<legend for="backupFile" class="m10b">
|
||||
<span translate>Choose backup file from your computer</span> <i class="fi-laptop"></i>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue