fix(core/rust/ui): implement warning for PIN dialog

[no changelog]
pull/2266/head
Martin Milata 2 years ago
parent 3dcdffe203
commit 31e63f688e

@ -7,16 +7,14 @@ use crate::{
ui::{
component::{
base::ComponentExt, Child, Component, Event, EventCtx, Label, LabelStyle, Maybe, Never,
Pad,
Pad, TimerToken,
},
display,
event::TouchEvent,
geometry::{Alignment, Grid, Insets, Offset, Rect},
model_tt::{
component::{
button::{Button, ButtonContent, ButtonMsg, ButtonMsg::Clicked},
theme,
},
model_tt::component::{
button::{Button, ButtonContent, ButtonMsg, ButtonMsg::Clicked},
theme,
},
},
};
@ -51,6 +49,7 @@ pub struct PinKeyboard<T> {
cancel_btn: Child<Maybe<Button<&'static str>>>,
confirm_btn: Child<Button<&'static str>>,
digit_btns: [Child<Button<&'static str>>; DIGIT_COUNT],
warning_timer: Option<TimerToken>,
}
impl<T> PinKeyboard<T>
@ -92,6 +91,7 @@ where
.initially_enabled(false)
.into_child(),
digit_btns: Self::generate_digit_buttons(),
warning_timer: None,
}
}
@ -125,7 +125,7 @@ where
}
pub fn pin(&self) -> &str {
&self.textbox.inner().pin()
self.textbox.inner().pin()
}
}
@ -181,6 +181,19 @@ where
}
fn event(&mut self, ctx: &mut EventCtx, event: Event) -> Option<Self::Msg> {
match event {
// Set up timer to switch off warning prompt.
Event::Attach if self.major_warning.is_some() => {
self.warning_timer = Some(ctx.request_timer(Duration::from_secs(2)));
}
// Hide warning, show major prompt.
Event::Timer(token) if Some(token) == self.warning_timer => {
self.major_warning = None;
ctx.request_paint();
}
_ => {}
}
self.textbox.event(ctx, event);
if let Some(Clicked) = self.confirm_btn.event(ctx, event) {
return Some(PinKeyboardMsg::Confirmed);

@ -521,11 +521,15 @@ async def request_pin_on_device(
) -> str:
await button_request(ctx, "pin_device", code=ButtonRequestType.PinEntry)
warning = "Wrong PIN" if "Wrong" in prompt else None
if attempts_remaining is None:
subprompt = ""
elif attempts_remaining == 1:
prompt = "Enter PIN"
subprompt = "Last attempt"
else:
prompt = "Enter PIN"
subprompt = f"{attempts_remaining} tries left"
dialog = _RustLayout(
@ -533,7 +537,7 @@ async def request_pin_on_device(
prompt=prompt,
subprompt=subprompt,
allow_cancel=allow_cancel,
warning=None,
warning=warning,
)
)
while True:

@ -1626,7 +1626,7 @@
"TTui2_binance-test_sign_tx.py::test_binance_sign_message[message2-expected_response2]": "f03b50df7f4a161078fa903c44f37272961b70358d4014d30a12888e1fd2caf1",
"TTui2_bitcoin-test_authorize_coinjoin.py::test_cancel_authorization": "19660011f011d60cdc5d8d0ef80f5f39b08b399fa191c7b76bcd8ec2ed502676",
"TTui2_bitcoin-test_authorize_coinjoin.py::test_multisession_authorization": "de47c383715c638d17418856e965292a1550ee5d2282936d636ba6fd58525c9f",
"TTui2_bitcoin-test_authorize_coinjoin.py::test_sign_tx": "15cc41b74f1d70e9a5c7a9c7c05f9d267265ca79cd1614114cdc90128428c17b",
"TTui2_bitcoin-test_authorize_coinjoin.py::test_sign_tx": "47b8e0f1fb465daee6ab48d95c92b2b9afba3eb86187455d879a05bbd895825f",
"TTui2_bitcoin-test_authorize_coinjoin.py::test_wrong_coordinator": "19660011f011d60cdc5d8d0ef80f5f39b08b399fa191c7b76bcd8ec2ed502676",
"TTui2_bitcoin-test_bcash.py::test_attack_change_input": "493db455a2a705880cea9800818345de8dc4086ac1d0f92bb8f21c5eed094084",
"TTui2_bitcoin-test_bcash.py::test_send_bch_change": "493db455a2a705880cea9800818345de8dc4086ac1d0f92bb8f21c5eed094084",
@ -2500,20 +2500,20 @@
"TTui2_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "95a40f79fa7ffceb10e89b513c203b4937112b8d764cdba3c1df538355dc129c",
"TTui2_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "95a40f79fa7ffceb10e89b513c203b4937112b8d764cdba3c1df538355dc129c",
"TTui2_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "95a40f79fa7ffceb10e89b513c203b4937112b8d764cdba3c1df538355dc129c",
"TTui2_test_autolock.py::test_apply_auto_lock_delay": "9c9ac7c7918f608b71c8d696dd310aafd4f188cdf0201eb476210ac99f1fa0e4",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "9d265e3f00d8f59f11f0bdd1a5c911a1bd6e1c9e0ab154a52508e2de8f8aea8e",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "9d265e3f00d8f59f11f0bdd1a5c911a1bd6e1c9e0ab154a52508e2de8f8aea8e",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_out_of_range[4194304]": "9d265e3f00d8f59f11f0bdd1a5c911a1bd6e1c9e0ab154a52508e2de8f8aea8e",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_out_of_range[536871]": "9d265e3f00d8f59f11f0bdd1a5c911a1bd6e1c9e0ab154a52508e2de8f8aea8e",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_out_of_range[9]": "9d265e3f00d8f59f11f0bdd1a5c911a1bd6e1c9e0ab154a52508e2de8f8aea8e",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "ae4bf01c43de508bb07171599b780167028ced63062699a48487b491a39f80da",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "f62b179ca70b4c90446d3ee1414dd8b66187caab7d79563880c2caad91245020",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "ce49f08d0f8c3bb19fa348703df7be0167434e46513241450632be596b1021ac",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "b5e1d2f43cb2ee93fc1adc90ee66b35a4d7729cedeedef8d1184ad98bf14a0c2",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "d1f6ad6876b39d03335b213b48b00a28e14ace492192fdeac7ecb807f4772570",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "a553299c1dc3e14f3d7242f9b95ccab681290bed6eb06213155c83f0ba3d1ab7",
"TTui2_test_autolock.py::test_autolock_cancels_ui": "ae4bf01c43de508bb07171599b780167028ced63062699a48487b491a39f80da",
"TTui2_test_autolock.py::test_autolock_default_value": "a9e49c64578c22bbb7441c4385ae0e958cf2131f0ed6dd20107e883a2fd0e097",
"TTui2_test_autolock.py::test_apply_auto_lock_delay": "2dbb368e2831280e12c92d78abb15fbb7ce87681d91fd4dceeec8e96b14f427e",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "1eda1bb0dac1e0cd285b1face109de60cfd0e7ae4041b82b805cebc3be0db8f5",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "1eda1bb0dac1e0cd285b1face109de60cfd0e7ae4041b82b805cebc3be0db8f5",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_out_of_range[4194304]": "1eda1bb0dac1e0cd285b1face109de60cfd0e7ae4041b82b805cebc3be0db8f5",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_out_of_range[536871]": "1eda1bb0dac1e0cd285b1face109de60cfd0e7ae4041b82b805cebc3be0db8f5",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_out_of_range[9]": "1eda1bb0dac1e0cd285b1face109de60cfd0e7ae4041b82b805cebc3be0db8f5",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "4f7e1f2047c2d882b61c75cc26c3a7856f5020788804e1a62a96afe187bcc6ce",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "3f4fef3356f444429b0fddabd7bcb6bfd0fb570d4c6ba59d43204f4c54b81bca",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "ae85d88c54a512ec003020b11797ef538825d45b2ff10fa88315680e542d952f",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "53e094cf59d5ce0a817f684137ab9530d8e62a136e8d67447f84144e2d8758cf",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "23fbfe5edfe16d15532d47939c441cc6fa0b7ed62985dc2c410f2c2b15aed631",
"TTui2_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "496422405da3f20a12322b58e877f5b0c6e397aafbc0c1136ece66c5574923af",
"TTui2_test_autolock.py::test_autolock_cancels_ui": "4f7e1f2047c2d882b61c75cc26c3a7856f5020788804e1a62a96afe187bcc6ce",
"TTui2_test_autolock.py::test_autolock_default_value": "d786f99fea8e5016ec5bab8fcfc274430678f0efe1d543fd13dfc524b3a0a1d0",
"TTui2_test_basic.py::test_device_id_different": "eda4b0d20e968587db6348a94388333d32c5c331fabdca67432b4f1878100207",
"TTui2_test_basic.py::test_device_id_same": "f03b50df7f4a161078fa903c44f37272961b70358d4014d30a12888e1fd2caf1",
"TTui2_test_basic.py::test_features": "f03b50df7f4a161078fa903c44f37272961b70358d4014d30a12888e1fd2caf1",
@ -2524,15 +2524,16 @@
"TTui2_test_cancel.py::test_cancel_message_via_initialize[message1]": "f03b50df7f4a161078fa903c44f37272961b70358d4014d30a12888e1fd2caf1",
"TTui2_test_cancel.py::test_cancel_on_paginated": "f03b50df7f4a161078fa903c44f37272961b70358d4014d30a12888e1fd2caf1",
"TTui2_test_debuglink.py::test_softlock_instability": "88ecc7ad6482f78de33d68357fff2b2375973acb833294639711ce05b1a5cb99",
"TTui2_test_msg_applysettings.py::test_apply_homescreen_toif": "c185411eb5905ac91be1d3b957fb26df19f8a8a958e4f956971b1b65c831552a",
"TTui2_test_msg_applysettings.py::test_apply_homescreen_toif_fail[TOIf\\x80\\x00\\x80\\x00~\\x00\\x00\\x0-ba464b0c": "9d265e3f00d8f59f11f0bdd1a5c911a1bd6e1c9e0ab154a52508e2de8f8aea8e",
"TTui2_test_msg_applysettings.py::test_apply_homescreen_toif_fail[TOIf\\x90\\x00\\x90\\x00~XXXf\\x90\\x0-cb3c88da": "9d265e3f00d8f59f11f0bdd1a5c911a1bd6e1c9e0ab154a52508e2de8f8aea8e",
"TTui2_test_msg_applysettings.py::test_apply_homescreen_toif_fail[TOIg\\x90\\x00\\x90\\x00~\\x00\\x00\\x0-09cb7d43": "9d265e3f00d8f59f11f0bdd1a5c911a1bd6e1c9e0ab154a52508e2de8f8aea8e",
"TTui2_test_msg_applysettings.py::test_apply_settings": "66b8faa0ebdcf921563d43f12491fa489cbd1000c423b9fcf994d52d3b41a430",
"TTui2_test_msg_applysettings.py::test_apply_settings_passphrase": "046a2118468228af25683384c0852b1a5274e54164ba63abd79341f335dc9d96",
"TTui2_test_firmware_dump.py::test_firmware_dump_hash": "fae9c002f2bd1d55e6efbc423d809088946063d3f87fa1ef40875aecdf793cf6",
"TTui2_test_msg_applysettings.py::test_apply_homescreen_toif": "fb0b7a99c6881ad6bf3a27a09d0e37862a7419c6a10f65139ab3f4562c609d9e",
"TTui2_test_msg_applysettings.py::test_apply_homescreen_toif_fail[TOIf\\x80\\x00\\x80\\x00~\\x00\\x00\\x0-ba464b0c": "1eda1bb0dac1e0cd285b1face109de60cfd0e7ae4041b82b805cebc3be0db8f5",
"TTui2_test_msg_applysettings.py::test_apply_homescreen_toif_fail[TOIf\\x90\\x00\\x90\\x00~XXXf\\x90\\x0-cb3c88da": "1eda1bb0dac1e0cd285b1face109de60cfd0e7ae4041b82b805cebc3be0db8f5",
"TTui2_test_msg_applysettings.py::test_apply_homescreen_toif_fail[TOIg\\x90\\x00\\x90\\x00~\\x00\\x00\\x0-09cb7d43": "1eda1bb0dac1e0cd285b1face109de60cfd0e7ae4041b82b805cebc3be0db8f5",
"TTui2_test_msg_applysettings.py::test_apply_settings": "6748500ad84c1f505645ba1392b882e0d7d43d9e6247d48b59dacfcb9a1ee294",
"TTui2_test_msg_applysettings.py::test_apply_settings_passphrase": "0534d61b0c9a1d5db03e0b7a06e8c5e536b082f93831679ee8313b9e4b516545",
"TTui2_test_msg_applysettings.py::test_apply_settings_passphrase_on_device": "9ee483bf455a0185bde3ba7ebc15c04ee9c3159e802818157beae60f23d41325",
"TTui2_test_msg_applysettings.py::test_apply_settings_rotation": "6ccc6363fb0eab66f16e8143f86db85293705f0df2f39e987d102b2512cc2e2f",
"TTui2_test_msg_applysettings.py::test_experimental_features": "1682cfbfbfb8dfc746a0775ce598bd9033ac95b8fd668d68c7b9b3b8457df748",
"TTui2_test_msg_applysettings.py::test_apply_settings_rotation": "5478c39f7e16f84a05456c30f3779b971f490a0305ef6685643ff827eb8965a0",
"TTui2_test_msg_applysettings.py::test_experimental_features": "04c6d2d861d8a6c42b2ccfba43375e122bc1ad0b39f7ef9651231ad64cae3052",
"TTui2_test_msg_applysettings.py::test_label_too_long": "f03b50df7f4a161078fa903c44f37272961b70358d4014d30a12888e1fd2caf1",
"TTui2_test_msg_applysettings.py::test_safety_checks": "6fb3640423137081beee459378a14b32360c212df389cec675330a597d5cb9b9",
"TTui2_test_msg_backup_device.py::test_backup_bip39": "300ec4990b9b3dbc7f5ed8bffbd45294d975868ec43ff5713640f3ee7dd58f5c",
@ -2544,13 +2545,13 @@
"TTui2_test_msg_backup_device.py::test_no_backup_fails": "ffc38ab2b61939fea6883a4805b2a4eb17a0be03afe0fed3b1cca492b50bb25c",
"TTui2_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "8711e2fa6f7b301add7641e08ffb4bacf29bcd41530b1dd435fdbddb49b4bdf8",
"TTui2_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "ee6b02751838a7b65a8936ae6a4c998cc7c138b1e425dc17e48b924bf5aa32c9",
"TTui2_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "f7d4a3512c59274dd6c897b2aa66d2f8fe2b9f34a058f7c0daaac63a189c66ca",
"TTui2_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "f28d64c5c2864cfbe522dbda2a90c0d3f4eee258de5f2550c95441fa338699b3",
"TTui2_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "8fd746c535ec5add348b76002a7936cc85c3206edbb59f225ad075912329452d",
"TTui2_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "b0d6cce6458629edf4e7f171dfafa78268fcbe31e1bb756da58d26872ff16921",
"TTui2_test_msg_changepin_t2.py::test_change_failed": "1f425a59f5588b9822ecded931c427c627cbae1a5337556330d6ec6d7cd564de",
"TTui2_test_msg_changepin_t2.py::test_change_invalid_current": "202cec7394bf84ffbf66b9614f6d831a9db427080139b6a6046e9e9b4ef69477",
"TTui2_test_msg_changepin_t2.py::test_change_pin": "94d4fd3bd890bcdb03d17de7944506ce4e6aef0fe2c531d36d9d6879461b6880",
"TTui2_test_msg_changepin_t2.py::test_remove_pin": "9ea63f626d78f8cdaffa48348c82f9a67179ca23f4f697b8891081120e33bc36",
"TTui2_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "25eac0cb6ea45c0cb9cfcad3b4ac3ec33af9212a7b812370c8132ef9f14c7700",
"TTui2_test_msg_changepin_t2.py::test_change_failed": "e207e2c62f6930e9e112d7a1a31b9a66c14580df8aac82ea40e2f243d987e878",
"TTui2_test_msg_changepin_t2.py::test_change_invalid_current": "1aa0bcb26493a94c4b8c4b6aec4080a00acce8f7fc9e7e9058dc227ebd0d79d1",
"TTui2_test_msg_changepin_t2.py::test_change_pin": "938c076a5b7d1ecc02bb9389c3b8adc41c3e93711d9205dbdc1dd17f985b98d7",
"TTui2_test_msg_changepin_t2.py::test_remove_pin": "7127fb8960435bf6ecc59460cad9029494ba671bbfc867baa560a6b91adeca50",
"TTui2_test_msg_changepin_t2.py::test_set_failed": "391b309cadaefcaab9086f7e003faec88b7e38c13f2738b5ad1aa4bfd5d89566",
"TTui2_test_msg_changepin_t2.py::test_set_pin": "048bdc808c4cb87c020e4b786aa4cc3bd2a77830384ba42ddf808ccb79a91467",
"TTui2_test_msg_loaddevice.py::test_load_device_1": "eeb5afb34b4bbf42b8c635fdd34bae5c1e3693facb16e6d64e629746612a2c3f",
@ -2562,36 +2563,36 @@
"TTui2_test_msg_sd_protect.py::test_enable_disable": "c2d1e3a6cc85b684115f0f498f36f2eb3c4e2aa7b9241e9c9edc9c7030a9ff21",
"TTui2_test_msg_sd_protect.py::test_refresh": "c2d1e3a6cc85b684115f0f498f36f2eb3c4e2aa7b9241e9c9edc9c7030a9ff21",
"TTui2_test_msg_sd_protect.py::test_wipe": "c2d1e3a6cc85b684115f0f498f36f2eb3c4e2aa7b9241e9c9edc9c7030a9ff21",
"TTui2_test_msg_wipedevice.py::test_autolock_not_retained": "a7aca5b8c760e7251ac573536934bab4aa4c09d1edb7528f949b665d55a02516",
"TTui2_test_msg_wipedevice.py::test_autolock_not_retained": "12998f40c87305056b4fa467e62f2d5933dd9fc73ebeb691c66d4de3e015c75a",
"TTui2_test_msg_wipedevice.py::test_wipe_device": "eda4b0d20e968587db6348a94388333d32c5c331fabdca67432b4f1878100207",
"TTui2_test_passphrase_slip39_advanced.py::test_128bit_passphrase": "6de1f7f8c064c3a7069484329990fe83b65a2d3fd4875e583d6b7435969932e9",
"TTui2_test_passphrase_slip39_advanced.py::test_256bit_passphrase": "6de1f7f8c064c3a7069484329990fe83b65a2d3fd4875e583d6b7435969932e9",
"TTui2_test_passphrase_slip39_basic.py::test_2of5_passphrase": "6de1f7f8c064c3a7069484329990fe83b65a2d3fd4875e583d6b7435969932e9",
"TTui2_test_passphrase_slip39_basic.py::test_3of6_passphrase": "6de1f7f8c064c3a7069484329990fe83b65a2d3fd4875e583d6b7435969932e9",
"TTui2_test_pin.py::test_correct_pin": "9d265e3f00d8f59f11f0bdd1a5c911a1bd6e1c9e0ab154a52508e2de8f8aea8e",
"TTui2_test_pin.py::test_exponential_backoff_t2": "bf4e822a89def49bf41cf45eeaafb7676d644bb04c38796fb6f1c92a383618f5",
"TTui2_test_pin.py::test_incorrect_pin_t2": "0a73464c9688895a73ab017b14dd96a7db94773f278b5ec099458432d1e01444",
"TTui2_test_pin.py::test_correct_pin": "1eda1bb0dac1e0cd285b1face109de60cfd0e7ae4041b82b805cebc3be0db8f5",
"TTui2_test_pin.py::test_exponential_backoff_t2": "d79607abd16fb5aef63baec506d288366a39def1bbc6ddf71b78e44963a2e640",
"TTui2_test_pin.py::test_incorrect_pin_t2": "cecd9cc23e1fab56f7df9c0a88b309f5fdd9f29ef97e0f5ba0b808cea2d11759",
"TTui2_test_pin.py::test_no_protection": "f03b50df7f4a161078fa903c44f37272961b70358d4014d30a12888e1fd2caf1",
"TTui2_test_protection_levels.py::test_apply_settings": "b61b3f073aeeb6dce84af0d87498fa0315c1ccdab3aeaff274bc3ee7bcef2e23",
"TTui2_test_protection_levels.py::test_change_pin_t2": "919a3c831866b3d7bec7456609dcbafd1e9ac045559cdb0e45d99718db94ec4d",
"TTui2_test_protection_levels.py::test_get_address": "4f7d6981f19ce7b8e8094afdea5a5ba0c0e208115c560a814529439a513751db",
"TTui2_test_protection_levels.py::test_get_entropy_t2": "52df49789effeffa2c6e006545963ce795b153f8a022c93afcf62b0b3f6637e8",
"TTui2_test_protection_levels.py::test_get_public_key": "4f7d6981f19ce7b8e8094afdea5a5ba0c0e208115c560a814529439a513751db",
"TTui2_test_protection_levels.py::test_initialize": "2630c0d6bbd0160d630364a070b5fe3c06671387fd20373696ded2bab96f12fc",
"TTui2_test_protection_levels.py::test_apply_settings": "294a58f6e0222746f27bdf80014de14cf0b2d298bf806456ee94fd814e301cba",
"TTui2_test_protection_levels.py::test_change_pin_t2": "16894278ab56932caf642fba55cfa152a89c31e8a3ed5932a6c0a345e98a5773",
"TTui2_test_protection_levels.py::test_get_address": "ef09d088bf4ca767162d5017748158bb8dda9849ccb0bf9ca5acf32b872e260c",
"TTui2_test_protection_levels.py::test_get_entropy_t2": "7eadf62627e7a2c5a69b94c72eb4daca0153afb93ab8a12fd85d0d4ddc0a5a1d",
"TTui2_test_protection_levels.py::test_get_public_key": "ef09d088bf4ca767162d5017748158bb8dda9849ccb0bf9ca5acf32b872e260c",
"TTui2_test_protection_levels.py::test_initialize": "93143d6382f85204cfdc5bb5ec5d80b47b3b24cedcfe69e5a7c935f854a08a53",
"TTui2_test_protection_levels.py::test_passphrase_cached": "95a40f79fa7ffceb10e89b513c203b4937112b8d764cdba3c1df538355dc129c",
"TTui2_test_protection_levels.py::test_passphrase_reporting[False]": "a5def5d376f058987a913ddcef1b2127ca7a96c4d7d6143f9ab5e88e766e8e08",
"TTui2_test_protection_levels.py::test_passphrase_reporting[True]": "4cb1227d4313638a755a638ac0872153adc0efd7d7acf36c938647d89fd6df76",
"TTui2_test_protection_levels.py::test_passphrase_reporting[False]": "9e4d722b62943505f4f64fe91a9532482700f6bdb6b437e6ecc7cd860aab6cdc",
"TTui2_test_protection_levels.py::test_passphrase_reporting[True]": "f22306f6e125f58ad7e4a77ed3803030ff75a7686b4475806cc7cd355d2f8758",
"TTui2_test_protection_levels.py::test_ping": "9b44725459426439bc27f2cf72ee926ab7146f3ee1236d197382524cdf9a89a1",
"TTui2_test_protection_levels.py::test_sign_message": "4f7d6981f19ce7b8e8094afdea5a5ba0c0e208115c560a814529439a513751db",
"TTui2_test_protection_levels.py::test_signtx": "76ba27cc66a23a35077c5beac267e7bd8a97139714def8dbac1bbaafdb9ba651",
"TTui2_test_protection_levels.py::test_unlocked": "177dc93c18c59332761bb0b4dce1c5553eaf2981b808672964af15381f2885c2",
"TTui2_test_protection_levels.py::test_verify_message_t2": "4f7d6981f19ce7b8e8094afdea5a5ba0c0e208115c560a814529439a513751db",
"TTui2_test_protection_levels.py::test_wipe_device": "76e9d10f4b9748dad04ed19d19cb3ce63accbd56e83130587dbd506736b80102",
"TTui2_test_protection_levels.py::test_sign_message": "ef09d088bf4ca767162d5017748158bb8dda9849ccb0bf9ca5acf32b872e260c",
"TTui2_test_protection_levels.py::test_signtx": "322a631cf66a8597168d5379455e447c0251160d4044dcca167f94b8f7faea62",
"TTui2_test_protection_levels.py::test_unlocked": "ed7d5e2c6bac6b7e1ea4f23e8a91a1337e9bb6a03e093d69fb16df686f2fe68a",
"TTui2_test_protection_levels.py::test_verify_message_t2": "ef09d088bf4ca767162d5017748158bb8dda9849ccb0bf9ca5acf32b872e260c",
"TTui2_test_protection_levels.py::test_wipe_device": "a392b67e6868e61582508a5cb5b9ade725bdc36ecf96d468f869e95dd5892da1",
"TTui2_test_sdcard.py::test_sd_format": "77ce2fcd1d8e93bebfb31d426a0a2a92442dcde74922aabf390f00b327306263",
"TTui2_test_sdcard.py::test_sd_no_format": "8bfca9ea2c95d55040d9349d47fe8dcef25a5a444714d3c706eb18d04d9f8361",
"TTui2_test_sdcard.py::test_sd_protect_unlock": "20acbe30c8077c811d9fd740a233ad189c76cdeccd0a4ee083f440474d9e7280",
"TTui2_test_sdcard.py::test_sd_protect_unlock": "3ccb135f2a39a727be85f45ce5472c3c7439792239f990264f78848e851cd56d",
"TTui2_test_session.py::test_cannot_resume_ended_session": "f03b50df7f4a161078fa903c44f37272961b70358d4014d30a12888e1fd2caf1",
"TTui2_test_session.py::test_clear_session": "246bfb192bfb212e35665d08b4988d311b6cfe67d6b1d51fd94821b0ccb5dd40",
"TTui2_test_session.py::test_clear_session": "ba658cbfdf147653d116dc7d68dd4cad90be1becabfb1124e16a40c3e0a5e8f8",
"TTui2_test_session.py::test_derive_cardano_empty_session": "f03b50df7f4a161078fa903c44f37272961b70358d4014d30a12888e1fd2caf1",
"TTui2_test_session.py::test_derive_cardano_running_session": "f03b50df7f4a161078fa903c44f37272961b70358d4014d30a12888e1fd2caf1",
"TTui2_test_session.py::test_end_session": "f03b50df7f4a161078fa903c44f37272961b70358d4014d30a12888e1fd2caf1",
@ -2624,5 +2625,13 @@
"TTui2_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer": "f03b50df7f4a161078fa903c44f37272961b70358d4014d30a12888e1fd2caf1",
"TTui2_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer_to_contract": "f03b50df7f4a161078fa903c44f37272961b70358d4014d30a12888e1fd2caf1",
"TTui2_webauthn-test_msg_webauthn.py::test_add_remove": "bc5933385b732522ea5d8e5d0913c6b9faf423efbc4631fcc7be62848d7f019c",
"TTui2_webauthn-test_u2f_counter.py::test_u2f_counter": "c6a8e270ce726c7693e2ff88f9af57c56f2d3d8b1cc9c04b6f1dc71e13fcb88e"
"TTui2_webauthn-test_u2f_counter.py::test_u2f_counter": "c6a8e270ce726c7693e2ff88f9af57c56f2d3d8b1cc9c04b6f1dc71e13fcb88e",
"TTui2_zcash-test_sign_tx.py::test_external_presigned": "493db455a2a705880cea9800818345de8dc4086ac1d0f92bb8f21c5eed094084",
"TTui2_zcash-test_sign_tx.py::test_one_two": "493db455a2a705880cea9800818345de8dc4086ac1d0f92bb8f21c5eed094084",
"TTui2_zcash-test_sign_tx.py::test_refuse_replacement_tx": "493db455a2a705880cea9800818345de8dc4086ac1d0f92bb8f21c5eed094084",
"TTui2_zcash-test_sign_tx.py::test_send_to_multisig": "493db455a2a705880cea9800818345de8dc4086ac1d0f92bb8f21c5eed094084",
"TTui2_zcash-test_sign_tx.py::test_spend_multisig": "493db455a2a705880cea9800818345de8dc4086ac1d0f92bb8f21c5eed094084",
"TTui2_zcash-test_sign_tx.py::test_spend_v4_input": "493db455a2a705880cea9800818345de8dc4086ac1d0f92bb8f21c5eed094084",
"TTui2_zcash-test_sign_tx.py::test_spend_v5_input": "493db455a2a705880cea9800818345de8dc4086ac1d0f92bb8f21c5eed094084",
"TTui2_zcash-test_sign_tx.py::test_version_group_id_missing": "f03b50df7f4a161078fa903c44f37272961b70358d4014d30a12888e1fd2caf1"
}

Loading…
Cancel
Save