fix(core): mark THP `app_name` and `host_name` with yellow
What changed, and why it matters
This commit changes how the Trezor hardware wallet displays pairing and connection prompts for its new Bluetooth-like 'THP' protocol. Instead of building the prompt sentence in Python code, it now uses a dedicated Rust UI screen that highlights the app name and host name in yellow. This is a user-experience and anti-phishing improvement, not a fix for a remotely exploitable vulnerability. The change only affects on-screen text formatting and which UI component is used; it does not change cryptographic checks, authorization logic, or data parsing.
No immediate security action required. Treat as a normal UX/anti-phishing improvement. Reviewers may want to verify that the new `confirm_thp_pairing` screen preserves the same cancel/confirm behavior and that the `args` vector length is properly bounded (the diff shows `heapless::Vec<TString, 2>` and an `OutOfRange` error on missing args, which is appropriate).
Security signals we found
UI highlighting change for untrusted host/app identifiers (anti-spoofing UX signal)
Refactor of THP pairing confirmation screen implementation
New Rust UI API `confirm_thp_pairing` added to firmware_micropython.rs
Translation keys added for THP prompts; only Eckhart layout has non-empty strings
No cryptographic, parsing, or authorization logic changes observed
Evidence from the diff
The patch refactors THP (Trezor Host Protocol) pairing/connection confirmation screens. Previously, core/src/trezor/wire/thp/ui.py constructed a plain string with f"Allow {subject} to ..." and called confirm_action. Now it calls a new confirm_thp_pairing Rust API that receives a format string and an args iterable, then renders the interpolated app_name/host_name arguments in theme::YELLOW on supported layouts (only Eckhart has a real implementation; Bolt/Caesar/Delizia return ValueError). New translation keys (thp__autoconnect, thp__connect, thp__pair and their _app variants) are added, currently populated only for the Eckhart layout. UI test fixture hashes are updated accordingly. There is no change to pairing cryptography, authorization state, or input validation beyond the existing util::iter_into_vec bounds check.
Changed components
core/src/trezor/wire/thp/ui.pycore/embed/rust/src/ui/api/firmware_micropython.rscore/embed/rust/src/ui/layout_eckhart/ui_firmware.rscore/embed/rust/src/ui/ui_firmware.rscore/embed/rust/src/translations/generated/translated_string.rscore/translations/en.jsontests/ui_tests/fixtures.jsonInspect captured patch +406 / −176
diff --git a/core/embed/rust/librust_qstr.h b/core/embed/rust/librust_qstr.h
index 9ee66f41..e8ef936d 100644
--- a/core/embed/rust/librust_qstr.h
+++ b/core/embed/rust/librust_qstr.h
@@ -118,6 +118,7 @@ static void _librust_qstrs(void) {
MP_QSTR_amount_new;
MP_QSTR_app_name;
MP_QSTR_area_bytesize;
+ MP_QSTR_args;
MP_QSTR_attach_timer_fn;
MP_QSTR_attempts;
MP_QSTR_authenticate__confirm_template;
@@ -272,6 +273,7 @@ static void _librust_qstrs(void) {
MP_QSTR_confirm_properties;
MP_QSTR_confirm_reset_device;
MP_QSTR_confirm_summary;
+ MP_QSTR_confirm_thp_pairing;
MP_QSTR_confirm_total__fee_rate;
MP_QSTR_confirm_total__fee_rate_colon;
MP_QSTR_confirm_total__sending_from_account;
@@ -833,6 +835,12 @@ static void _librust_qstrs(void) {
MP_QSTR_text_confirm;
MP_QSTR_text_footer;
MP_QSTR_text_mono;
+ MP_QSTR_thp__autoconnect;
+ MP_QSTR_thp__autoconnect_app;
+ MP_QSTR_thp__connect;
+ MP_QSTR_thp__connect_app;
+ MP_QSTR_thp__pair;
+ MP_QSTR_thp__pair_app;
MP_QSTR_time_ms;
MP_QSTR_timer;
MP_QSTR_title;
diff --git a/core/embed/rust/src/translations/generated/translated_string.rs b/core/embed/rust/src/translations/generated/translated_string.rs
index 48f28496..3d9e7ce1 100644
--- a/core/embed/rust/src/translations/generated/translated_string.rs
+++ b/core/embed/rust/src/translations/generated/translated_string.rs
@@ -1524,6 +1524,12 @@ pub enum TranslatedString {
ble__forget_this_description = 1132, // "It will be removed, and you'll need to pair it again before use."
ble__forget_this_device = 1133, // "Forget this device?"
ble__forget_this_success = 1134, // "Host removed."
+ thp__autoconnect = 1135, // {"Bolt": "", "Caesar": "", "Delizia": "", "Eckhart": "Allow {0} to connect automatically to this Trezor?"}
+ thp__autoconnect_app = 1136, // {"Bolt": "", "Caesar": "", "Delizia": "", "Eckhart": "Allow {0} on {1} to connect automatically to this Trezor?"}
+ thp__connect = 1137, // {"Bolt": "", "Caesar": "", "Delizia": "", "Eckhart": "Allow {0} to connect with this Trezor?"}
+ thp__connect_app = 1138, // {"Bolt": "", "Caesar": "", "Delizia": "", "Eckhart": "Allow {0} on {1} to connect with this Trezor?"}
+ thp__pair = 1139, // {"Bolt": "", "Caesar": "", "Delizia": "", "Eckhart": "Allow {0} to pair with this Trezor?"}
+ thp__pair_app = 1140, // {"Bolt": "", "Caesar": "", "Delizia": "", "Eckhart": "Allow {0} on {1} to pair with this Trezor?"}
}
impl TranslatedString {
@@ -3373,6 +3379,54 @@ impl TranslatedString {
(Self::ble__forget_this_description, "It will be removed, and you'll need to pair it again before use."),
(Self::ble__forget_this_device, "Forget this device?"),
(Self::ble__forget_this_success, "Host removed."),
+ #[cfg(feature = "layout_bolt")]
+ (Self::thp__autoconnect, ""),
+ #[cfg(feature = "layout_caesar")]
+ (Self::thp__autoconnect, ""),
+ #[cfg(feature = "layout_delizia")]
+ (Self::thp__autoconnect, ""),
+ #[cfg(feature = "layout_eckhart")]
+ (Self::thp__autoconnect, "Allow {0} to connect automatically to this Trezor?"),
+ #[cfg(feature = "layout_bolt")]
+ (Self::thp__autoconnect_app, ""),
+ #[cfg(feature = "layout_caesar")]
+ (Self::thp__autoconnect_app, ""),
+ #[cfg(feature = "layout_delizia")]
+ (Self::thp__autoconnect_app, ""),
+ #[cfg(feature = "layout_eckhart")]
+ (Self::thp__autoconnect_app, "Allow {0} on {1} to connect automatically to this Trezor?"),
+ #[cfg(feature = "layout_bolt")]
+ (Self::thp__connect, ""),
+ #[cfg(feature = "layout_caesar")]
+ (Self::thp__connect, ""),
+ #[cfg(feature = "layout_delizia")]
+ (Self::thp__connect, ""),
+ #[cfg(feature = "layout_eckhart")]
+ (Self::thp__connect, "Allow {0} to connect with this Trezor?"),
+ #[cfg(feature = "layout_bolt")]
+ (Self::thp__connect_app, ""),
+ #[cfg(feature = "layout_caesar")]
+ (Self::thp__connect_app, ""),
+ #[cfg(feature = "layout_delizia")]
+ (Self::thp__connect_app, ""),
+ #[cfg(feature = "layout_eckhart")]
+ (Self::thp__connect_app, "Allow {0} on {1} to connect with this Trezor?"),
+ #[cfg(feature = "layout_bolt")]
+ (Self::thp__pair, ""),
+ #[cfg(feature = "layout_caesar")]
+ (Self::thp__pair, ""),
+ #[cfg(feature = "layout_delizia")]
+ (Self::thp__pair, ""),
+ #[cfg(feature = "layout_eckhart")]
+ (Self::thp__pair, "Allow {0} to pair with this Trezor?"),
+ #[cfg(feature = "layout_bolt")]
+ (Self::thp__pair_app, ""),
+ #[cfg(feature = "layout_caesar")]
+ (Self::thp__pair_app, ""),
+ #[cfg(feature = "layout_delizia")]
+ (Self::thp__pair_app, ""),
+ #[cfg(feature = "layout_eckhart")]
+ (Self::thp__pair_app, "Allow {0} on {1} to pair with this Trezor?"),
];
#[cfg(feature = "micropython")]
@@ -4734,6 +4788,12 @@ impl TranslatedString {
(Qstr::MP_QSTR_tezos__submit_proposal, Self::tezos__submit_proposal),
#[cfg(feature = "universal_fw")]
(Qstr::MP_QSTR_tezos__submit_proposals, Self::tezos__submit_proposals),
+ (Qstr::MP_QSTR_thp__autoconnect, Self::thp__autoconnect),
+ (Qstr::MP_QSTR_thp__autoconnect_app, Self::thp__autoconnect_app),
+ (Qstr::MP_QSTR_thp__connect, Self::thp__connect),
+ (Qstr::MP_QSTR_thp__connect_app, Self::thp__connect_app),
+ (Qstr::MP_QSTR_thp__pair, Self::thp__pair),
+ (Qstr::MP_QSTR_thp__pair_app, Self::thp__pair_app),
(Qstr::MP_QSTR_tutorial__continue, Self::tutorial__continue),
(Qstr::MP_QSTR_tutorial__did_you_know, Self::tutorial__did_you_know),
(Qstr::MP_QSTR_tutorial__exit, Self::tutorial__exit),
diff --git a/core/embed/rust/src/ui/api/firmware_micropython.rs b/core/embed/rust/src/ui/api/firmware_micropython.rs
index 2d222000..19cf2ea1 100644
--- a/core/embed/rust/src/ui/api/firmware_micropython.rs
+++ b/core/embed/rust/src/ui/api/firmware_micropython.rs
@@ -1,6 +1,7 @@
use crate::{
io::BinaryData,
micropython::{
+ buffer::StrBuffer,
gc::Gc,
list::List,
macros::{obj_fn_0, obj_fn_1, obj_fn_kw, obj_module},
@@ -1027,6 +1028,18 @@ extern "C" fn new_show_thp_pairing_code(n_args: usize, args: *const Obj, kwargs:
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
}
+extern "C" fn new_confirm_thp_pairing(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj {
+ let block = move |_args: &[Obj], kwargs: &Map| {
+ let title: TString = kwargs.get(Qstr::MP_QSTR_title)?.try_into()?;
+ let fmt: StrBuffer = kwargs.get(Qstr::MP_QSTR_description)?.try_into()?;
+ let args: Obj = kwargs.get(Qstr::MP_QSTR_args)?;
+ let layout = ModelUI::confirm_thp_pairing(title, (fmt, args))?;
+ let layout_obj = LayoutObj::new_root(layout)?;
+ Ok(layout_obj.into())
+ };
+ unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
+}
+
extern "C" fn new_show_info(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj {
let block = move |_args: &[Obj], kwargs: &Map| {
let title: TString = kwargs.get(Qstr::MP_QSTR_title)?.try_into()?;
@@ -1932,6 +1945,15 @@ pub static mp_module_trezorui_api: Module = obj_module! {
/// Returns on BLEEvent::{PairingCanceled, Disconnected}."""
Qstr::MP_QSTR_show_ble_pairing_code => obj_fn_kw!(0, new_show_ble_pairing_code).as_obj(),
+ /// def confirm_thp_pairing(
+ /// *,
+ /// title: str,
+ /// description: str,
+ /// args: Iterable[str],
+ /// ) -> LayoutObj[UiResult]:
+ /// """THP pairing: first screen (host and app names)."""
+ Qstr::MP_QSTR_confirm_thp_pairing => obj_fn_kw!(0, new_confirm_thp_pairing).as_obj(),
+
/// def show_thp_pairing_code(
/// *,
/// title: str,
diff --git a/core/embed/rust/src/ui/layout_bolt/ui_firmware.rs b/core/embed/rust/src/ui/layout_bolt/ui_firmware.rs
index 7f832d11..ac53d186 100644
--- a/core/embed/rust/src/ui/layout_bolt/ui_firmware.rs
+++ b/core/embed/rust/src/ui/layout_bolt/ui_firmware.rs
@@ -992,6 +992,15 @@ impl FirmwareUI for UIBolt {
)
}
+ fn confirm_thp_pairing(
+ _title: TString<'static>,
+ _description: (StrBuffer, Obj),
+ ) -> Result<impl LayoutMaybeTrace, Error> {
+ Err::<RootComponent<Empty, ModelUI>, Error>(Error::ValueError(
+ c"confirm_thp_pairing not supported",
+ ))
+ }
+
fn show_info(
title: TString<'static>,
description: TString<'static>,
diff --git a/core/embed/rust/src/ui/layout_caesar/ui_firmware.rs b/core/embed/rust/src/ui/layout_caesar/ui_firmware.rs
index b6378c72..5ffc8352 100644
--- a/core/embed/rust/src/ui/layout_caesar/ui_firmware.rs
+++ b/core/embed/rust/src/ui/layout_caesar/ui_firmware.rs
@@ -1191,6 +1191,15 @@ impl FirmwareUI for UICaesar {
)
}
+ fn confirm_thp_pairing(
+ _title: TString<'static>,
+ _description: (StrBuffer, Obj),
+ ) -> Result<impl LayoutMaybeTrace, Error> {
+ Err::<RootComponent<Empty, ModelUI>, Error>(Error::ValueError(
+ c"confirm_thp_pairing not supported",
+ ))
+ }
+
fn show_info(
title: TString<'static>,
description: TString<'static>,
diff --git a/core/embed/rust/src/ui/layout_delizia/ui_firmware.rs b/core/embed/rust/src/ui/layout_delizia/ui_firmware.rs
index 6bfe8470..86bc769d 100644
--- a/core/embed/rust/src/ui/layout_delizia/ui_firmware.rs
+++ b/core/embed/rust/src/ui/layout_delizia/ui_firmware.rs
@@ -3,7 +3,7 @@ use core::cmp::Ordering;
use crate::{
error::{value_error, Error},
io::BinaryData,
- micropython::{gc::Gc, iter::IterBuf, list::List, obj::Obj, util},
+ micropython::{buffer::StrBuffer, gc::Gc, iter::IterBuf, list::List, obj::Obj, util},
storage,
strutil::TString,
translations::TR,
@@ -1076,6 +1076,15 @@ impl FirmwareUI for UIDelizia {
)
}
+ fn confirm_thp_pairing(
+ _title: TString<'static>,
+ _description: (StrBuffer, Obj),
+ ) -> Result<impl LayoutMaybeTrace, Error> {
+ Err::<RootComponent<Empty, ModelUI>, Error>(Error::ValueError(
+ c"confirm_thp_pairing not supported",
+ ))
+ }
+
fn show_info(
title: TString<'static>,
description: TString<'static>,
diff --git a/core/embed/rust/src/ui/layout_eckhart/ui_firmware.rs b/core/embed/rust/src/ui/layout_eckhart/ui_firmware.rs
index 70ba19d1..41a9a87b 100644
--- a/core/embed/rust/src/ui/layout_eckhart/ui_firmware.rs
+++ b/core/embed/rust/src/ui/layout_eckhart/ui_firmware.rs
@@ -3,7 +3,7 @@ use core::cmp::Ordering;
use crate::{
error::Error,
io::BinaryData,
- micropython::{gc::Gc, iter::IterBuf, list::List, obj::Obj, util},
+ micropython::{buffer::StrBuffer, gc::Gc, iter::IterBuf, list::List, obj::Obj, util},
storage,
strutil::TString,
time::Duration,
@@ -31,6 +31,7 @@ use crate::{
},
ModelUI,
},
+ util::interpolate,
};
use super::{
@@ -1284,6 +1285,35 @@ impl FirmwareUI for UIEckhart {
Ok(flow)
}
+ fn confirm_thp_pairing(
+ title: TString<'static>,
+ description: (StrBuffer, Obj),
+ ) -> Result<impl LayoutMaybeTrace, Error> {
+ let (format, args_obj) = description;
+ let args: heapless::Vec<TString<'static>, 2> = util::iter_into_vec(args_obj)?;
+ let style = theme::firmware::TEXT_REGULAR;
+ let mut ops = OpTextLayout::new(style);
+ for part in interpolate::parse(format) {
+ match part {
+ interpolate::Item::Text(s) => {
+ ops.add_text_with_font(s, style.text_font);
+ }
+ interpolate::Item::Arg(i) => match args.get(i) {
+ Some(&s) => {
+ ops.add_color(theme::YELLOW);
+ ops.add_text_with_font(s, style.text_font);
+ ops.add_color(style.text_color);
+ }
+ None => return Err(Error::OutOfRange),
+ },
+ };
+ }
+ let screen = TextScreen::new(FormattedText::new(ops))
+ .with_header(Header::new(title))
+ .with_action_bar(ActionBar::new_cancel_confirm());
+ Ok(RootComponent::new(screen))
+ }
+
fn show_info(
title: TString<'static>,
description: TString<'static>,
diff --git a/core/embed/rust/src/ui/ui_firmware.rs b/core/embed/rust/src/ui/ui_firmware.rs
index 302401df..b91d1147 100644
--- a/core/embed/rust/src/ui/ui_firmware.rs
+++ b/core/embed/rust/src/ui/ui_firmware.rs
@@ -1,7 +1,7 @@
use crate::{
error::Error,
io::BinaryData,
- micropython::{gc::Gc, list::List, obj::Obj},
+ micropython::{buffer::StrBuffer, gc::Gc, list::List, obj::Obj},
strutil::TString,
};
use heapless::Vec;
@@ -394,6 +394,11 @@ pub trait FirmwareUI {
code: TString<'static>,
) -> Result<impl LayoutMaybeTrace, Error>;
+ fn confirm_thp_pairing(
+ title: TString<'static>,
+ description: (StrBuffer, Obj),
+ ) -> Result<impl LayoutMaybeTrace, Error>;
+
fn show_info(
title: TString<'static>,
description: TString<'static>,
diff --git a/core/mocks/generated/trezorui_api.pyi b/core/mocks/generated/trezorui_api.pyi
index 3be955b8..02c86976 100644
--- a/core/mocks/generated/trezorui_api.pyi
+++ b/core/mocks/generated/trezorui_api.pyi
@@ -659,6 +659,16 @@ def show_ble_pairing_code(
Returns on BLEEvent::{PairingCanceled, Disconnected}."""
+# rust/src/ui/api/firmware_micropython.rs
+def confirm_thp_pairing(
+ *,
+ title: str,
+ description: str,
+ args: Iterable[str],
+) -> LayoutObj[UiResult]:
+ """THP pairing: first screen (host and app names)."""
+
+
# rust/src/ui/api/firmware_micropython.rs
def show_thp_pairing_code(
*,
diff --git a/core/mocks/trezortranslate_keys.pyi b/core/mocks/trezortranslate_keys.pyi
index 0c848b2d..a74643ab 100644
--- a/core/mocks/trezortranslate_keys.pyi
+++ b/core/mocks/trezortranslate_keys.pyi
@@ -945,6 +945,12 @@ class TR:
tezos__submit_ballot: str = "Submit ballot"
tezos__submit_proposal: str = "Submit proposal"
tezos__submit_proposals: str = "Submit proposals"
+ thp__autoconnect: str = ""
+ thp__autoconnect_app: str = ""
+ thp__connect: str = ""
+ thp__connect_app: str = ""
+ thp__pair: str = ""
+ thp__pair_app: str = ""
tutorial__continue: str = "Continue tutorial"
tutorial__did_you_know: str = "Did you know?"
tutorial__exit: str = "Exit tutorial"
diff --git a/core/src/trezor/wire/thp/ui.py b/core/src/trezor/wire/thp/ui.py
index 47f41ce7..609c8aac 100644
--- a/core/src/trezor/wire/thp/ui.py
+++ b/core/src/trezor/wire/thp/ui.py
@@ -1,56 +1,76 @@
from typing import TYPE_CHECKING
if TYPE_CHECKING:
+ from typing import Awaitable
+
from trezorui_api import UiResult
-def _app_on_host(app_name: str | None, host_name: str | None) -> str:
+def confirm_pairing(
+ br_name: str,
+ title: str,
+ app_name: str | None,
+ host_name: str | None,
+ short_text: str,
+ long_text: str,
+) -> Awaitable[None]:
+ from trezor.ui.layouts.common import raise_if_cancelled
+ from trezorui_api import confirm_thp_pairing
+
if app_name and host_name:
- return f"{app_name} on {host_name}"
- elif not app_name and not host_name:
- return "(unknown)"
+ args = (app_name, host_name)
+ description = long_text
else:
- return (app_name or "") + (host_name or "")
+ args = (app_name or host_name or "(unknown)",)
+ description = short_text
+
+ return raise_if_cancelled(
+ confirm_thp_pairing(title=title, description=description, args=args),
+ br_name=br_name,
+ )
-async def show_autoconnect_credential_confirmation_screen(
+def show_autoconnect_credential_confirmation_screen(
host_name: str | None,
app_name: str | None,
-) -> None:
- from trezor.ui.layouts import confirm_action
+) -> Awaitable[None]:
+ from trezor import TR
- subject = _app_on_host(app_name, host_name)
- action_string = f"Allow {subject} to connect automatically to this Trezor?"
-
- await confirm_action(
+ return confirm_pairing(
br_name="thp_autoconnect_credential_request",
title="Autoconnect credential",
- action=action_string,
+ app_name=app_name,
+ host_name=host_name,
+ short_text=TR.thp__autoconnect,
+ long_text=TR.thp__autoconnect_app,
)
-async def show_pairing_dialog(host_name: str | None, app_name: str | None) -> None:
- from trezor.ui.layouts import confirm_action
+def show_pairing_dialog(host_name: str | None, app_name: str | None) -> Awaitable[None]:
+ from trezor import TR
- subject = _app_on_host(app_name, host_name)
- action_string = f"Allow {subject} to pair with this Trezor?"
- await confirm_action(
+ return confirm_pairing(
br_name="thp_pairing_request",
title="Before you continue",
- action=action_string,
+ app_name=app_name,
+ host_name=host_name,
+ short_text=TR.thp__pair,
+ long_text=TR.thp__pair_app,
)
-async def show_connection_dialog(host_name: str | None, app_name: str | None) -> None:
- from trezor.ui.layouts import confirm_action
-
- subject = _app_on_host(app_name, host_name)
- action_string = f"Allow {subject} to connect with this Trezor?"
+def show_connection_dialog(
+ host_name: str | None, app_name: str | None
+) -> Awaitable[None]:
+ from trezor import TR
- await confirm_action(
+ return confirm_pairing(
br_name="thp_connection_request",
title="Connection dialog",
- action=action_string,
+ app_name=app_name,
+ host_name=host_name,
+ short_text=TR.thp__connect,
+ long_text=TR.thp__connect_app,
)
diff --git a/core/translations/en.json b/core/translations/en.json
index 764a9643..86273707 100644
--- a/core/translations/en.json
+++ b/core/translations/en.json
@@ -1162,6 +1162,42 @@
"tezos__submit_ballot": "Submit ballot",
"tezos__submit_proposal": "Submit proposal",
"tezos__submit_proposals": "Submit proposals",
+ "thp__autoconnect": {
+ "Bolt": "",
+ "Caesar": "",
+ "Delizia": "",
+ "Eckhart": "Allow {0} to connect automatically to this Trezor?"
+ },
+ "thp__autoconnect_app": {
+ "Bolt": "",
+ "Caesar": "",
+ "Delizia": "",
+ "Eckhart": "Allow {0} on {1} to connect automatically to this Trezor?"
+ },
+ "thp__connect": {
+ "Bolt": "",
+ "Caesar": "",
+ "Delizia": "",
+ "Eckhart": "Allow {0} to connect with this Trezor?"
+ },
+ "thp__connect_app": {
+ "Bolt": "",
+ "Caesar": "",
+ "Delizia": "",
+ "Eckhart": "Allow {0} on {1} to connect with this Trezor?"
+ },
+ "thp__pair": {
+ "Bolt": "",
+ "Caesar": "",
+ "Delizia": "",
+ "Eckhart": "Allow {0} to pair with this Trezor?"
+ },
+ "thp__pair_app": {
+ "Bolt": "",
+ "Caesar": "",
+ "Delizia": "",
+ "Eckhart": "Allow {0} on {1} to pair with this Trezor?"
+ },
"tutorial__continue": "Continue tutorial",
"tutorial__did_you_know": "Did you know?",
"tutorial__exit": "Exit tutorial",
diff --git a/core/translations/order.json b/core/translations/order.json
index c0392571..4c15d58a 100644
--- a/core/translations/order.json
+++ b/core/translations/order.json
@@ -1133,5 +1133,11 @@
"1131": "ble__forget_all_success",
"1132": "ble__forget_this_description",
"1133": "ble__forget_this_device",
- "1134": "ble__forget_this_success"
+ "1134": "ble__forget_this_success",
+ "1135": "thp__autoconnect",
+ "1136": "thp__autoconnect_app",
+ "1137": "thp__connect",
+ "1138": "thp__connect_app",
+ "1139": "thp__pair",
+ "1140": "thp__pair_app"
}
diff --git a/core/translations/signatures.json b/core/translations/signatures.json
index fb559c50..b6b8ef9f 100644
--- a/core/translations/signatures.json
+++ b/core/translations/signatures.json
@@ -1,8 +1,8 @@
{
"current": {
- "merkle_root": "fcdf4cfb5699e1c90e542fde05dd306bb18761deb262420f3ca4dc85c3a063dd",
- "datetime": "2025-09-03T11:35:16.079257+00:00",
- "commit": "f138f5010a73b943854d7ad7a1c6be4bd0712753"
+ "merkle_root": "a41b94ae2830a40308546c2d003a213527ae902b7daa8624058605a7d8a60d00",
+ "datetime": "2025-09-08T07:55:12.193914+00:00",
+ "commit": "7ac68d73a6dc1567290c9dad4c08d051ebac7462"
},
"history": [
{
diff --git a/tests/ui_tests/fixtures.json b/tests/ui_tests/fixtures.json
index a018e3f2..4656b202 100644
--- a/tests/ui_tests/fixtures.json
+++ b/tests/ui_tests/fixtures.json
@@ -30248,9 +30248,9 @@
"T3W1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "e1571075e09ad823548e5b1f58c07443c6311dc636410e46d3d13ef0fc7b6665",
"T3W1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_entropy_check": "0c947247e1d5fa99ec6409ae42fcaa024ad392962a17a6d77889851aceeaa006",
"T3W1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "d03c3e99ad436a66055c33c867e5e34df44edb0a21857f8e9c1488ff4f3054a8",
-"T3W1_cs_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "e663ea8c2e6d642771d5a598e69748da42e70cea6b8ea2074317e54bb51635a0",
-"T3W1_cs_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "2799ee068ea41b40e0f017260b4005dda412b2a3091f8e0ebeae0819d12f6891",
-"T3W1_cs_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "3189d9a3ea4043fd43de485d8d871af78f58a4480e21cb86401c22a2a12ce204",
+"T3W1_cs_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "612b1e8ad4f1a9aabb3a8917b5fadac5f2adbbb8cbc30420636b7490d38a31f1",
+"T3W1_cs_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "dbc386dcd0e7764d88cd22ed12e80f05b7de68af03bda5717a68aeb5b2d64e9d",
+"T3W1_cs_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "a6cd288c5853c8069ecf1783617de3c7a264df12979334b966f0f5370e445086",
"T3W1_cs_reset_recovery-test_reset_slip39_advanced.py::test_reset_device_slip39_advanced": "d93afb96b85bce6f63e59a37787e03f7c237a7b50f199874f90d3d68d789616d",
"T3W1_cs_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic": "677768b92b4c952832b66f37bc33d543a510445fd8033b921210b97b96c7dd94",
"T3W1_cs_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic_256": "efb420d00e84fc06abd3d1ac41349caef99207e0a587ff441f4369869911b9e5",
@@ -30434,8 +30434,8 @@
"T3W1_cs_test_autolock.py::test_autolock_ignores_getaddress": "7e71a029736d9389bac18cfe2e5ccc339c8d2c204e99c89fb5df181d43af653c",
"T3W1_cs_test_autolock.py::test_autolock_ignores_initialize": "7e71a029736d9389bac18cfe2e5ccc339c8d2c204e99c89fb5df181d43af653c",
"T3W1_cs_test_basic.py::test_capabilities": "c24521e569c08e3605b164212c876f8ac57c5eef6cca6f2ca53a635a883ebc4b",
-"T3W1_cs_test_basic.py::test_device_id_different": "385730662d7601f17de41ed2facbe5fa03f44cd71df8e94dc2501775c3743445",
-"T3W1_cs_test_basic.py::test_device_id_same": "80023b7dcbeae76ee3dd5d87166dad68b1a279d91c9b90b86680abd02d10e3d1",
+"T3W1_cs_test_basic.py::test_device_id_different": "7603cf8eb5bff844dea05e3bcc0510187bc9aaec1d800d56287e2326f121169c",
+"T3W1_cs_test_basic.py::test_device_id_same": "e86f70857903b875db5a771e3b605b664a64479494e95ae9df5f7cad094e846d",
"T3W1_cs_test_basic.py::test_ping": "c24521e569c08e3605b164212c876f8ac57c5eef6cca6f2ca53a635a883ebc4b",
"T3W1_cs_test_busy_state.py::test_busy_expiry_core": "9f4d831de73e586dac1af47d844bf78be2d67408d4e3540dc30c6bce94c9a183",
"T3W1_cs_test_busy_state.py::test_busy_state": "16d35c8e6b845cc5eff55145fa947aa2e1859b90f2506ea15d2dded8a22ff26f",
@@ -30443,7 +30443,7 @@
"T3W1_cs_test_cancel.py::test_cancel_message_via_cancel[message1]": "250a29674c9500455d83905a9bda0e9c34636cce65412b3f542f56e30e34142c",
"T3W1_cs_test_cancel.py::test_cancel_on_paginated": "27e2727c98f7ded08467447834bb0f15d2add9217d1f7b73ae37202199f0c545",
"T3W1_cs_test_debuglink.py::test_gc_info": "c24521e569c08e3605b164212c876f8ac57c5eef6cca6f2ca53a635a883ebc4b",
-"T3W1_cs_test_debuglink.py::test_softlock_instability": "140ae298c6eaafb56b77586ecf2fa34fbaa4766881c394944304af94e796153e",
+"T3W1_cs_test_debuglink.py::test_softlock_instability": "3d02eace01f7e9d0943a57d57bc555f0db9c0a8c13d1cfa020aeefd19dee26ef",
"T3W1_cs_test_firmware_hash.py::test_firmware_hash_emu": "da08c95529fe77509e3a2bf23c54df82770839b7868a7d08b4bdf759b44fd918",
"T3W1_cs_test_firmware_hash.py::test_firmware_hash_hw": "c24521e569c08e3605b164212c876f8ac57c5eef6cca6f2ca53a635a883ebc4b",
"T3W1_cs_test_language.py::test_error_invalid_data_hash": "e88865ea424ab3cdc2cb10ba2e26a30494e1301197a5c178ac1ea8f426dd97e5",
@@ -30460,7 +30460,7 @@
"T3W1_cs_test_language.py::test_full_language_change[it]": "1fd93609a1ef6ecb2890b856b19b85e88604d556369708dd65ac3a01ffdb5c6b",
"T3W1_cs_test_language.py::test_full_language_change[pt]": "a968a01640a95a4f7d12cdb678a6adec1d7a96983abda471a008d77acae783c5",
"T3W1_cs_test_language.py::test_header_trailing_data": "87f0cfa46cc7f684e6f24db14dcd5254791d29d4be9624b70610cc4580d31902",
-"T3W1_cs_test_language.py::test_language_is_removed_after_wipe": "cd8e5fcb9dcf6c3b426b388a06c04018825d813fb59d9a9915e76c994aee2a70",
+"T3W1_cs_test_language.py::test_language_is_removed_after_wipe": "3b93807b43af0cb6e6cc8784cbecd0cb2d9424a7ada3aaba4d53a69a3cb60dc2",
"T3W1_cs_test_language.py::test_reject_update": "d776f0f620da2c39d00345ae6accd9f9d9e2f32e497a1eb2fa4a60340d775cc7",
"T3W1_cs_test_language.py::test_silent_first_install[False-False]": "a2c25e081a2c76a2fbbf8ec11fd2ce5e32e0ebfa4c4b48a02ba9d443769fb33e",
"T3W1_cs_test_language.py::test_silent_first_install[None-False]": "a2c25e081a2c76a2fbbf8ec11fd2ce5e32e0ebfa4c4b48a02ba9d443769fb33e",
@@ -30515,10 +30515,10 @@
"T3W1_cs_test_msg_loaddevice.py::test_load_device_2": "773ce8fe27f4b0eee9507ad56d2d78a1dee00aef585c4cf7428b35eb79cab0f3",
"T3W1_cs_test_msg_loaddevice.py::test_load_device_slip39_advanced": "895225763963cbb9b745948b4dd4ddfa98cf86a28c2259d2f05ea8e2d1bf26c2",
"T3W1_cs_test_msg_loaddevice.py::test_load_device_slip39_basic": "895225763963cbb9b745948b4dd4ddfa98cf86a28c2259d2f05ea8e2d1bf26c2",
-"T3W1_cs_test_msg_loaddevice.py::test_load_device_utf": "7aecf9f955a0d19e79ee8059848db4c90121ca3e7c84e03fe5c2ce9b2e38e903",
+"T3W1_cs_test_msg_loaddevice.py::test_load_device_utf": "b1426da69420ecee9e11d40dd2a53fc2ecfa3540117c6cb22c1aa65ea15fe5ad",
"T3W1_cs_test_msg_ping.py::test_ping": "f4c5d15978c43bcf29bbee92d2ad0a457f29ee32b3903df7f16c501a242c08b8",
-"T3W1_cs_test_msg_wipedevice.py::test_autolock_not_retained": "862eafcfdb1a09d1b7d6a514fe6ebeceea8864caf5e990b434e3afa0ee704b2b",
-"T3W1_cs_test_msg_wipedevice.py::test_wipe_device": "385730662d7601f17de41ed2facbe5fa03f44cd71df8e94dc2501775c3743445",
+"T3W1_cs_test_msg_wipedevice.py::test_autolock_not_retained": "7f801167e35eacf41eb6c9d61749567b5f91e81cb4aa88ccfc8ce7ec277615eb",
+"T3W1_cs_test_msg_wipedevice.py::test_wipe_device": "7603cf8eb5bff844dea05e3bcc0510187bc9aaec1d800d56287e2326f121169c",
"T3W1_cs_test_passphrase_slip39_advanced.py::test_128bit_passphrase": "d8401ddf19fd583a9bccbd39cfd9a57e53143617a5623b1544364a6aa890c155",
"T3W1_cs_test_passphrase_slip39_advanced.py::test_256bit_passphrase": "d8401ddf19fd583a9bccbd39cfd9a57e53143617a5623b1544364a6aa890c155",
"T3W1_cs_test_passphrase_slip39_basic.py::test_2of3_ext_passphrase": "71e5389a3afdf955e0f098d284350a766f29deebdc1cf8a2d93dea0603c2ceec",
@@ -30542,7 +30542,7 @@
"T3W1_cs_test_protection_levels.py::test_signtx": "b94ad2fcfe9b260322d954f3414c70cddc82952e8f837a9887ce1ee31ea3deaa",
"T3W1_cs_test_protection_levels.py::test_unlocked": "f4f2677b792ba5a0ab700f29e1832985d7c9a7cd9c7c4129325a2c5ad809bd4b",
"T3W1_cs_test_protection_levels.py::test_verify_message_t2": "14a42c7f3b0d07730c8b2c29dd6867e5ccded38b3d2418f0f6c7d802f925c0a1",
-"T3W1_cs_test_protection_levels.py::test_wipe_device": "fecd3b5e61731fa030fbea27fb7ac536c2ecb35c8be3d4a05044d2b10dc18068",
+"T3W1_cs_test_protection_levels.py::test_wipe_device": "7631538dfdec137f1c8e29db85ce636024b52615526260ff0c55ce02807aaf83",
"T3W1_cs_test_repeated_backup.py::test_repeated_backup_via_host": "a591a907fda30c0f05be29c390d5576b241ddbfbd5a5ba91c610056e63f2ced6",
"T3W1_cs_test_repeated_backup.py::test_repeated_backup_via_host_cancel": "6f5da93a0dab3eaaabf9f6d6635084fa2ad288ceec43e0a7eefdda3247cc18ab",
"T3W1_cs_test_repeated_backup.py::test_repeated_backup_via_host_send_disallowed_message": "6f5da93a0dab3eaaabf9f6d6635084fa2ad288ceec43e0a7eefdda3247cc18ab",
@@ -30569,22 +30569,22 @@
"T3W1_cs_tezos-test_sign_tx.py::test_tezos_smart_contract_delegation": "7f9476495fc641adb75587b6ffcafc7cc5724e2d9ed3efe2fe0abf7590a7ccb3",
"T3W1_cs_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer": "c23801b139521fff4f796d2d7a78224d2ecac05d1495349f616625d0c129121b",
"T3W1_cs_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer_to_contract": "271279559ad58f780d325ad7932208f3952eeb8f1b49f321e43fd1206da3d508",
-"T3W1_cs_thp-test_abp.py::test_abp": "12f9d9816525497df8e45deebdc7009d17707eac493ab2734e16203f5f180019",
+"T3W1_cs_thp-test_abp.py::test_abp": "04a053d6e8a2cda5f2f2047fcd68de2e3266d87ad5f4744ef9c1863cc1026941",
"T3W1_cs_thp-test_basic.py::test_v1": "987d1c62e6576b9cc24373e00df522efdc9736af978d6032f7d319af8daaef5d",
"T3W1_cs_thp-test_basic.py::test_v2_unallocated": "987d1c62e6576b9cc24373e00df522efdc9736af978d6032f7d319af8daaef5d",
"T3W1_cs_thp-test_handshake.py::test_allocate_channel": "c24521e569c08e3605b164212c876f8ac57c5eef6cca6f2ca53a635a883ebc4b",
-"T3W1_cs_thp-test_handshake.py::test_handshake": "12f9d9816525497df8e45deebdc7009d17707eac493ab2734e16203f5f180019",
+"T3W1_cs_thp-test_handshake.py::test_handshake": "04a053d6e8a2cda5f2f2047fcd68de2e3266d87ad5f4744ef9c1863cc1026941",
"T3W1_cs_thp-test_multiple_hosts.py::test_concurrent_handshakes": "c24521e569c08e3605b164212c876f8ac57c5eef6cca6f2ca53a635a883ebc4b",
-"T3W1_cs_thp-test_pairing.py::test_autoconnect_credential_request_cancel": "eef0251501ffd647619f21a5bf8ecccc00a481031149c67638594c6c571eb590",
-"T3W1_cs_thp-test_pairing.py::test_channel_replacement": "15835bb5bd56d4cb971d9c24fe753bec30d59d63e4e41714df981d52c37abdf2",
-"T3W1_cs_thp-test_pairing.py::test_connection_confirmation_cancel": "ad3361ccb21a40d93c4a574742166ea3ca2f1f4481039826256e88ffe7303e40",
-"T3W1_cs_thp-test_pairing.py::test_credential_phase": "f96ba637b2f13216c9ff7039d3777eb3617f2713ae6fe7a5138ab91d7b7bcf53",
-"T3W1_cs_thp-test_pairing.py::test_credential_request_in_encrypted_transport_phase": "485d067d612452e87c7a1121a46ad24e6afaa25e477491ec0e9d171fdeca82d7",
-"T3W1_cs_thp-test_pairing.py::test_pairing_cancel_1": "44d80d7efd6bfa46eebeb297318e714923ed08b396420225766ef3e6db4f88df",
-"T3W1_cs_thp-test_pairing.py::test_pairing_cancel_2": "459c8f31f767cb971a7d0cbf1a232f23c44dc387bb1c73100adb9643c6963fa2",
-"T3W1_cs_thp-test_pairing.py::test_pairing_code_entry": "448b80d8c482b69ecff2ede4ebc7827f32455037a814e8c8aabb623d388a715f",
-"T3W1_cs_thp-test_pairing.py::test_pairing_code_entry_cancel": "448b80d8c482b69ecff2ede4ebc7827f32455037a814e8c8aabb623d388a715f",
-"T3W1_cs_thp-test_pairing.py::test_pairing_nfc": "64d5fc34155c91dda2cd094ba6e870e4595149eac079888e5e56e42e4d5b3fae",
+"T3W1_cs_thp-test_pairing.py::test_autoconnect_credential_request_cancel": "1ca1e0a2b824f1c07294b4514d7d8e514dbdf34e8e5f34b4c696216b785c7d61",
+"T3W1_cs_thp-test_pairing.py::test_channel_replacement": "6af93c1281ef28bf14301c2eea4b6d5761c4ccbaa2c905cd94fe8c274d46a8e0",
+"T3W1_cs_thp-test_pairing.py::test_connection_confirmation_cancel": "4a1c119aefd3e12654510a04306c50280f26d83f08d9fedb733f32e0abbdc6f3",
+"T3W1_cs_thp-test_pairing.py::test_credential_phase": "70f6e46cf0bffb23143160b90d06ea3aa94b2a506e6e849aba4a6466d9a92580",
+"T3W1_cs_thp-test_pairing.py::test_credential_request_in_encrypted_transport_phase": "050dd72a7159eac476ac0123f064f64c6430309fd675b659547d99cddd060dfa",
+"T3W1_cs_thp-test_pairing.py::test_pairing_cancel_1": "615392b901282edb8b26f6332aab5a85d3635e02e23f5910f9a647475181278e",
+"T3W1_cs_thp-test_pairing.py::test_pairing_cancel_2": "d9fdb2a886ae3c024f34ca13c2487d131564edf6bdf017023059402e84021e80",
+"T3W1_cs_thp-test_pairing.py::test_pairing_code_entry": "f9ffb872d453197dbe565babbac849fae00f18aa8189b3606dd75e8d8a1c8ded",
+"T3W1_cs_thp-test_pairing.py::test_pairing_code_entry_cancel": "f9ffb872d453197dbe565babbac849fae00f18aa8189b3606dd75e8d8a1c8ded",
+"T3W1_cs_thp-test_pairing.py::test_pairing_nfc": "a7f189f658e801325dcd43bc931ffebd0f2ba80d338b4c35b472f830286c104c",
"T3W1_cs_thp-test_pairing.py::test_pairing_qr_code": "c24521e569c08e3605b164212c876f8ac57c5eef6cca6f2ca53a635a883ebc4b",
"T3W1_cs_webauthn-test_msg_webauthn.py::test_add_remove": "41e0ff0345000141e896ac5e1b7efccba213037de18b5eb8c0882be670034b18",
"T3W1_cs_webauthn-test_u2f_counter.py::test_u2f_counter": "3384ce14138163512ed53ca5d68499080d4c54d81ca071585bb552afdd1b6e57",
@@ -31729,9 +31729,9 @@
"T3W1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "05ff5a69578c9379e76c79c16dd2530a67764c6a24e8199ceaa2ae2b512f05d6",
"T3W1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_entropy_check": "b36946b56349d7bc173753c9ec8f0d3c3694b853c55ce2e54b3c3c5f2f586239",
"T3W1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "e7ff2df0e2ab54153cbefdede57c77f01bbe7619fd63b5fe0e5eb311ea4a5a97",
-"T3W1_de_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "1e84c3c7d954022f8b0e8e8da320500eba506911ea918cd72f39ad90eca9c444",
-"T3W1_de_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "e9554397586da8debad82949f548b79207bf48b997339484dcfcd7f8a4d46b1a",
-"T3W1_de_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "71efb2730c096e90b20720f7117b6ba5d4d5c1701bb7e76b887b09385e2a567f",
+"T3W1_de_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "7139bb90bbc07f97967edd37d0f04a6ed7f956e877735da97f505f5b2dfa2d1d",
+"T3W1_de_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "bc5f600b84706cc3f5f9a93dc9b9544f20407ed548ccab3a7852ba3b180c2bef",
+"T3W1_de_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "30460a7f335e7b20215f92cbdaeab00309e019a87272bcd444677512c4694a67",
"T3W1_de_reset_recovery-test_reset_slip39_advanced.py::test_reset_device_slip39_advanced": "21c0e096a5472f1fce4d39bb55e06ab7ce1502395ae227c33665f8fc63ae0a52",
"T3W1_de_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic": "58b1270db06d81aadf61423fe709f49ee7e1f66f01ee9bef0592cb74d70162a0",
"T3W1_de_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic_256": "3b143ebd89b675a885022349ec36db4c6d6608cfe3f4f47d11359cb602039591",
@@ -31915,8 +31915,8 @@
"T3W1_de_test_autolock.py::test_autolock_ignores_getaddress": "2b6877b4606da4bc932e24cc27e3d473938fa52f7e615e04998f9199b9cedbf0",
"T3W1_de_test_autolock.py::test_autolock_ignores_initialize": "2b6877b4606da4bc932e24cc27e3d473938fa52f7e615e04998f9199b9cedbf0",
"T3W1_de_test_basic.py::test_capabilities": "98735f888f827501b25c78c6a737c1983a800c620f709c65b1d95f6c8c9a2b90",
-"T3W1_de_test_basic.py::test_device_id_different": "3589b94ce4d094e8d9cf0db3cc89575650d9c446c38379e9998e2a5ab204446d",
-"T3W1_de_test_basic.py::test_device_id_same": "3c7f33f63c88fc62f4e4d78351416a661d520bc48f28ef731298a2be7287755d",
+"T3W1_de_test_basic.py::test_device_id_different": "46c80c7a5668f663fd3a1867a21c00915e598399208bb7d216de3f5a4266ffe2",
+"T3W1_de_test_basic.py::test_device_id_same": "a7d331033c12d91842d1d7e3abf11de209f66149df781ba6465377434374ef2a",
"T3W1_de_test_basic.py::test_ping": "98735f888f827501b25c78c6a737c1983a800c620f709c65b1d95f6c8c9a2b90",
"T3W1_de_test_busy_state.py::test_busy_expiry_core": "fe8e5dbe730131ba33c6800cbc7ea5e3f6ec35952e74b403257435e4c8ae9542",
"T3W1_de_test_busy_state.py::test_busy_state": "f5cfb62f03892a9edbf9709c2355c43d189a3163333cc82f9292dab836de417d",
@@ -31924,7 +31924,7 @@
"T3W1_de_test_cancel.py::test_cancel_message_via_cancel[message1]": "4527eac516deffe3a3b72422ecaa1b219c7a61718684b51252e732198bbc0b7c",
"T3W1_de_test_cancel.py::test_cancel_on_paginated": "2e2fb25dc3be1ff0718dc6652af314a54d5f99b96c7585124af3d6ed198d882f",
"T3W1_de_test_debuglink.py::test_gc_info": "98735f888f827501b25c78c6a737c1983a800c620f709c65b1d95f6c8c9a2b90",
-"T3W1_de_test_debuglink.py::test_softlock_instability": "a15de4b4e548bc999aebdcb7043adbab4b9052378c5c8faf6d6b853a7360f14e",
+"T3W1_de_test_debuglink.py::test_softlock_instability": "d0ec429a5063c353e718056315addc837ea34dafdac68995e53c38f4380fa2c4",
"T3W1_de_test_firmware_hash.py::test_firmware_hash_emu": "0ce03f9c1a0f1f19fa6d154b01e67ab6b4985a15bbbe59d82f22f2b00250ee60",
"T3W1_de_test_firmware_hash.py::test_firmware_hash_hw": "98735f888f827501b25c78c6a737c1983a800c620f709c65b1d95f6c8c9a2b90",
"T3W1_de_test_language.py::test_error_invalid_data_hash": "b830dd6fd432cb064ad097871784c13a2c0e3606faec23760e891d66a5f2436e",
@@ -31941,7 +31941,7 @@
"T3W1_de_test_language.py::test_full_language_change[it]": "9f849751bcff5310ec281379b284b1890ef183a5e8e86c85a7af7f0bd5766ccb",
"T3W1_de_test_language.py::test_full_language_change[pt]": "a92421c1bcec387fe7ad623e849654e8f704e0c148088a744a9f05a2e439bbf0",
"T3W1_de_test_language.py::test_header_trailing_data": "4d14a6898f8f0044b2732fe34571b6a21e4aa0389ebb5108325f7f9590235035",
-"T3W1_de_test_language.py::test_language_is_removed_after_wipe": "2031986d067229334887bc0f65571bea50c4b1665e2bf3af477a2ed35db72636",
+"T3W1_de_test_language.py::test_language_is_removed_after_wipe": "b1827afeda162bf5667c9b2fdf139233fe0e8ed7e75e48d468e684a27318a0e2",
"T3W1_de_test_language.py::test_reject_update": "54f31dc4d2e5a68e728ba001ec0ec85aa7c7cce06bf61c9fbc36348469bcc52a",
"T3W1_de_test_language.py::test_silent_first_install[False-False]": "7b31f767ab6995b45cab0903e1aa6aca9e212bb75ab82635883addd553e51809",
"T3W1_de_test_language.py::test_silent_first_install[None-False]": "7b31f767ab6995b45cab0903e1aa6aca9e212bb75ab82635883addd553e51809",
@@ -31996,10 +31996,10 @@
"T3W1_de_test_msg_loaddevice.py::test_load_device_2": "1a662e3fc0e0437d778f653e87ece231c4a04c3ce1f7b46530af6beaa3ab6503",
"T3W1_de_test_msg_loaddevice.py::test_load_device_slip39_advanced": "03f23fcd1f0a7ba80b4cfd8ad5af92bcc8ed733c76bceece110052b7c4c889d4",
"T3W1_de_test_msg_loaddevice.py::test_load_device_slip39_basic": "03f23fcd1f0a7ba80b4cfd8ad5af92bcc8ed733c76bceece110052b7c4c889d4",
-"T3W1_de_test_msg_loaddevice.py::test_load_device_utf": "6ecc410782680761ea8ccca27a758cc2d3d4b0e0db5a82e834feeee8013b7d9a",
+"T3W1_de_test_msg_loaddevice.py::test_load_device_utf": "0edf4e06c53689caa4a13657fd1177abbb7b0344d4cb91b1a3e1f82278caa479",
"T3W1_de_test_msg_ping.py::test_ping": "5ebcd180a408b2a089228328086058d9a1df5510acb185af5532692b95ce985d",
-"T3W1_de_test_msg_wipedevice.py::test_autolock_not_retained": "b732839616638d0008a6b2799b2999cb6e272ffb2295e6e862e2c4e3826c9059",
-"T3W1_de_test_msg_wipedevice.py::test_wipe_device": "3589b94ce4d094e8d9cf0db3cc89575650d9c446c38379e9998e2a5ab204446d",
+"T3W1_de_test_msg_wipedevice.py::test_autolock_not_retained": "e9c5e950fcd245cd9328a08f75e0061f7faf5241a0565941a317fe71dbb10bb6",
+"T3W1_de_test_msg_wipedevice.py::test_wipe_device": "46c80c7a5668f663fd3a1867a21c00915e598399208bb7d216de3f5a4266ffe2",
"T3W1_de_test_passphrase_slip39_advanced.py::test_128bit_passphrase": "ecf12472f7fd7f12bee5ac83acf48dff589511e5040e6f5fe37236cb2c0be420",
"T3W1_de_test_passphrase_slip39_advanced.py::test_256bit_passphrase": "ecf12472f7fd7f12bee5ac83acf48dff589511e5040e6f5fe37236cb2c0be420",
"T3W1_de_test_passphrase_slip39_basic.py::test_2of3_ext_passphrase": "521be167f638f63f5812e5749e2ef5997c9dea509a9466030fe87e2a5f67f495",
@@ -32023,7 +32023,7 @@
"T3W1_de_test_protection_levels.py::test_signtx": "2f40c48c9f3067bbe8457294a72f50d352cd822cb9d9c20f08eaa1b26bb44cee",
"T3W1_de_test_protection_levels.py::test_unlocked": "64f774d0a21e1452ba30a7034057a8c742b10f2706474fccf0c89017594e5e85",
"T3W1_de_test_protection_levels.py::test_verify_message_t2": "7a579ee2b9d7bee1e685f809788a9c0638360e76ba553e7b8b974bb30676b9fd",
-"T3W1_de_test_protection_levels.py::test_wipe_device": "388c40476b4a8540e839b7b6c2028a5d484e60cd44efc62675b3a9dce0bf5dd6",
+"T3W1_de_test_protection_levels.py::test_wipe_device": "9f720c7fcaa77917f005dc25d63eed88eaa854f6c52f217fc3d786ce2b18c874",
"T3W1_de_test_repeated_backup.py::test_repeated_backup_via_host": "8a7ef53b7dc315a4293ff6d1bd6e165e727b1a756ca8abcbf7bf3a3e3e3055e9",
"T3W1_de_test_repeated_backup.py::test_repeated_backup_via_host_cancel": "1a63f79b95326d6c67726c1da5653436991df275a378613e2ed53d85e9f581f4",
"T3W1_de_test_repeated_backup.py::test_repeated_backup_via_host_send_disallowed_message": "1a63f79b95326d6c67726c1da5653436991df275a378613e2ed53d85e9f581f4",
@@ -32050,22 +32050,22 @@
"T3W1_de_tezos-test_sign_tx.py::test_tezos_smart_contract_delegation": "00cc6d2301746f05a3368ffccdf540fc122ee1f0ae6731ec8f1063b700874a7e",
"T3W1_de_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer": "d9c3b8922630353a21a66e4868a84c8b8d3e8a67ea2139002b57ebba0b479d8d",
"T3W1_de_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer_to_contract": "aa4e8afe7cefad088932b83dab9153dc25dfe87c07573d5b9c0a11c94ede667b",
-"T3W1_de_thp-test_abp.py::test_abp": "3ff993544bd4ee4a119c39f6a4d40b28b746f959bf7edd572c369b2823a37eda",
+"T3W1_de_thp-test_abp.py::test_abp": "c4f9a3e6052c7e13034b572056db28b671e0d493ab74779b7a15ac7051ce38f8",
"T3W1_de_thp-test_basic.py::test_v1": "987d1c62e6576b9cc24373e00df522efdc9736af978d6032f7d319af8daaef5d",
"T3W1_de_thp-test_basic.py::test_v2_unallocated": "987d1c62e6576b9cc24373e00df522efdc9736af978d6032f7d319af8daaef5d",
"T3W1_de_thp-test_handshake.py::test_allocate_channel": "98735f888f827501b25c78c6a737c1983a800c620f709c65b1d95f6c8c9a2b90",
-"T3W1_de_thp-test_handshake.py::test_handshake": "3ff993544bd4ee4a119c39f6a4d40b28b746f959bf7edd572c369b2823a37eda",
+"T3W1_de_thp-test_handshake.py::test_handshake": "c4f9a3e6052c7e13034b572056db28b671e0d493ab74779b7a15ac7051ce38f8",
"T3W1_de_thp-test_multiple_hosts.py::test_concurrent_handshakes": "98735f888f827501b25c78c6a737c1983a800c620f709c65b1d95f6c8c9a2b90",
-"T3W1_de_thp-test_pairing.py::test_autoconnect_credential_request_cancel": "55c241bbf3ab9b275407b12fbac91e83377a3011d5da9a78887a7572d88c2439",
-"T3W1_de_thp-test_pairing.py::test_channel_replacement": "2ee6db98e741afe0a88c155b2d03345d04b261fb3b95beb2f60646e4396dc584",
-"T3W1_de_thp-test_pairing.py::test_connection_confirmation_cancel": "c7c28e77675a6a340d5fedfdda25a92f443e96e30536dfacf0dd5b504c2fad1b",
-"T3W1_de_thp-test_pairing.py::test_credential_phase": "5346935a9d49da7c7557c7c1a347627d11de0c8480a63cf1c3c4b2535ce155e2",
-"T3W1_de_thp-test_pairing.py::test_credential_request_in_encrypted_transport_phase": "aa7161c5d22656a12217b4a26f67c92575b6249c87322cc2ba037b1e3de0dcea",
-"T3W1_de_thp-test_pairing.py::test_pairing_cancel_1": "28d6717d1b7435625595212435c204df437605468a2c81c14c6af78fc2b0d709",
-"T3W1_de_thp-test_pairing.py::test_pairing_cancel_2": "de0ca5c3443656301e8ac225d39ea416841032da0f19fc4df155a2c5b53591ed",
-"T3W1_de_thp-test_pairing.py::test_pairing_code_entry": "5d0b5dbe11bd34ae0ad8b918bb45c4f53f8fc143bab3a6ccf0d311fea2a566f4",
-"T3W1_de_thp-test_pairing.py::test_pairing_code_entry_cancel": "5d0b5dbe11bd34ae0ad8b918bb45c4f53f8fc143bab3a6ccf0d311fea2a566f4",
-"T3W1_de_thp-test_pairing.py::test_pairing_nfc": "4e64d3a1b5a0a5c64f255e48fe40439c2a71761bd3c501d20b2dad20878c2f12",
+"T3W1_de_thp-test_pairing.py::test_autoconnect_credential_request_cancel": "9f15633462807ffece0b796954ac2b88cf92473b69d7c3903052a695886e1504",
+"T3W1_de_thp-test_pairing.py::test_channel_replacement": "54c26a46d70601331ae336c7623e385f80a2dfe67b228104b9c1744f88c50482",
+"T3W1_de_thp-test_pairing.py::test_connection_confirmation_cancel": "45a93b1b4d0284e3bce36bb7cea6b39ab8ed629c02e8e0b9da7cf1a109d0f2c9",
+"T3W1_de_thp-test_pairing.py::test_credential_phase": "1cefe0c5d015b04f2d043d9638a0fdaecb6b814ac87be8d8571248cf571969b6",
+"T3W1_de_thp-test_pairing.py::test_credential_request_in_encrypted_transport_phase": "4af248866b2f525fe9f5fe2dc81205bc47215c520495998e5d3c4ce8a33cea76",
+"T3W1_de_thp-test_pairing.py::test_pairing_cancel_1": "9029ca01af26d5ec459cd019a2f5147c584713443171e177a9d8bb8bbf176035",
+"T3W1_de_thp-test_pairing.py::test_pairing_cancel_2": "637fcf806d8c841cb2795f02d231f536a1071cfaafec5158d4b3b7380b040982",
+"T3W1_de_thp-test_pairing.py::test_pairing_code_entry": "be87369b8b6753e4eafb0e503ce0e43305d0c293cf3fd43d1a5dc1390ad5717b",
+"T3W1_de_thp-test_pairing.py::test_pairing_code_entry_cancel": "be87369b8b6753e4eafb0e503ce0e43305d0c293cf3fd43d1a5dc1390ad5717b",
+"T3W1_de_thp-test_pairing.py::test_pairing_nfc": "00143b8832cb4bfbe3889ab181d5241cc74f6da2be9aaec60aedb8923e4c1128",
"T3W1_de_thp-test_pairing.py::test_pairing_qr_code": "98735f888f827501b25c78c6a737c1983a800c620f709c65b1d95f6c8c9a2b90",
"T3W1_de_webauthn-test_msg_webauthn.py::test_add_remove": "615265e559145574c93bf984fedbfffebea4f9b257d381f6f2c59afc6de60f26",
"T3W1_de_webauthn-test_u2f_counter.py::test_u2f_counter": "fe33e3d24226be98fbc4b1d12647d1a3e6b6f3fdbc1134dff054baf05b95d459",
@@ -33210,9 +33210,9 @@
"T3W1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "117307db160b6a9bb0d6b0944f8de080a4c80f20ec422b48b301638029d114c2",
"T3W1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_entropy_check": "f1550d0e9a8666e024dee76ecb2a9671d6a7c3ab84cba2f8078cb8ee087897a6",
"T3W1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "b16081b55e9e21b742f87022e0ee8cffcbf49f5955c8d9e3815fe6551f656344",
-"T3W1_en_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "a3fb3bd96c5b4ccacc96861cb1e5f5c0d703836b5d15e6c5d87af9cc9623a584",
-"T3W1_en_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "a433f254ccff9876b71d3443965f8f2a25b15e2497e4a09dd9c3a39d2536e03f",
-"T3W1_en_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "7e219e1815fd814eda85c78b729c3b41446354cd515b3da360518f5faccb232e",
+"T3W1_en_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "2616e636cb51d40b88921b147311dcf85e4d8d80ec656122c8f7bf3a1dd63175",
+"T3W1_en_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "1837211e95852bcf90d701483486e2c5bf945f669988a88b0ee212e553f0d8c9",
+"T3W1_en_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "4e8945b1162a94efe35bf836a1d7d4c39032beb1096e8ac33c00017e5b3454a7",
"T3W1_en_reset_recovery-test_reset_slip39_advanced.py::test_reset_device_slip39_advanced": "08d639603a1d331ae39cbb8654806efb30e7bdbe7af9f0a34a7477e6913bce77",
"T3W1_en_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic": "86d1c8f4602114e08bf2743b205f47574899d3038e9291cee4f40e7e2ee09476",
"T3W1_en_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic_256": "9d7cce7cabe564617896e78e37e5252510b2bba302683226f8d05961d3076d5d",
@@ -33396,8 +33396,8 @@
"T3W1_en_test_autolock.py::test_autolock_ignores_getaddress": "7c959bb104563260f52905457f5f2ce69b50baf4be445960237dd5de270af8ad",
"T3W1_en_test_autolock.py::test_autolock_ignores_initialize": "7c959bb104563260f52905457f5f2ce69b50baf4be445960237dd5de270af8ad",
"T3W1_en_test_basic.py::test_capabilities": "931d9afceb0ba1e4faae891775819277242d889644d5c0c5863fc8c9fcf859b1",
-"T3W1_en_test_basic.py::test_device_id_different": "81448be7d547bb9bcf0f97de1f8292cb54d68459127b9da40e7455a2a5b88806",
-"T3W1_en_test_basic.py::test_device_id_same": "79b39c1bd7c0aaeb116397df9fa5a9d52ddcea8ddb13107d99b1c5f210e00a40",
+"T3W1_en_test_basic.py::test_device_id_different": "c26f7f469cd661ac8a46537a8930716f27c4c4f80d82bbde5d7bb7fde6ea09e1",
+"T3W1_en_test_basic.py::test_device_id_same": "cb9177964a8876eeba27aba72c2fdaed60c37e0b21d4827287c9c3b562147661",
"T3W1_en_test_basic.py::test_ping": "931d9afceb0ba1e4faae891775819277242d889644d5c0c5863fc8c9fcf859b1",
"T3W1_en_test_busy_state.py::test_busy_expiry_core": "9911b2c22ec3e01fd2997c8ea579dd4a40cb8f83924925704e0aa8fd163a92a9",
"T3W1_en_test_busy_state.py::test_busy_state": "26e350c7f41d424f82fc66c37267fbf4fae2a94ddc40b3434ee050c51ece0887",
@@ -33405,7 +33405,7 @@
"T3W1_en_test_cancel.py::test_cancel_message_via_cancel[message1]": "2949fdae8a2569a1bb5c9bf0d7cce480c2ac518e1a882924f13520c5f3553639",
"T3W1_en_test_cancel.py::test_cancel_on_paginated": "d6b95cec1952edbc484cb5237e81f3dc7b0242db77baf8d64276c93ae832f752",
"T3W1_en_test_debuglink.py::test_gc_info": "931d9afceb0ba1e4faae891775819277242d889644d5c0c5863fc8c9fcf859b1",
-"T3W1_en_test_debuglink.py::test_softlock_instability": "b056c2a5fec05f3314231d769b4493dd46aba7db04a39aff5a7312322403a5eb",
+"T3W1_en_test_debuglink.py::test_softlock_instability": "2980ba737844b23ba721bad658128c9d6656c971e50f858f029723a38ebd9f46",
"T3W1_en_test_firmware_hash.py::test_firmware_hash_emu": "c1a03d214f6e2126f285f3356855b68b740e986c2a0a5c973cb3f682152382e3",
"T3W1_en_test_firmware_hash.py::test_firmware_hash_hw": "931d9afceb0ba1e4faae891775819277242d889644d5c0c5863fc8c9fcf859b1",
"T3W1_en_test_language.py::test_error_invalid_data_hash": "c22faec70f1651a30c9c1b9fced584665ecedbaf22976863bb7c4e9f7b6f2c6a",
@@ -33422,7 +33422,7 @@
"T3W1_en_test_language.py::test_full_language_change[it]": "b91226f8ede7ae6d2a85941daf8668ea6d2b85334b29f40528253c670798155c",
"T3W1_en_test_language.py::test_full_language_change[pt]": "95e0358ef81565152e19a385f7f98d728e9f0e9d73b640e62df970bd0426d88f",
"T3W1_en_test_language.py::test_header_trailing_data": "1cfbc960b7b494e3155b9b374a8e8a8d7737e1d178561d83420cf2152e7ed7b9",
-"T3W1_en_test_language.py::test_language_is_removed_after_wipe": "61a64542081574a260bae24ba9269069581d1b32a3feb006ea47c5574dade774",
+"T3W1_en_test_language.py::test_language_is_removed_after_wipe": "71349d26af46ba4e3772276d1a9f4f7dbe8c9493c799b0941b3fa73fff4ec753",
"T3W1_en_test_language.py::test_reject_update": "1aa6696cf75c6867b834c031655db13278c7cad09e31c6b9c8b44381898e3474",
"T3W1_en_test_language.py::test_silent_first_install[False-False]": "7dd0e7aa30aaafc33cbd29c8c73aa54c3e2aa610e0725906bd46a31e290d8d28",
"T3W1_en_test_language.py::test_silent_first_install[None-False]": "7dd0e7aa30aaafc33cbd29c8c73aa54c3e2aa610e0725906bd46a31e290d8d28",
@@ -33477,10 +33477,10 @@
"T3W1_en_test_msg_loaddevice.py::test_load_device_2": "8c8cdfc95cc7d1bea022c6c368a62a6d8b4138392b4c18caafceb404c6f81e09",
"T3W1_en_test_msg_loaddevice.py::test_load_device_slip39_advanced": "54a4bbfca0c9d3723fc55ba1259769a54feea0039c6b2d6eec08cd4761a8e66b",
"T3W1_en_test_msg_loaddevice.py::test_load_device_slip39_basic": "54a4bbfca0c9d3723fc55ba1259769a54feea0039c6b2d6eec08cd4761a8e66b",
-"T3W1_en_test_msg_loaddevice.py::test_load_device_utf": "44072c91b65233f0d79a6eadae4173b74973f4728ef519f319b427556c02723b",
+"T3W1_en_test_msg_loaddevice.py::test_load_device_utf": "e6b9c16832da7293dbc909585683d57f24c8796f08921a4182d22766f5250f37",
"T3W1_en_test_msg_ping.py::test_ping": "a8b409a7ccc3d87e1227c79958565935613c4fa6ef216041b8c2382c19d64c66",
-"T3W1_en_test_msg_wipedevice.py::test_autolock_not_retained": "bed6f523f4e36df20310d5e2896dcb82baf68ec565848503be064d01f4b2a6f8",
-"T3W1_en_test_msg_wipedevice.py::test_wipe_device": "81448be7d547bb9bcf0f97de1f8292cb54d68459127b9da40e7455a2a5b88806",
+"T3W1_en_test_msg_wipedevice.py::test_autolock_not_retained": "a90a175f0cabebcab220db6f44b6a0428efec98253637977ab85d2ec5c2c45f1",
+"T3W1_en_test_msg_wipedevice.py::test_wipe_device": "c26f7f469cd661ac8a46537a8930716f27c4c4f80d82bbde5d7bb7fde6ea09e1",
"T3W1_en_test_passphrase_slip39_advanced.py::test_128bit_passphrase": "74c58ad9536ebcff9cb7429483126d13f5bbce7fbe89ebf772124dbfebf9b3ef",
"T3W1_en_test_passphrase_slip39_advanced.py::test_256bit_passphrase": "74c58ad9536ebcff9cb7429483126d13f5bbce7fbe89ebf772124dbfebf9b3ef",
"T3W1_en_test_passphrase_slip39_basic.py::test_2of3_ext_passphrase": "df609cd95cbc6ece1d0211f5adbd4f435ceb9bb827a623030f51f60d5f75c549",
@@ -33504,7 +33504,7 @@
"T3W1_en_test_protection_levels.py::test_signtx": "9731c767d5cdf4241328793fd71a56301afeaff74f90b35806519176ef2458c2",
"T3W1_en_test_protection_levels.py::test_unlocked": "272a70d00afc7e55f46330616d203237c316eb359dd59d94b088a1e7f34186e5",
"T3W1_en_test_protection_levels.py::test_verify_message_t2": "87c7546e75d6907bdf29c58bb98a2ef5cee85ec7c59275d6f2d044f17ab09420",
-"T3W1_en_test_protection_levels.py::test_wipe_device": "1abc2ecd6794e24765cd4bc933d926c7beb6fc4cfc61273af880e1c9615d83db",
+"T3W1_en_test_protection_levels.py::test_wipe_device": "37353a4a51180c0b37507ae026338bb82ebdc19bb9253d873c9c1d65387597ff",
"T3W1_en_test_repeated_backup.py::test_repeated_backup_via_host": "4b9bf67323c08028c7735c702d2df44a588f514e4ade842e3ff4d4f6f19f2962",
"T3W1_en_test_repeated_backup.py::test_repeated_backup_via_host_cancel": "71f66559a50e049b1e1017652ddce31156e92a3cd0dde0f02f3a1b38202d9eba",
"T3W1_en_test_repeated_backup.py::test_repeated_backup_via_host_send_disallowed_message": "71f66559a50e049b1e1017652ddce31156e92a3cd0dde0f02f3a1b38202d9eba",
@@ -33531,22 +33531,22 @@
"T3W1_en_tezos-test_sign_tx.py::test_tezos_smart_contract_delegation": "9660d451bb5f7d1a7e260fa9966e9569ffc112ca806b4242dae2e3f40e5aab22",
"T3W1_en_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer": "65610eddb98c30dd39b18fbd3baa382e10e085b8b88d507e8d6b915a9a14bfa7",
"T3W1_en_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer_to_contract": "7ee7a3b21969cc30051cbfbb998bdfa5c168406f785047f99d064c0a4e636cb7",
-"T3W1_en_thp-test_abp.py::test_abp": "75dc9de942f7e6834a41f3b69c33df0d40fbddcf2b60c308c6ad8ec9ad97a450",
+"T3W1_en_thp-test_abp.py::test_abp": "e954350408b2f02ce0027c2b85c89cb4520d51415ee959a479b49fa7e54dd641",
"T3W1_en_thp-test_basic.py::test_v1": "987d1c62e6576b9cc24373e00df522efdc9736af978d6032f7d319af8daaef5d",
"T3W1_en_thp-test_basic.py::test_v2_unallocated": "987d1c62e6576b9cc24373e00df522efdc9736af978d6032f7d319af8daaef5d",
"T3W1_en_thp-test_handshake.py::test_allocate_channel": "931d9afceb0ba1e4faae891775819277242d889644d5c0c5863fc8c9fcf859b1",
-"T3W1_en_thp-test_handshake.py::test_handshake": "75dc9de942f7e6834a41f3b69c33df0d40fbddcf2b60c308c6ad8ec9ad97a450",
+"T3W1_en_thp-test_handshake.py::test_handshake": "e954350408b2f02ce0027c2b85c89cb4520d51415ee959a479b49fa7e54dd641",
"T3W1_en_thp-test_multiple_hosts.py::test_concurrent_handshakes": "931d9afceb0ba1e4faae891775819277242d889644d5c0c5863fc8c9fcf859b1",
-"T3W1_en_thp-test_pairing.py::test_autoconnect_credential_request_cancel": "800bc6f9e215353273ff2ffccd63d0d03dd7ac34348e46656d9f2ff41f4f2428",
-"T3W1_en_thp-test_pairing.py::test_channel_replacement": "3ef77f4dad8b416158a2d87e4d56ce74027ac47dd665cebd2e17641f69928ce1",
-"T3W1_en_thp-test_pairing.py::test_connection_confirmation_cancel": "46bc826b77b82c6007bda7eba246ece8f9916d60b80fa25d4fb7b488fd644a1f",
-"T3W1_en_thp-test_pairing.py::test_credential_phase": "36408dc5dfcac4671e58199dd36c29f359a3ae4915f33245ccfecd0dad954924",
-"T3W1_en_thp-test_pairing.py::test_credential_request_in_encrypted_transport_phase": "17754d7225d934a29f983d3dfd1e621d4b14f2eb9641432157427e006dc31469",
-"T3W1_en_thp-test_pairing.py::test_pairing_cancel_1": "3cc9b7ad324d93f1b34e498b862a48d6d5a04569e2f666c941f51af9107843e3",
-"T3W1_en_thp-test_pairing.py::test_pairing_cancel_2": "93cce813866e5e3425affff1bae5f892234c181716f71fcd25bda65650418ac3",
-"T3W1_en_thp-test_pairing.py::test_pairing_code_entry": "2b3cff8fb2362771a9ddb961fbac3274c9e802a307075f76e2aa99b989cd73cf",
-"T3W1_en_thp-test_pairing.py::test_pairing_code_entry_cancel": "2b3cff8fb2362771a9ddb961fbac3274c9e802a307075f76e2aa99b989cd73cf",
-"T3W1_en_thp-test_pairing.py::test_pairing_nfc": "057b71e7ac5430fe46807c403f58d77146b0b10079c53822731af289206cb80d",
+"T3W1_en_thp-test_pairing.py::test_autoconnect_credential_request_cancel": "0b2d0bae2be792de98d225bd6ec84b1870d594fcc7dafefbfe8f48b25d712ce9",
+"T3W1_en_thp-test_pairing.py::test_channel_replacement": "54d916cb74fed5efee422cc143beddb0638d80f2c7b6497bc56e86819d2b4301",
+"T3W1_en_thp-test_pairing.py::test_connection_confirmation_cancel": "f28753e7db82d11b7b113e14af4175cd23b1fa71b860a580568784686c72f399",
+"T3W1_en_thp-test_pairing.py::test_credential_phase": "83d2fc1487cc436f1e8f3d4f3136df2e5855bb24ff12db3c44aa11d2698b97be",
+"T3W1_en_thp-test_pairing.py::test_credential_request_in_encrypted_transport_phase": "87cc5440032ef2571e38c62e77228f3fbcb8f09c69ca79b418b1aad3456f294b",
+"T3W1_en_thp-test_pairing.py::test_pairing_cancel_1": "d2a7558c2f8e3e1c54b664334a8a6ce66d6ea858a667dc37e66caba21fd0ce60",
+"T3W1_en_thp-test_pairing.py::test_pairing_cancel_2": "30bee288a2798ff42c5efda8f4b47c49488a5b9a4880fe8479653fcbef47fb2e",
+"T3W1_en_thp-test_pairing.py::test_pairing_code_entry": "b9098f20c92acbc7294d7e7b75f0c74044871ae69dd01b30fd178b9b670c34db",
+"T3W1_en_thp-test_pairing.py::test_pairing_code_entry_cancel": "b9098f20c92acbc7294d7e7b75f0c74044871ae69dd01b30fd178b9b670c34db",
+"T3W1_en_thp-test_pairing.py::test_pairing_nfc": "63550f578e04dc58b5a2d08829f7d9ce543e29094d381c6c4cefa2eb37c7cb99",
"T3W1_en_thp-test_pairing.py::test_pairing_qr_code": "931d9afceb0ba1e4faae891775819277242d889644d5c0c5863fc8c9fcf859b1",
"T3W1_en_webauthn-test_msg_webauthn.py::test_add_remove": "222e1dc521b9a3ccfb91530fd9246664a62a102f1595b78b7207ec9348036017",
"T3W1_en_webauthn-test_u2f_counter.py::test_u2f_counter": "109039621b36fd1ebe09cd76f7e898259aafa80401a8bd91799e448a6e134f79",
@@ -34691,9 +34691,9 @@
"T3W1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "f2251576985a493e8f20cbd29581fc25388acdf32ce34db76bbcb3dbe14a22a4",
"T3W1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_entropy_check": "f47b63b085187a3de4be4870260ae34810d4092ea044e140e2db41e9e8286ab3",
"T3W1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "c8023c4fe91978706a7312173d6623b92b642ae4dbd99130d015df2e6d161484",
-"T3W1_es_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "fe038ecbe14841c47d1bbd18ca9899d4a781cd59801a150f216ba00f26840ce8",
-"T3W1_es_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "d31685c28aec1e379be9e9c5a65761bc6eaa0bef2caf3c8b00227f6b6b89031a",
-"T3W1_es_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "77a1e440a3bcbdc8e2bae9051ba251a490d3ec47c4dd132d8048964c1e63160a",
+"T3W1_es_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "e8a7b2a3abe77d653dfaa1cbc5ecaf25a7f499bc892fc3fb82e1f0786271fb76",
+"T3W1_es_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "f95550ebdcd577458e8a28c507d17b9c5f8343c9c02b269dc2d1e72efd16c8a6",
+"T3W1_es_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "801edb6783c6799000c6ea0f1b5732665585117e6911e5338d85ad99b7551b4b",
"T3W1_es_reset_recovery-test_reset_slip39_advanced.py::test_reset_device_slip39_advanced": "4803db0ec8b1fa538635a502da48394e601203a3ad0e1067c40854442ade77b7",
"T3W1_es_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic": "e5b2e7f38042a5ad9b59decb8ff3ab3c90f98c2908901c7e2d8a06969b5a7c1c",
"T3W1_es_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic_256": "1702b0cdc3533718489074bd209094554f6376115c2695d4fe2a55e2ef728fdf",
@@ -34877,8 +34877,8 @@
"T3W1_es_test_autolock.py::test_autolock_ignores_getaddress": "8eefa8032813299dd9abcc347d6025489bda15af287b58aad9602a3b9acd60e2",
"T3W1_es_test_autolock.py::test_autolock_ignores_initialize": "8eefa8032813299dd9abcc347d6025489bda15af287b58aad9602a3b9acd60e2",
"T3W1_es_test_basic.py::test_capabilities": "56536ae9cd7c4ff8022def4ec3350031d3614064d961f53a2850f2be425af201",
-"T3W1_es_test_basic.py::test_device_id_different": "e92cc435ea190a24035e4487c96479fc714c607b7030d92cfa250657c1b698f4",
-"T3W1_es_test_basic.py::test_device_id_same": "a330cadf40a1bb7032271422215a82730f5ef258f30bd9ce5b1d24973da0fd54",
+"T3W1_es_test_basic.py::test_device_id_different": "3275e1355569d611e982a6d49e02cc5a3ff5b7be91e2f5f378804a59d9476eea",
+"T3W1_es_test_basic.py::test_device_id_same": "28fef3a57d720b8804bc8e936c5171417465a1882bbb850eb0ef9e6c9ace0a4b",
"T3W1_es_test_basic.py::test_ping": "56536ae9cd7c4ff8022def4ec3350031d3614064d961f53a2850f2be425af201",
"T3W1_es_test_busy_state.py::test_busy_expiry_core": "bdb4e38629312d5a49ccf65b2f3c8fc5c9ac65146ed08ee52cb6d01a20bafedd",
"T3W1_es_test_busy_state.py::test_busy_state": "28fee3788fde608e6bf14ba91898848c26a78aeffe055e7689ba965f13ed2e4b",
@@ -34886,7 +34886,7 @@
"T3W1_es_test_cancel.py::test_cancel_message_via_cancel[message1]": "85692699923c07c0ec90a77a84d7b712ea31fe9e68027babc1ed741867a05cdc",
"T3W1_es_test_cancel.py::test_cancel_on_paginated": "89a34e1d9a32ebf4b64f9050e04a25df36e78d3993e562a169e75263a57b0e10",
"T3W1_es_test_debuglink.py::test_gc_info": "56536ae9cd7c4ff8022def4ec3350031d3614064d961f53a2850f2be425af201",
-"T3W1_es_test_debuglink.py::test_softlock_instability": "0c8f2314505e2f910dd049623d27832f06840bde04615e7d88e78072b355804d",
+"T3W1_es_test_debuglink.py::test_softlock_instability": "e1e3260a21c3cb01c8398ba2d46887e0207a760cfcb3cb2bc38fa6583cc3b1f8",
"T3W1_es_test_firmware_hash.py::test_firmware_hash_emu": "cc118d8fcd4d0d91f285fd17d5949c8b34ec8f5097aad6e9e8fdee1755ec33f6",
"T3W1_es_test_firmware_hash.py::test_firmware_hash_hw": "56536ae9cd7c4ff8022def4ec3350031d3614064d961f53a2850f2be425af201",
"T3W1_es_test_language.py::test_error_invalid_data_hash": "feed89ff5785c6df851acf625e71b7867a16a4cb899f66722c1b2ce85e8e7b7a",
@@ -34903,7 +34903,7 @@
"T3W1_es_test_language.py::test_full_language_change[it]": "4cd5c753e6fda7ad5299729d922f71a92be23524168a334cc6a1e4fa309c46d0",
"T3W1_es_test_language.py::test_full_language_change[pt]": "81901f47e033c7b54b149637d62a35d33120dd8d4d720eddadb2e3a0fdd3fb42",
"T3W1_es_test_language.py::test_header_trailing_data": "b49ee76b35420e8b9660c8c0153572233f1bb5f634cbd74697aa77d3ab752d64",
-"T3W1_es_test_language.py::test_language_is_removed_after_wipe": "984223e386571e3d3381fb9082ae30927d20a04c9028385cc4ed6bdb36d2d3d1",
+"T3W1_es_test_language.py::test_language_is_removed_after_wipe": "d36d66ce0d794272d40d505600365d0a1b9e16f729fe9976b0e7dec0e03cfb92",
"T3W1_es_test_language.py::test_reject_update": "e9b2829148bbece8daa5ec2f0b7fddab585ed19d101c5e454f93d50ff18f8ca4",
"T3W1_es_test_language.py::test_silent_first_install[False-False]": "2f0fb01da3998203a974bf56cd7d76555329fec32ed1209af8011314efe63979",
"T3W1_es_test_language.py::test_silent_first_install[None-False]": "2f0fb01da3998203a974bf56cd7d76555329fec32ed1209af8011314efe63979",
@@ -34958,10 +34958,10 @@
"T3W1_es_test_msg_loaddevice.py::test_load_device_2": "112fe99fa84368e1015335b26465dea8af27e1a69c97ae18bcd0836822c6ec60",
"T3W1_es_test_msg_loaddevice.py::test_load_device_slip39_advanced": "a7f03bd388af6b8e884fba4dc134074b12bb76639a973f7ecf13acf461b16a1a",
"T3W1_es_test_msg_loaddevice.py::test_load_device_slip39_basic": "a7f03bd388af6b8e884fba4dc134074b12bb76639a973f7ecf13acf461b16a1a",
-"T3W1_es_test_msg_loaddevice.py::test_load_device_utf": "272b1104a6cac9783be47470c117a681d713a7c0c7fe4963a5fddca2f22039a2",
+"T3W1_es_test_msg_loaddevice.py::test_load_device_utf": "55ca3a6d622b3875183cc42313ffdb35f7505ce20e50ceaf2439b094f937cb8a",
"T3W1_es_test_msg_ping.py::test_ping": "987c6a768938f3c161bd6d57fcb642439e485eb15e7667d7c8bdefb444e8ea55",
-"T3W1_es_test_msg_wipedevice.py::test_autolock_not_retained": "bfd51c8ec66d17244326b8431aa61e0811e58c06ce8a44916cf29c95fed0a8ea",
-"T3W1_es_test_msg_wipedevice.py::test_wipe_device": "e92cc435ea190a24035e4487c96479fc714c607b7030d92cfa250657c1b698f4",
+"T3W1_es_test_msg_wipedevice.py::test_autolock_not_retained": "43c980b3579d4f504905b5aea127ee01aa910a5b82c281ed91282ca539ac9e47",
+"T3W1_es_test_msg_wipedevice.py::test_wipe_device": "3275e1355569d611e982a6d49e02cc5a3ff5b7be91e2f5f378804a59d9476eea",
"T3W1_es_test_passphrase_slip39_advanced.py::test_128bit_passphrase": "eaa0199c74c6fcf3a3202c4733c3ed91013a8ca56a5ebc80768790635c8098a3",
"T3W1_es_test_passphrase_slip39_advanced.py::test_256bit_passphrase": "eaa0199c74c6fcf3a3202c4733c3ed91013a8ca56a5ebc80768790635c8098a3",
"T3W1_es_test_passphrase_slip39_basic.py::test_2of3_ext_passphrase": "e0159327f8738c67ae010ab52d9683335881981170cf2e4db9211889b955b485",
@@ -34985,7 +34985,7 @@
"T3W1_es_test_protection_levels.py::test_signtx": "b1c95be9b26fe6a29bb0fb6dbb71605cc45bd94ab4d05307f7565f0a630e9f51",
"T3W1_es_test_protection_levels.py::test_unlocked": "99a47fb7dd4d954603f4a2faa7bbd522946b0986ca188057b5828296ac16f712",
"T3W1_es_test_protection_levels.py::test_verify_message_t2": "dcc8c4f7482c8e689f4f3d0cbdc1e60b75f1446ad16914fd9a98ecb74a0f57cb",
-"T3W1_es_test_protection_levels.py::test_wipe_device": "64fb48d1af27dc039233918f25fbe6e41b3e25c6221be178588b56afae029fe8",
+"T3W1_es_test_protection_levels.py::test_wipe_device": "01170d5b8d75c146e53b5d5fe507fc35f0abfc5550a631b3e93421a57b26cc50",
"T3W1_es_test_repeated_backup.py::test_repeated_backup_via_host": "420abda4f1df871e7e17ddc062a5fca77d8be62a29902254a5cb457bd1a25d1b",
"T3W1_es_test_repeated_backup.py::test_repeated_backup_via_host_cancel": "5e5bfbbf4705f558ac2bba35924e0c4e5cd807337ecddbfa87bf5c160c917021",
"T3W1_es_test_repeated_backup.py::test_repeated_backup_via_host_send_disallowed_message": "5e5bfbbf4705f558ac2bba35924e0c4e5cd807337ecddbfa87bf5c160c917021",
@@ -35012,22 +35012,22 @@
"T3W1_es_tezos-test_sign_tx.py::test_tezos_smart_contract_delegation": "f0cce924c161847b6a378ca300497de34311d936b8a36085938624c1fa20ca94",
"T3W1_es_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer": "1fb555330e4c1ceb44d35ca0bc24d40a5a9c17f3539963ec91e8738876589455",
"T3W1_es_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer_to_contract": "53879c21f311e7096d9bc58d8fd1e01faf9cac875909c672a4597698d9684ada",
-"T3W1_es_thp-test_abp.py::test_abp": "493816d5f53ce0deeab5e20eeec662ae26865300e4e429f26613f91a073c7626",
+"T3W1_es_thp-test_abp.py::test_abp": "051097497ee084fa5283b9e2e8f2e95799f08dfa384dcf1ac869cc7ce09e289d",
"T3W1_es_thp-test_basic.py::test_v1": "987d1c62e6576b9cc24373e00df522efdc9736af978d6032f7d319af8daaef5d",
"T3W1_es_thp-test_basic.py::test_v2_unallocated": "987d1c62e6576b9cc24373e00df522efdc9736af978d6032f7d319af8daaef5d",
"T3W1_es_thp-test_handshake.py::test_allocate_channel": "56536ae9cd7c4ff8022def4ec3350031d3614064d961f53a2850f2be425af201",
-"T3W1_es_thp-test_handshake.py::test_handshake": "493816d5f53ce0deeab5e20eeec662ae26865300e4e429f26613f91a073c7626",
+"T3W1_es_thp-test_handshake.py::test_handshake": "051097497ee084fa5283b9e2e8f2e95799f08dfa384dcf1ac869cc7ce09e289d",
"T3W1_es_thp-test_multiple_hosts.py::test_concurrent_handshakes": "56536ae9cd7c4ff8022def4ec3350031d3614064d961f53a2850f2be425af201",
-"T3W1_es_thp-test_pairing.py::test_autoconnect_credential_request_cancel": "7748bbb99991a15f73ed5cd54d7baea332e5f3e95af3e4b68bcaff8d1da1eb92",
-"T3W1_es_thp-test_pairing.py::test_channel_replacement": "64c0148420985a0d04d9f101e6f87112baa0268567879b74d5a9ce7acf8c62f9",
-"T3W1_es_thp-test_pairing.py::test_connection_confirmation_cancel": "b5b982fc225822343089be357dc0538d51aa4e0e3ca8c6d36781a522fb12dfc0",
-"T3W1_es_thp-test_pairing.py::test_credential_phase": "88d8e3dd6ca23fd05ae46d6154d72fad2a823e8df7f3fc06cf7c8d8522e6177f",
-"T3W1_es_thp-test_pairing.py::test_credential_request_in_encrypted_transport_phase": "c6c3e4f7ac29f22aa3cf8d384616d3f6ba90501122a3b40ce3f83fc1d0cf5c91",
-"T3W1_es_thp-test_pairing.py::test_pairing_cancel_1": "067cba007e12f7bd348a767454df93d2ef6c1815573a0006cc633df22d7931c5",
-"T3W1_es_thp-test_pairing.py::test_pairing_cancel_2": "676100d1ba5a68688ca598e091664ea1db08439403fbe01ccc82d60f1178aed0",
-"T3W1_es_thp-test_pairing.py::test_pairing_code_entry": "f6539069dbdb8fd47bf6abcb54eb1eeea548769e097edea184099a79b67d0624",
-"T3W1_es_thp-test_pairing.py::test_pairing_code_entry_cancel": "f6539069dbdb8fd47bf6abcb54eb1eeea548769e097edea184099a79b67d0624",
-"T3W1_es_thp-test_pairing.py::test_pairing_nfc": "86b43f80df4b7368e62adff39e1a7c391b0e5c61473b2ed46ccc57a8d0ac7b29",
+"T3W1_es_thp-test_pairing.py::test_autoconnect_credential_request_cancel": "dce1c8666d991e3cb4e803dc147cca9e60a3f2e80e13c7a167f36addbd532877",
+"T3W1_es_thp-test_pairing.py::test_channel_replacement": "32f58134a3940023256f73e5ed1b137830f2983e2527a33a28dee937e897568a",
+"T3W1_es_thp-test_pairing.py::test_connection_confirmation_cancel": "e1f93c394c014a390002f2ed3cea24040dc54335a2ab91eb0e18acea57dccfe6",
+"T3W1_es_thp-test_pairing.py::test_credential_phase": "1acbfb9b0e93483681678ee4331368cccf39bdeae8dfbc19aa690274e382a9c9",
+"T3W1_es_thp-test_pairing.py::test_credential_request_in_encrypted_transport_phase": "290fa5d6a8694bdb44486aca3c5369c33777d3b9391064c2a1c5b7c7458f7f9a",
+"T3W1_es_thp-test_pairing.py::test_pairing_cancel_1": "909b1f9daa9a1c9366f26f20c078460fa135ec41b83530237307efad5291d8cc",
+"T3W1_es_thp-test_pairing.py::test_pairing_cancel_2": "5aaac8c014e4da69e02b5becfd494a426eebb5fba5fdd7b68d4cdb276507ef50",
+"T3W1_es_thp-test_pairing.py::test_pairing_code_entry": "d17e5b9fa5b8e2e6e11354783dbe4bffaf20489e9b301738fc1c1dec67c30b6c",
+"T3W1_es_thp-test_pairing.py::test_pairing_code_entry_cancel": "d17e5b9fa5b8e2e6e11354783dbe4bffaf20489e9b301738fc1c1dec67c30b6c",
+"T3W1_es_thp-test_pairing.py::test_pairing_nfc": "4f70f7f5808bf73bbb706599edecfcdaa23199bbdd1892b325c3756762b58040",
"T3W1_es_thp-test_pairing.py::test_pairing_qr_code": "56536ae9cd7c4ff8022def4ec3350031d3614064d961f53a2850f2be425af201",
"T3W1_es_webauthn-test_msg_webauthn.py::test_add_remove": "85d81bed1998bbca18bbe3069c7fa7a419ea29de0d2b8f9feed5e965c2c6d5cb",
"T3W1_es_webauthn-test_u2f_counter.py::test_u2f_counter": "3066cd19b3e440de44b21953e53ee71c74032f1d3da808c322e7a8ab1db171df",
@@ -36172,9 +36172,9 @@
"T3W1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "bd5e95155335a0cb1860639c1b63d91b3f0bdbc496c9e707658592d676a046b4",
"T3W1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_entropy_check": "a6f58664acd52495f3d0d3d1775b154c24e52be95590c7fe5423aef12b8befc7",
"T3W1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "6c4b68f53f1d71871706ab1c0f2242cf6701d0e30f17d1b24b012b3756d05b0f",
-"T3W1_fr_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "0d2a60f9c6574b324450d663bc0e5567aa3ef7598d1a513b0a7b0c5cd4e3567b",
-"T3W1_fr_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "ad9a79b2bd18ab5feb9719fc9ad6857394ecb909b0323fcc3ab897333c7f978d",
-"T3W1_fr_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "674d0af7a608a2181fc521956ba77adf4a211e69ce3795f13b338b94b72d94db",
+"T3W1_fr_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "83166a4bd7ce19942c6285b12b6b2d2e8dc4afee4a477222644d48e03034b363",
+"T3W1_fr_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "598d9f45c42c38f1097564f9f7f235973c4d3b8eb93ee21dc511d5b228a21499",
+"T3W1_fr_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "c1d864fa5a18345a64cffd5250180f03bc0c0bba2d0ce792cca877b9adf5fd39",
"T3W1_fr_reset_recovery-test_reset_slip39_advanced.py::test_reset_device_slip39_advanced": "f3966db44804d3b59966e7909b5a036f2bef1dac5fc1bbfa0f5a268dfe9a0540",
"T3W1_fr_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic": "d3bc130c38e780d96de437aa68f83e1cfb8897d20689ae52cdc19c4431e7e95f",
"T3W1_fr_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic_256": "742c845d216b93a9c2180038e82b1b7f9a2109b8fc072f5fa34662b4869322e0",
@@ -36358,8 +36358,8 @@
"T3W1_fr_test_autolock.py::test_autolock_ignores_getaddress": "52677cf52353ba174ecd41a8dc74f9c46bbd9f7ad3ad9ea3ddab5916841b7152",
"T3W1_fr_test_autolock.py::test_autolock_ignores_initialize": "52677cf52353ba174ecd41a8dc74f9c46bbd9f7ad3ad9ea3ddab5916841b7152",
"T3W1_fr_test_basic.py::test_capabilities": "e8156cf4eda1d29060f05b4a18d50032b0b344230609b7de7cababfe0a86b20b",
-"T3W1_fr_test_basic.py::test_device_id_different": "d6e975c614ff42e085e7c8907518dadfd7c494129af790d129cf56ee413a20b3",
-"T3W1_fr_test_basic.py::test_device_id_same": "88a6a4ac4f0fe31379cc29b2ef5bcec9e7516b3acc1991f314c47253a12aeff0",
+"T3W1_fr_test_basic.py::test_device_id_different": "c5431434e76680cde7e5bc2dfefe79a67eb916c382f89728bf2e152166c0556b",
+"T3W1_fr_test_basic.py::test_device_id_same": "7ee2accc37d63526986ed343f4a236486613caec2a9954d6ffa70ed9a97cbf61",
"T3W1_fr_test_basic.py::test_ping": "e8156cf4eda1d29060f05b4a18d50032b0b344230609b7de7cababfe0a86b20b",
"T3W1_fr_test_busy_state.py::test_busy_expiry_core": "69d2c1c33ee7f284bb47e79ddd1bd15b980309a3dcf8d6afd2a7928842c301a0",
"T3W1_fr_test_busy_state.py::test_busy_state": "312fe11959079b4768cdd9a7fe612a0251f9388c7188fce5ccab09c54afbefc6",
@@ -36367,7 +36367,7 @@
"T3W1_fr_test_cancel.py::test_cancel_message_via_cancel[message1]": "daee8f81f9023bcae2961f99340c0f9749532e53fcf2bea32f18d38a2442feab",
"T3W1_fr_test_cancel.py::test_cancel_on_paginated": "1a4cbacbb9aa4088c4341c4c9ac0d56bdeb0e8f934c831556d5e0ba261651d0a",
"T3W1_fr_test_debuglink.py::test_gc_info": "e8156cf4eda1d29060f05b4a18d50032b0b344230609b7de7cababfe0a86b20b",
-"T3W1_fr_test_debuglink.py::test_softlock_instability": "359874b415f8866ea017a66696e36c3dce7be21b46ef15e237411746d2bc2d41",
+"T3W1_fr_test_debuglink.py::test_softlock_instability": "0b5b5d59b277495d05b1fdf027fe17fd07c50a48c83dd240277019cb6451ae30",
"T3W1_fr_test_firmware_hash.py::test_firmware_hash_emu": "fb1f6619c3bd958a137bd6a1b88c438b0ea265edb55846ade14ea347432a3a99",
"T3W1_fr_test_firmware_hash.py::test_firmware_hash_hw": "e8156cf4eda1d29060f05b4a18d50032b0b344230609b7de7cababfe0a86b20b",
"T3W1_fr_test_language.py::test_error_invalid_data_hash": "a1cdd437b8e1e1dee6daaa669b97cbb835b435cd962fd8241b3ea2504827c6b6",
@@ -36384,7 +36384,7 @@
"T3W1_fr_test_language.py::test_full_language_change[it]": "2583d37bab3f7121b518ec0c3b12d62760b81ea7dd7a235d0cee093b187bec38",
"T3W1_fr_test_language.py::test_full_language_change[pt]": "a6a780158a135563212ebe8f396cffdd20d2dc437d948d549644884d8d514597",
"T3W1_fr_test_language.py::test_header_trailing_data": "676d6b6c8d1baf43f58ff49190874f6879da70d1c24879a9e4b9fe07e6189e16",
-"T3W1_fr_test_language.py::test_language_is_removed_after_wipe": "ccf45ef7bf1dd1b55773b9d728629f7cceb9f5a420979739f4d63209c2c7b732",
+"T3W1_fr_test_language.py::test_language_is_removed_after_wipe": "b2bcea06fbde21b7fd1709321c41fd8b0d4b0275a57c03891e06b737e4ebbd71",
"T3W1_fr_test_language.py::test_reject_update": "7c18787ede15769bc20feae0e6c401919c2c41ed1536846f325b04fd13275864",
"T3W1_fr_test_language.py::test_silent_first_install[False-False]": "872032c2fdea9a57d8a8557d3879848c6ac281eeefeaf51cb94595dfed63d665",
"T3W1_fr_test_language.py::test_silent_first_install[None-False]": "872032c2fdea9a57d8a8557d3879848c6ac281eeefeaf51cb94595dfed63d665",
@@ -36439,10 +36439,10 @@
"T3W1_fr_test_msg_loaddevice.py::test_load_device_2": "c870dfdea2779251df46d71f1d3a5f09c2c95b9c734d2e89ddc77b94d913502d",
"T3W1_fr_test_msg_loaddevice.py::test_load_device_slip39_advanced": "fcbc49b491f93d7557e6e51cbfdbfcd35b4bfcbfca34e7cc15a3cea44138bc3d",
"T3W1_fr_test_msg_loaddevice.py::test_load_device_slip39_basic": "fcbc49b491f93d7557e6e51cbfdbfcd35b4bfcbfca34e7cc15a3cea44138bc3d",
-"T3W1_fr_test_msg_loaddevice.py::test_load_device_utf": "3793cf98db6714519f5b1c30f5e84bf8d2566df378f580df82fc8b04b772c8bd",
+"T3W1_fr_test_msg_loaddevice.py::test_load_device_utf": "8607f03a5fdec3265e7ed7d2ff19d4a20e7193adfeb9ef105bd0403ec495d2dc",
"T3W1_fr_test_msg_ping.py::test_ping": "0864078fbe46c2e2774e4b3dab4e620fa7540e3fa7bd71c5bc4328f0183455cf",
-"T3W1_fr_test_msg_wipedevice.py::test_autolock_not_retained": "303f128047480961afa5d2d5b29daf461843c7664dff78c920a4e5fe8d175d23",
-"T3W1_fr_test_msg_wipedevice.py::test_wipe_device": "d6e975c614ff42e085e7c8907518dadfd7c494129af790d129cf56ee413a20b3",
+"T3W1_fr_test_msg_wipedevice.py::test_autolock_not_retained": "99b2550975ea1f2c13655745d3c5e0104c0b72262bca4f03ee9fe2593ad97747",
+"T3W1_fr_test_msg_wipedevice.py::test_wipe_device": "c5431434e76680cde7e5bc2dfefe79a67eb916c382f89728bf2e152166c0556b",
"T3W1_fr_test_passphrase_slip39_advanced.py::test_128bit_passphrase": "1bbcc39e20cc1f34634d4444d8609c92ca38bb39bb54ba76d9ecb868e03453e2",
"T3W1_fr_test_passphrase_slip39_advanced.py::test_256bit_passphrase": "1bbcc39e20cc1f34634d4444d8609c92ca38bb39bb54ba76d9ecb868e03453e2",
"T3W1_fr_test_passphrase_slip39_basic.py::test_2of3_ext_passphrase": "c786e16c8f5fb0ae9e95e43599e3d72722fa1c0885fbf912b8f7f32def626cb4",
@@ -36466,7 +36466,7 @@
"T3W1_fr_test_protection_levels.py::test_signtx": "ef0574b49c24e02a3d3542d82023280960550cb2e610fca71a8f33b3ee9f6834",
"T3W1_fr_test_protection_levels.py::test_unlocked": "2628f5673cb4be622f4ca590331dbafa7366034db644196579a59eed9303a78b",
"T3W1_fr_test_protection_levels.py::test_verify_message_t2": "422eb3c92eb9dfea0fa2502735d283f4ede9b94e467e9879bd4ff0020d987622",
-"T3W1_fr_test_protection_levels.py::test_wipe_device": "ee5a605445c12a51becb635e7580949991e2b690b529ee74fe06aafb629c5b77",
+"T3W1_fr_test_protection_levels.py::test_wipe_device": "4e67fbcc6595abc1585fd9f79d9d1a3e561794db347e6a8ce318dea9b032d1d9",
"T3W1_fr_test_repeated_backup.py::test_repeated_backup_via_host": "78bb52b583fb1f52cb4399ec6e33775b79aa111a6b7f44dab029fabcb0c0609d",
"T3W1_fr_test_repeated_backup.py::test_repeated_backup_via_host_cancel": "4c237977e752b8b48642638d966f41baa7fc2112110362497af9bfaa2d66b667",
"T3W1_fr_test_repeated_backup.py::test_repeated_backup_via_host_send_disallowed_message": "4c237977e752b8b48642638d966f41baa7fc2112110362497af9bfaa2d66b667",
@@ -36493,22 +36493,22 @@
"T3W1_fr_tezos-test_sign_tx.py::test_tezos_smart_contract_delegation": "39599268c947d8699c9d71b5525e14c7175f33272f658d7bbde2ae8be68bc6c3",
"T3W1_fr_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer": "0051e6e509fcf86d1051feb4e4f199181ee25b3328fb18e7f51ee8da4c431bba",
"T3W1_fr_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer_to_contract": "62a21d769a23f589f07b9dfee34527834c01e89e5eef27e65326a01655f6acc8",
-"T3W1_fr_thp-test_abp.py::test_abp": "a2dac98199240f3a05f923d84643db55690d3704f8ea14b349cefb16b6d5eec7",
+"T3W1_fr_thp-test_abp.py::test_abp": "570e56c81c2805eeb54627d74f125a808c7d7248b0d6ea175d5048360ef91de0",
"T3W1_fr_thp-test_basic.py::test_v1": "987d1c62e6576b9cc24373e00df522efdc9736af978d6032f7d319af8daaef5d",
"T3W1_fr_thp-test_basic.py::test_v2_unallocated": "987d1c62e6576b9cc24373e00df522efdc9736af978d6032f7d319af8daaef5d",
"T3W1_fr_thp-test_handshake.py::test_allocate_channel": "e8156cf4eda1d29060f05b4a18d50032b0b344230609b7de7cababfe0a86b20b",
-"T3W1_fr_thp-test_handshake.py::test_handshake": "a2dac98199240f3a05f923d84643db55690d3704f8ea14b349cefb16b6d5eec7",
+"T3W1_fr_thp-test_handshake.py::test_handshake": "570e56c81c2805eeb54627d74f125a808c7d7248b0d6ea175d5048360ef91de0",
"T3W1_fr_thp-test_multiple_hosts.py::test_concurrent_handshakes": "e8156cf4eda1d29060f05b4a18d50032b0b344230609b7de7cababfe0a86b20b",
-"T3W1_fr_thp-test_pairing.py::test_autoconnect_credential_request_cancel": "6e2a780c5e9ea44ca3aa607a9a9f30d4237943f95abbe23e0ac4f29b3c9a249a",
-"T3W1_fr_thp-test_pairing.py::test_channel_replacement": "2fae9b29db3159d7255b85f48b7159f313fcda8e880f329b9c0df95d4e1c9a3a",
-"T3W1_fr_thp-test_pairing.py::test_connection_confirmation_cancel": "785e454d2a7dcc45091ad34d7acf85ba1f8c3c7fcb5a1c94ea780064524a02ee",
-"T3W1_fr_thp-test_pairing.py::test_credential_phase": "c77497f94419717f7627c5b659ecc527115066a5c9d0e559b50456379271200a",
-"T3W1_fr_thp-test_pairing.py::test_credential_request_in_encrypted_transport_phase": "70f0d349bb96ed0edd2e64e1ee4db91603d02b2bafb5dc9ba6b24e226d41b5fc",
-"T3W1_fr_thp-test_pairing.py::test_pairing_cancel_1": "966b61d4d8e75e4c4022bd9b6f3613399a40e0426c71da6c962678aca7059e29",
-"T3W1_fr_thp-test_pairing.py::test_pairing_cancel_2": "92ea37bbf51f1fb1379d81550cfcfe56a5301eafffef8f569c4c51958dda17f1",
-"T3W1_fr_thp-test_pairing.py::test_pairing_code_entry": "42556aecc2eaa1096e5fdaab0f27fcd24fa738f466ce0f6faae70bc8d27d936a",
-"T3W1_fr_thp-test_pairing.py::test_pairing_code_entry_cancel": "42556aecc2eaa1096e5fdaab0f27fcd24fa738f466ce0f6faae70bc8d27d936a",
-"T3W1_fr_thp-test_pairing.py::test_pairing_nfc": "dec643ecf99652128aa6bbf066e99abc6b90efe361f348f1626643a2f0e8c154",
+"T3W1_fr_thp-test_pairing.py::test_autoconnect_credential_request_cancel": "3a05018b1bf42d019433ca2150649e0753373a8e94266e8722bd9a5f0aff994d",
+"T3W1_fr_thp-test_pairing.py::test_channel_replacement": "43706e1e627813204cc18021d46041262e0c26a9fc2f7b6dc57b5ab4a23bbb3b",
+"T3W1_fr_thp-test_pairing.py::test_connection_confirmation_cancel": "40d3860c577bd0dd2fe91dfa20c2d5bb95451c4062c03ede89f89e7f344f2e2b",
+"T3W1_fr_thp-test_pairing.py::test_credential_phase": "2679869b8e629bcf02a2617d2b83672e195d1178a93a3b9238870455c1308818",
+"T3W1_fr_thp-test_pairing.py::test_credential_request_in_encrypted_transport_phase": "b1dd35185033121be97b413d53dec0733ee3ca55596ed9af3d14cc05f30b92c9",
+"T3W1_fr_thp-test_pairing.py::test_pairing_cancel_1": "e964794802404ef9f35ec8db3e1a57d1d32a7dcef84e922d18f6aeb71023ad80",
+"T3W1_fr_thp-test_pairing.py::test_pairing_cancel_2": "c525f64daaf0027f77a1cda71d90e71dc8ce6fad7818ab8c02efca7fc4572bf5",
+"T3W1_fr_thp-test_pairing.py::test_pairing_code_entry": "6d285b45404fa6f2573c9e18a558cf45e5ad1d5b33753a62de42e8a5187e1088",
+"T3W1_fr_thp-test_pairing.py::test_pairing_code_entry_cancel": "6d285b45404fa6f2573c9e18a558cf45e5ad1d5b33753a62de42e8a5187e1088",
+"T3W1_fr_thp-test_pairing.py::test_pairing_nfc": "49279f2e0c4d01d9c456e4c925bee4c646b8d24dcfb723c03d55f19a95f3ef2b",
"T3W1_fr_thp-test_pairing.py::test_pairing_qr_code": "e8156cf4eda1d29060f05b4a18d50032b0b344230609b7de7cababfe0a86b20b",
"T3W1_fr_webauthn-test_msg_webauthn.py::test_add_remove": "5346304ff4c3d817f5804c64a656a3bd9e4c353575bb1fcbab46796003f61f64",
"T3W1_fr_webauthn-test_u2f_counter.py::test_u2f_counter": "033c546199c5ce4a81246ce4acfd1f16ad39fef83bd6deeb8fa5d67ad8842494",
@@ -37653,9 +37653,9 @@
"T3W1_pt_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "3d691b03d3d6763e4031c18f2a29fa7863fdfa7b69b9775a89107fb49d574538",
"T3W1_pt_reset_recovery-test_reset_bip39_t2.py::test_reset_entropy_check": "4bd208b184f991bd315129f87f918b23eeedcd3a4a9c6e9b7e41abc15218f7ed",
"T3W1_pt_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "2530e525dc451b249af6b8a1c8d871fa318f1f068ec233f0a6530bae0c9eeb5e",
-"T3W1_pt_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "a133941140e7c58ba9806ceeff4c98122474092f85e6259b76e07fe4433b5356",
-"T3W1_pt_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "6dc1ab6716490a72084c9eb3594d2d3cc5931a7eec7be33f1960be5f380831cf",
-"T3W1_pt_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "bc388d2931ed6a9ab3c355606274fad86d9a6c95d38ea60c5a3121918291d6a0",
+"T3W1_pt_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "9b1e700fa8be62405da7016b2449db87f1a90c1ee82a777db29fb2a06d9a52bb",
+"T3W1_pt_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "1a3030a953b5fc73d0f75829135fa9f5a0cc0085166cc443f89fbbfe958e6094",
+"T3W1_pt_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "9120a62b5c10fbee4b4a6b6d92211b8b0777a9e99900ab500cf82e1b57f1d280",
"T3W1_pt_reset_recovery-test_reset_slip39_advanced.py::test_reset_device_slip39_advanced": "db46bbac70c7e55aa600e10a2de1c91fc04ca0b17e53156d22cde61854dda33b",
"T3W1_pt_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic": "5cca89c704894636abf71c59be7b4dab872a6ec9c8a110c7ed5ab53c595004de",
"T3W1_pt_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic_256": "02db8137e4d6460d984c3a752ac5459d2213ce75b60acd1c7be6c7b0894a174a",
@@ -37839,8 +37839,8 @@
"T3W1_pt_test_autolock.py::test_autolock_ignores_getaddress": "23facd4e405a2ded41363a5ff3284a909cfeefcc28bef0cf7d7a20c0c79cb999",
"T3W1_pt_test_autolock.py::test_autolock_ignores_initialize": "23facd4e405a2ded41363a5ff3284a909cfeefcc28bef0cf7d7a20c0c79cb999",
"T3W1_pt_test_basic.py::test_capabilities": "1c74667c078e25e7e0d37c7b2aa35f7c8ab02cd88e74695ecb355c82a293b0cc",
-"T3W1_pt_test_basic.py::test_device_id_different": "4e197a21546cd5ececf2548a5da252b6382685d30a034cf9b233de4ee9bb47cb",
-"T3W1_pt_test_basic.py::test_device_id_same": "5c0b3ed3937f59a9d73b2842ec94bd05c4fc2c188572a9f8d0198790f321703a",
+"T3W1_pt_test_basic.py::test_device_id_different": "d13fa8de856b903b099f296accf2318337a260624c5498fa1d7e53de98b1a382",
+"T3W1_pt_test_basic.py::test_device_id_same": "b864f2161dbe827b5b546d57b21818ab39220fce5d9f6aee67267483eec93bd1",
"T3W1_pt_test_basic.py::test_ping": "1c74667c078e25e7e0d37c7b2aa35f7c8ab02cd88e74695ecb355c82a293b0cc",
"T3W1_pt_test_busy_state.py::test_busy_expiry_core": "9c300b20e5174425dfdfcf08f6a1a672fdd56dc8d14acb87331a35a19e60c47c",
"T3W1_pt_test_busy_state.py::test_busy_state": "cdea3664f580da565de05bcfce0d75cbb348d7c6ecaf0c6187c6fcb5863c69f7",
@@ -37848,7 +37848,7 @@
"T3W1_pt_test_cancel.py::test_cancel_message_via_cancel[message1]": "d4dd1f545dee63af94a760831aea535c0477277b0eaf27c465e4da7951d4fb8a",
"T3W1_pt_test_cancel.py::test_cancel_on_paginated": "041e30819d4fda45245d4eda8d9ac2f0457a38c462f55a7f944ba554c874666e",
"T3W1_pt_test_debuglink.py::test_gc_info": "1c74667c078e25e7e0d37c7b2aa35f7c8ab02cd88e74695ecb355c82a293b0cc",
-"T3W1_pt_test_debuglink.py::test_softlock_instability": "a6765aace7de6494346623f21e1f2deed74f80b46e8eef2fd542faf28dbe2c33",
+"T3W1_pt_test_debuglink.py::test_softlock_instability": "334596274ad79946f40a6eca4d8e214065e735c4e33d59d434b2ba0a865d2041",
"T3W1_pt_test_firmware_hash.py::test_firmware_hash_emu": "6a965c54bb8d7f8b74743196160ebd2fe05fd1c58b34a23b15a64bd16c0291d9",
"T3W1_pt_test_firmware_hash.py::test_firmware_hash_hw": "1c74667c078e25e7e0d37c7b2aa35f7c8ab02cd88e74695ecb355c82a293b0cc",
"T3W1_pt_test_language.py::test_error_invalid_data_hash": "9df2b1ec0033ded110e9fc661bac2c528f15ddad4b94a59ad8680c8e0d6eec70",
@@ -37865,7 +37865,7 @@
"T3W1_pt_test_language.py::test_full_language_change[it]": "600da75d545c68bf56c2c46559dcb4fa6dfdcfdc54016f628d3ceeaf72d16b08",
"T3W1_pt_test_language.py::test_full_language_change[pt]": "9675d8b3a7d8c02c59853104700d80baa0739857f89086901f09071692fed0f1",
"T3W1_pt_test_language.py::test_header_trailing_data": "7775640522e2637098941eb6e537af771bd490ebf59a087d16b49c5f6e213816",
-"T3W1_pt_test_language.py::test_language_is_removed_after_wipe": "284ac812eb9d9df043e017fa853269a1f10c091a43e209d516c15e52296fcd65",
+"T3W1_pt_test_language.py::test_language_is_removed_after_wipe": "4bf2da99001ee0d1b78b24ff0d5a6755cf140a58a303fe5e8543625d307ad2dd",
"T3W1_pt_test_language.py::test_reject_update": "b139c1e38946aa35787babc44c59eb7645d62ed0b2b90cd28cebf859c078c96f",
"T3W1_pt_test_language.py::test_silent_first_install[False-False]": "e6c568071e6d6673e27c207f0bac3359fb1103e286a6b293c81fc27ff79ee812",
"T3W1_pt_test_language.py::test_silent_first_install[None-False]": "e6c568071e6d6673e27c207f0bac3359fb1103e286a6b293c81fc27ff79ee812",
@@ -37920,10 +37920,10 @@
"T3W1_pt_test_msg_loaddevice.py::test_load_device_2": "5fe58bda50650a976d3755b2f7edd72d319048585922d78cce4fcce14efeb611",
"T3W1_pt_test_msg_loaddevice.py::test_load_device_slip39_advanced": "d2178dca657d703851e6a02a48ac9b6f0eae0b7f1e5f25c3f0f11d7cc94904c1",
"T3W1_pt_test_msg_loaddevice.py::test_load_device_slip39_basic": "d2178dca657d703851e6a02a48ac9b6f0eae0b7f1e5f25c3f0f11d7cc94904c1",
-"T3W1_pt_test_msg_loaddevice.py::test_load_device_utf": "3edb71e874f70a15a882d89ea08ac1549f80dc84ea2a3d94a2af0c9791185a14",
+"T3W1_pt_test_msg_loaddevice.py::test_load_device_utf": "60254bcc1c6c766037f8a84a8649218e3b737b32cc2d24bc325312b3fd298713",
"T3W1_pt_test_msg_ping.py::test_ping": "62e58f6f1ca3301f1899dcca7057ed1b67a3c34a7031846071f330229427ffdd",
-"T3W1_pt_test_msg_wipedevice.py::test_autolock_not_retained": "683fcba7e02d3d9be7cafc93aac14d8325fc6fb3797f141135925373942f3f78",
-"T3W1_pt_test_msg_wipedevice.py::test_wipe_device": "4e197a21546cd5ececf2548a5da252b6382685d30a034cf9b233de4ee9bb47cb",
+"T3W1_pt_test_msg_wipedevice.py::test_autolock_not_retained": "7e76dde8ee17669647db5b0e1e62373652eaf2e7bc0d9c5880ead97b7d9e6eab",
+"T3W1_pt_test_msg_wipedevice.py::test_wipe_device": "d13fa8de856b903b099f296accf2318337a260624c5498fa1d7e53de98b1a382",
"T3W1_pt_test_passphrase_slip39_advanced.py::test_128bit_passphrase": "c28900057b82ee87dfd61ce51b7d4be6af695fe94140fad78409b4908d35b551",
"T3W1_pt_test_passphrase_slip39_advanced.py::test_256bit_passphrase": "c28900057b82ee87dfd61ce51b7d4be6af695fe94140fad78409b4908d35b551",
"T3W1_pt_test_passphrase_slip39_basic.py::test_2of3_ext_passphrase": "66c1b74c03775aa9f5217fbb95a3d849b1f359c103aed1f3ab91e5cc94a4c422",
@@ -37947,7 +37947,7 @@
"T3W1_pt_test_protection_levels.py::test_signtx": "6ee0a35a6bde126a0ce128c1d43751826871e68dbcf488b63ee1a071b0f46d8c",
"T3W1_pt_test_protection_levels.py::test_unlocked": "5fc4698780c67d79d4b9c359ab21fd9052c5788071dfd485a6488d9dd3b4d6e2",
"T3W1_pt_test_protection_levels.py::test_verify_message_t2": "8a05b79b7389ff707434b77392fd4cc41933bb367d00c62785eb081b4737cd73",
-"T3W1_pt_test_protection_levels.py::test_wipe_device": "93504870d92bd7c8a02c0bd344417a2a1358529946adbbc0948f8340195470c8",
+"T3W1_pt_test_protection_levels.py::test_wipe_device": "d5ff7ac9446f0423af7feed713afb27a190543e31093e3c1ad2a3967c4c23d54",
"T3W1_pt_test_repeated_backup.py::test_repeated_backup_via_host": "19608797bf9c3f4e427846efe3c36de3e1fee6e7f6bae1c059b41211693aa68b",
"T3W1_pt_test_repeated_backup.py::test_repeated_backup_via_host_cancel": "ccd1b2ec2fdd2a13d51c8c57b4192a6e7ebdabad9d935b5159139942cde96fc9",
"T3W1_pt_test_repeated_backup.py::test_repeated_backup_via_host_send_disallowed_message": "ccd1b2ec2fdd2a13d51c8c57b4192a6e7ebdabad9d935b5159139942cde96fc9",
@@ -37974,22 +37974,22 @@
"T3W1_pt_tezos-test_sign_tx.py::test_tezos_smart_contract_delegation": "c94ba93be894ab75945dfd3a4beaf9efbb5377fb58584d0a09dfb8a613a1aedb",
"T3W1_pt_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer": "c2d4b62f7bdbf17a80823d5b2c554eac95abb1de47cd00659665cc02c8135a7b",
"T3W1_pt_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer_to_contract": "5eb0db472ebf3bea458eaa5d6e8329c798efd004df352baedeb08c192278f1f8",
-"T3W1_pt_thp-test_abp.py::test_abp": "74cd25dcefa829e0580aa355ee78dcef4770d2a2dd7463b6146d455e005035a8",
+"T3W1_pt_thp-test_abp.py::test_abp": "c7a0d55e091a859ecf1d381a97903d0e1952e0bcd86cad8f61cb952a9e977b97",
"T3W1_pt_thp-test_basic.py::test_v1": "987d1c62e6576b9cc24373e00df522efdc9736af978d6032f7d319af8daaef5d",
"T3W1_pt_thp-test_basic.py::test_v2_unallocated": "987d1c62e6576b9cc24373e00df522efdc9736af978d6032f7d319af8daaef5d",
"T3W1_pt_thp-test_handshake.py::test_allocate_channel": "1c74667c078e25e7e0d37c7b2aa35f7c8ab02cd88e74695ecb355c82a293b0cc",
-"T3W1_pt_thp-test_handshake.py::test_handshake": "74cd25dcefa829e0580aa355ee78dcef4770d2a2dd7463b6146d455e005035a8",
+"T3W1_pt_thp-test_handshake.py::test_handshake": "c7a0d55e091a859ecf1d381a97903d0e1952e0bcd86cad8f61cb952a9e977b97",
"T3W1_pt_thp-test_multiple_hosts.py::test_concurrent_handshakes": "1c74667c078e25e7e0d37c7b2aa35f7c8ab02cd88e74695ecb355c82a293b0cc",
-"T3W1_pt_thp-test_pairing.py::test_autoconnect_credential_request_cancel": "306b1de8623ad57ad691709463a5ac99e80f271515d2b7975976d9d8b1be19ed",
-"T3W1_pt_thp-test_pairing.py::test_channel_replacement": "aa012de835cf8855436bce15fc0ed0ccde6f78dbe58fdd088ace8b4456191142",
-"T3W1_pt_thp-test_pairing.py::test_connection_confirmation_cancel": "cd1e4d8ded1dd2dd36cfb7c4bc4e4e9690858c8ac5d17c4924b265a8189880a7",
-"T3W1_pt_thp-test_pairing.py::test_credential_phase": "ba7c9386cd4f29deb0260dc082bad97c6cbb2e91a1f3aa3b02b798435ce409b8",
-"T3W1_pt_thp-test_pairing.py::test_credential_request_in_encrypted_transport_phase": "896a9273fde8e3eb6750661eb846e1f57999d4d550d524ed94ad0cf99e810709",
-"T3W1_pt_thp-test_pairing.py::test_pairing_cancel_1": "51afaa3ef34cbf87e945a38ce562d25c25ff532981d08f27317e0d89b67761b4",
-"T3W1_pt_thp-test_pairing.py::test_pairing_cancel_2": "90f43c2105eefd699df8a371a67eef28d730cec0cec4899ddcfe87c6f8b5857e",
-"T3W1_pt_thp-test_pairing.py::test_pairing_code_entry": "c7463281b53a52229fb72dc93c3af51d109355e44a1d79d6f4982379a3ca9ea9",
-"T3W1_pt_thp-test_pairing.py::test_pairing_code_entry_cancel": "c7463281b53a52229fb72dc93c3af51d109355e44a1d79d6f4982379a3ca9ea9",
-"T3W1_pt_thp-test_pairing.py::test_pairing_nfc": "f022e9835008ca927d171b9e5c5e29010fa14ff37d37a981d9d129bbe8200dbe",
+"T3W1_pt_thp-test_pairing.py::test_autoconnect_credential_request_cancel": "056569ae85a56cd2d76417b292e14b512c70e5d9d3673fc13bbcac8372fe26cc",
+"T3W1_pt_thp-test_pairing.py::test_channel_replacement": "106bbafdee2677d9bb4a6d1ca6dce63f110b345e6b46c5588d7169574bb82eae",
+"T3W1_pt_thp-test_pairing.py::test_connection_confirmation_cancel": "64989fd6ed7e60a8302de0b26ffb9f17b6e67d477e3df45b274da2cc7badc5bf",
+"T3W1_pt_thp-test_pairing.py::test_credential_phase": "6017d9cfcad6443de3c756e997c41664db9fd26381c65ff343a5d05821109cb8",
+"T3W1_pt_thp-test_pairing.py::test_credential_request_in_encrypted_transport_phase": "af8e0685435300148cd0d063601c5e217c28dc026a0739255d7b5b0618236ae7",
+"T3W1_pt_thp-test_pairing.py::test_pairing_cancel_1": "9e3a0e918bfee1feb8b77396d69d4e267719caaba7a8f1719bd5a0fa92b693bd",
+"T3W1_pt_thp-test_pairing.py::test_pairing_cancel_2": "12c03b0973cccd7707ffdfac463de8a41cad39a06a8daca66dd483956b4cf5d9",
+"T3W1_pt_thp-test_pairing.py::test_pairing_code_entry": "af0bc0287ca78f18b74542fd758decdd1a4b9c3f22e1e29fef5a2f11e1a29e20",
+"T3W1_pt_thp-test_pairing.py::test_pairing_code_entry_cancel": "af0bc0287ca78f18b74542fd758decdd1a4b9c3f22e1e29fef5a2f11e1a29e20",
+"T3W1_pt_thp-test_pairing.py::test_pairing_nfc": "7be8502a79d278077f4c8d8941bb91913bd8b094d0606db055be8701b771dcad",
"T3W1_pt_thp-test_pairing.py::test_pairing_qr_code": "1c74667c078e25e7e0d37c7b2aa35f7c8ab02cd88e74695ecb355c82a293b0cc",
"T3W1_pt_webauthn-test_msg_webauthn.py::test_add_remove": "56cb3438720d4a6f161cafc263d23d8ea2ce40df0af04e9d211c9921a493b19e",
"T3W1_pt_webauthn-test_u2f_counter.py::test_u2f_counter": "bc96269b8d1e70937f7e28f691585de31538e75a5407e140b6bfb8916eaca67b",
@@ -38004,13 +38004,13 @@
"T3W1_pt_zcash-test_sign_tx.py::test_version_group_id_missing": "1c74667c078e25e7e0d37c7b2aa35f7c8ab02cd88e74695ecb355c82a293b0cc"
},
"persistence_tests": {
-"T3W1_en_test_safety_checks.py::test_safety_checks_level_after_reboot[SafetyCheckLevel.PromptAlways--081810a6": "9982d5dec3129d225cc9d6960fe6d633ed03c6ffdc602105458947a8039c9bfc",
-"T3W1_en_test_safety_checks.py::test_safety_checks_level_after_reboot[SafetyCheckLevel.PromptTempora-b3d21f4a": "766ef2d4a528f8538eec487932e02d3ae4ec7ec3472dbfff6aced38946b86d5f",
-"T3W1_en_test_safety_checks.py::test_safety_checks_level_after_reboot[SafetyCheckLevel.Strict-Safety-f1ff9c26": "36cb9b759059efec753d42dbd6406548deec14f5db3ef2a770b04ed8fcf5f45e",
-"T3W1_en_test_shamir_persistence.py::test_abort": "2a23efc9b32126d114c0b9faaa7a607c8238846f7ec2e3a450be88f610952dcb",
+"T3W1_en_test_safety_checks.py::test_safety_checks_level_after_reboot[SafetyCheckLevel.PromptAlways--081810a6": "c56cff9ac0f7ec58b25df949d4d7cbda42a0db5903b433385dc133da6e007168",
+"T3W1_en_test_safety_checks.py::test_safety_checks_level_after_reboot[SafetyCheckLevel.PromptTempora-b3d21f4a": "df34b19bfd1b536be86e819d129e690d92bfa9a90afff68ae15c4d8b240ad992",
+"T3W1_en_test_safety_checks.py::test_safety_checks_level_after_reboot[SafetyCheckLevel.Strict-Safety-f1ff9c26": "d17632da03e39ac919851c9292685f42cc6517daaff04f73539d700cbf14232a",
+"T3W1_en_test_shamir_persistence.py::test_abort": "3d01dbeec1e02624ef6abaee59ba52d2b3d534dde270adeb3ba686fe2feb8367",
"T3W1_en_test_shamir_persistence.py::test_recovery_multiple_resets": "9d452f0522919237be208206caacaa58d37717925f12238fb986e152b7565954",
"T3W1_en_test_shamir_persistence.py::test_recovery_single_reset": "ad52279219dd18e9eec8aa3962c09b02d84aa373080b6dccaca4ca08abf71ac5",
-"T3W1_en_test_wipe_code.py::test_wipe_code_activate_core": "c55bd8879c3ca3949fd937e66f1ca78115aae6ab94aa17fafcb1b07f4ed2309d"
+"T3W1_en_test_wipe_code.py::test_wipe_code_activate_core": "8ba57faf151f5983f7cb312586c50aec610fb4cb8c36fd87345f66ad86426bad"
}
}
}
Why this scored 19/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.