1
0

slip39: follow-ups

- fix kivy wizard restore-from-seed
- qt seed dialog: disable "next share" if current share is invalid
- fix tests: file paths should not depend on $PWD (working dir)
This commit is contained in:
SomberNight
2021-06-22 19:14:47 +02:00
parent 2de82a2fd6
commit 60e0cd65cf
4 changed files with 12 additions and 4 deletions

View File

@@ -989,7 +989,8 @@ class RestoreSeedDialog(WizardDialog):
tis.focus = False tis.focus = False
def get_params(self, b): def get_params(self, b):
return (self.get_text(), self.is_bip39, self.is_ext) seed_type = 'bip39' if self.is_bip39 else 'electrum'
return (self.get_text(), seed_type, self.is_ext)
class ConfirmSeedDialog(RestoreSeedDialog): class ConfirmSeedDialog(RestoreSeedDialog):

View File

@@ -302,7 +302,12 @@ class SeedLayout(QVBoxLayout):
self.prev_share_btn.show() self.prev_share_btn.show()
self.next_share_btn.show() self.next_share_btn.show()
self.prev_share_btn.setEnabled(self.slip39_mnemonic_index != 0) self.prev_share_btn.setEnabled(self.slip39_mnemonic_index != 0)
self.next_share_btn.setEnabled(self.slip39_mnemonic_index < len(self.slip39_mnemonics) - 1 or (bool(self.seed_e.text().strip()) and not finished)) self.next_share_btn.setEnabled(
# already pressed "prev" and undoing that:
self.slip39_mnemonic_index < len(self.slip39_mnemonics) - 1
# finished entering latest share and starting new one:
or (bool(self.seed_e.text().strip()) and not self.slip39_current_mnemonic_invalid and not finished)
)
def on_prev_share(self): def on_prev_share(self):
if not self.slip39_mnemonics[self.slip39_mnemonic_index]: if not self.slip39_mnemonics[self.slip39_mnemonic_index]:

View File

@@ -28,8 +28,8 @@ import hmac
from collections import defaultdict from collections import defaultdict
from hashlib import pbkdf2_hmac from hashlib import pbkdf2_hmac
from typing import Dict, Iterable, List, Optional, Set, Tuple from typing import Dict, Iterable, List, Optional, Set, Tuple
from electrum.i18n import _
from .i18n import _
from .mnemonic import Wordlist from .mnemonic import Wordlist
Indices = Tuple[int, ...] Indices = Tuple[int, ...]

View File

@@ -1,5 +1,6 @@
from typing import NamedTuple, Optional from typing import NamedTuple, Optional
import json import json
import os
from electrum import keystore from electrum import keystore
from electrum import mnemonic from electrum import mnemonic
@@ -197,7 +198,8 @@ class Test_slip39(ElectrumTestCase):
""" Test SLIP39 test vectors. """ """ Test SLIP39 test vectors. """
def test_slip39_vectors(self): def test_slip39_vectors(self):
with open("slip39-vectors.json", "r") as f: test_vector_file = os.path.join(os.path.dirname(__file__), "slip39-vectors.json")
with open(test_vector_file, "r") as f:
vectors = json.load(f) vectors = json.load(f)
for description, mnemonics, expected_secret in vectors: for description, mnemonics, expected_secret in vectors:
if expected_secret: if expected_secret: