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
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):

View File

@@ -302,7 +302,12 @@ class SeedLayout(QVBoxLayout):
self.prev_share_btn.show()
self.next_share_btn.show()
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):
if not self.slip39_mnemonics[self.slip39_mnemonic_index]:

View File

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

View File

@@ -1,5 +1,6 @@
from typing import NamedTuple, Optional
import json
import os
from electrum import keystore
from electrum import mnemonic
@@ -197,7 +198,8 @@ class Test_slip39(ElectrumTestCase):
""" Test SLIP39 test vectors. """
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)
for description, mnemonics, expected_secret in vectors:
if expected_secret: