core/reset: check three words

closes #289
pull/337/head
Tomas Susanka 5 years ago
parent 96cdd886bc
commit db0847282a

@ -68,15 +68,16 @@ async def confirm_backup_again(ctx):
async def _confirm_share_words(ctx, share_index, share_words): async def _confirm_share_words(ctx, share_index, share_words):
numbered = list(enumerate(share_words)) numbered = list(enumerate(share_words))
# check a word from the first half # check three words
first_half = numbered[: len(numbered) // 2] third = len(numbered) // 3
if not await _confirm_word(ctx, share_index, first_half): # if the num of words is not dividable by 3 let's add 1
return False # to have more words at the beggining and to check all of them
if len(numbered) % 3:
# check a word from the second half third += 1
second_half = numbered[len(numbered) // 2 :]
if not await _confirm_word(ctx, share_index, second_half): for part in utils.chunks(numbered, third):
return False if not await _confirm_word(ctx, share_index, part):
return False
return True return True

@ -84,7 +84,7 @@ class TestMsgResetDeviceT2(TrezorTest):
self.client.debug.press_yes() self.client.debug.press_yes()
# check share # check share
for _ in range(2): for _ in range(3):
time.sleep(1) time.sleep(1)
index = self.client.debug.state().reset_word_pos index = self.client.debug.state().reset_word_pos
self.client.debug.input(words[index]) self.client.debug.input(words[index])

@ -64,7 +64,7 @@ class TestMsgResetDeviceT2(TrezorTest):
self.client.debug.press_yes() self.client.debug.press_yes()
# check backup words # check backup words
for _ in range(2): for _ in range(3):
time.sleep(1) time.sleep(1)
index = self.client.debug.state().reset_word_pos index = self.client.debug.state().reset_word_pos
self.client.debug.input(words[index]) self.client.debug.input(words[index])
@ -169,7 +169,7 @@ class TestMsgResetDeviceT2(TrezorTest):
self.client.debug.press_yes() self.client.debug.press_yes()
# check backup words # check backup words
for _ in range(2): for _ in range(3):
time.sleep(1) time.sleep(1)
index = self.client.debug.state().reset_word_pos index = self.client.debug.state().reset_word_pos
self.client.debug.input(words[index]) self.client.debug.input(words[index])

Loading…
Cancel
Save