Browse Source
wallet: encrypt storage by default
notably, now also in kivy
hard-fail-on-bad-server-string
SomberNight
5 years ago
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
5 changed files with
6 additions and
6 deletions
-
electrum/base_wizard.py
-
electrum/commands.py
-
electrum/gui/kivy/uix/dialogs/installwizard.py
-
electrum/gui/qt/main_window.py
-
electrum/wallet.py
|
|
@ -34,7 +34,7 @@ from . import bitcoin |
|
|
|
from . import keystore |
|
|
|
from . import mnemonic |
|
|
|
from .bip32 import is_bip32_derivation, xpub_type, normalize_bip32_derivation, BIP32Node |
|
|
|
from .keystore import bip44_derivation, purpose48_derivation, Hardware_KeyStore |
|
|
|
from .keystore import bip44_derivation, purpose48_derivation, Hardware_KeyStore, KeyStore |
|
|
|
from .wallet import (Imported_Wallet, Standard_Wallet, Multisig_Wallet, |
|
|
|
wallet_types, Wallet, Abstract_Wallet) |
|
|
|
from .storage import (WalletStorage, StorageEncryptionVersion, |
|
|
@ -85,7 +85,7 @@ class BaseWizard(Logger): |
|
|
|
self.pw_args = None # type: Optional[WizardWalletPasswordSetting] |
|
|
|
self._stack = [] # type: List[WizardStackItem] |
|
|
|
self.plugin = None # type: Optional[BasePlugin] |
|
|
|
self.keystores = [] |
|
|
|
self.keystores = [] # type: List[KeyStore] |
|
|
|
self.is_kivy = config.get('gui') == 'kivy' |
|
|
|
self.seed_type = None |
|
|
|
|
|
|
|
|
|
@ -252,7 +252,7 @@ class Commands: |
|
|
|
if wallet.storage.is_encrypted_with_hw_device() and new_password: |
|
|
|
raise Exception("Can't change the password of a wallet encrypted with a hw device.") |
|
|
|
b = wallet.storage.is_encrypted() |
|
|
|
wallet.update_password(password, new_password, b) |
|
|
|
wallet.update_password(password, new_password, encrypt_storage=b) |
|
|
|
wallet.storage.write() |
|
|
|
return {'password':wallet.has_password()} |
|
|
|
|
|
|
|
|
|
@ -1151,7 +1151,7 @@ class InstallWizard(BaseWizard, Widget): |
|
|
|
return |
|
|
|
def on_success(old_pin, pin): |
|
|
|
assert old_pin is None |
|
|
|
run_next(pin, False) |
|
|
|
run_next(pin, True) |
|
|
|
def on_failure(): |
|
|
|
self.show_error(_('PIN mismatch')) |
|
|
|
self.run('request_password', run_next) |
|
|
|
|
|
@ -2107,7 +2107,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger): |
|
|
|
if not ok: |
|
|
|
return |
|
|
|
try: |
|
|
|
self.wallet.update_password(old_password, new_password, encrypt_file) |
|
|
|
self.wallet.update_password(old_password, new_password, encrypt_storage=encrypt_file) |
|
|
|
except InvalidPassword as e: |
|
|
|
self.show_error(str(e)) |
|
|
|
return |
|
|
|
|
|
@ -1708,7 +1708,7 @@ class Abstract_Wallet(AddressSynchronizer, ABC): |
|
|
|
self.keystore.check_password(password) |
|
|
|
self.storage.check_password(password) |
|
|
|
|
|
|
|
def update_password(self, old_pw, new_pw, encrypt_storage=False): |
|
|
|
def update_password(self, old_pw, new_pw, *, encrypt_storage: bool = True): |
|
|
|
if old_pw is None and self.has_password(): |
|
|
|
raise InvalidPassword() |
|
|
|
self.check_password(old_pw) |
|
|
|