1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-18 04:18:10 +00:00

tests: added shamir invalid seed dryrun test (#371)

tests: added shamir invalid seed dryrun test
This commit is contained in:
Tomas Susanka 2019-07-29 16:47:23 +02:00 committed by GitHub
commit 50a240dbc0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2,7 +2,10 @@ import time
import pytest
from trezorlib import debuglink, device, messages
from trezorlib import device, messages
from trezorlib.exceptions import TrezorFailure
from .conftest import setup_client
pytestmark = pytest.mark.skip_t1
@ -12,20 +15,16 @@ SHARES_20_2of3 = [
"crush merchant academic always course verdict rescue paces fridge museum energy solution space ladybug junction national biology game fawn coal",
]
INVALID_SHARES_20_2of3 = [
"gesture necklace academic acid civil round fiber buyer swing ancient jerky kitchen chest dining enjoy tension museum increase various rebuild",
"gesture necklace academic agency decrease justice ounce dragon shaped unknown material answer dress wrote smell family squeeze diet angry husband",
]
@setup_client(mnemonic=SHARES_20_2of3[0:2], passphrase=True)
def test_2of3_dryrun(client):
debug = client.debug
debuglink.load_device_by_mnemonic(
client,
mnemonic=SHARES_20_2of3[0:2],
pin="",
passphrase_protection=True,
label="test",
language="english",
skip_checksum=True,
)
def input_flow():
yield # Confirm Dryrun
debug.press_yes()
@ -50,6 +49,32 @@ def test_2of3_dryrun(client):
)
@setup_client(mnemonic=SHARES_20_2of3[0:2], passphrase=True)
def test_2of3_invalid_seed_dryrun(client):
debug = client.debug
def input_flow():
yield # Confirm Dryrun
debug.press_yes()
# run recovery flow
yield from enter_all_shares(debug, INVALID_SHARES_20_2of3)
# test fails because of different seed on device
with client, pytest.raises(
TrezorFailure, match=r"The seed does not match the one in the device"
):
client.set_input_flow(input_flow)
device.recover(
client,
passphrase_protection=False,
pin_protection=False,
label="label",
language="english",
dry_run=True,
type=messages.ResetDeviceBackupType.Slip39_Single_Group,
)
def enter_all_shares(debug, shares):
word_count = len(shares[0].split(" "))