chore(core/eckhart): do not highlight label
What changed, and why it matters
This is a minor user-interface cleanup for the Trezor hardware wallet. It changes how a device label is shown on screen so the label text is no longer visually highlighted as a special parameter. There is no security issue or vulnerability here.
No security action needed. Treat as a normal UI/test maintenance commit.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit replaces confirm_single(..., description=template, description_param=param) with confirm_action(..., description=template.format(param), verb=None) in the Eckhart layout’s label-change confirmation flow. This embeds the label directly into the description string rather than passing it as a separately highlighted parameter. It also adds two device tests for setting empty and maximum-length labels. No cryptographic, authorization, or safety logic is changed.
Changed components
core/src/trezor/ui/layouts/eckhart/__init__.pytests/device_tests/test_msg_applysettings.pyInspect captured patch +13 / −3
diff --git a/core/src/trezor/ui/layouts/eckhart/__init__.py b/core/src/trezor/ui/layouts/eckhart/__init__.py
index 0b52c27c1..b8696a2d0 100644
--- a/core/src/trezor/ui/layouts/eckhart/__init__.py
+++ b/core/src/trezor/ui/layouts/eckhart/__init__.py
@@ -223,11 +223,10 @@ async def confirm_change_label(
br_name: str, title: str, template: str, param: str
) -> None:
- await confirm_single(
+ await confirm_action(
br_name=br_name,
title=title,
- description=template,
- description_param=param,
+ description=template.format(param),
verb=None,
)
diff --git a/tests/device_tests/test_msg_applysettings.py b/tests/device_tests/test_msg_applysettings.py
index 4b1852014..5281f5c75 100644
--- a/tests/device_tests/test_msg_applysettings.py
+++ b/tests/device_tests/test_msg_applysettings.py
@@ -490,6 +490,17 @@ def test_label_too_long(session: Session):
device.apply_settings(session, label="A" * 33)
+@pytest.mark.setup_client(pin=None)
+@pytest.mark.parametrize(
+ "label",
+ ["", "A" * 32],
+ ids=["empty", "max_len"],
+)
+def test_set_label(session: Session, label: str):
+ with session.client:
+ device.apply_settings(session, label=label)
+
+
U8_MIN = 0
U8_MAX = 0xFF # 255
Why this scored 15/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.