chore(core): ensure dependency between PIN and wipe code
What changed, and why it matters
This commit tightens the rules between a Trezor device's PIN and its 'wipe code' (a special code that erases the device). Previously, it was possible to end up in an inconsistent state: for example, you could set a wipe code even when no PIN was set, or remove the PIN while the wipe code was still active. The patch blocks both situations and shows explanatory on-screen messages. It also replaces some internal 'assert False' statements with explicit error raises, which is a defensive cleanup. The change is a hardening fix rather than a remote exploit.
Treat as a low-to-moderate hardening improvement. Review whether the new RuntimeError paths are handled correctly by host software and do not leak internal state. Verify that the translated strings are signed and included in production translation blobs. No urgent user action is required.
Security signals we found
New guard condition prevents PIN removal while wipe code is active
New guard condition prevents wipe code creation when PIN is not set
Replaced assert False with raise RuntimeError in unreachable error paths
Added user-facing explanatory popups for both blocked operations
Tests updated to assert Cancelled/TrezorFailure for the newly blocked flows
Evidence from the diff
The change adds two dependency checks in the firmware’s PIN/wipe-code management flows. In change_pin.py, if msg.remove is true and config.has_wipe_code() is true, the device now shows a popup and raises RuntimeError instead of allowing PIN removal. In change_wipe_code.py, if config.has_pin() is false when setting a wipe code, it shows a popup and raises RuntimeError. New translated strings and UI popups are added across bolt/caesar/delizia/eckhart layouts. Tests are updated: the old test_pin_same_as_wipe_code is removed, test_set_pin_to_wipe_code is replaced by test_set_wipe_code_without_pin and test_set_remove_pin_without_removing_wipe_code, and the mismatch test now requires a PIN. request_pin.py also replaces ‘assert False’ with ‘raise RuntimeError’ after error screens, making those paths explicit failures instead of debug-only assertions.
Changed components
core/src/apps/management/change_pin.pycore/src/apps/management/change_wipe_code.pycore/src/apps/common/request_pin.pycore/src/trezor/ui/layouts/bolt/__init__.pycore/src/trezor/ui/layouts/caesar/__init__.pycore/src/trezor/ui/layouts/delizia/__init__.pycore/src/trezor/ui/layouts/eckhart/__init__.pycore/translations/en.jsontests/device_tests/test_msg_change_wipe_code_t2.pytests/click_tests/test_pin.pyInspect captured patch +252 / −119
diff --git a/core/.changelog.d/4446.added b/core/.changelog.d/4446.added
new file mode 100644
index 00000000..058fe8c6
--- /dev/null
+++ b/core/.changelog.d/4446.added
@@ -0,0 +1 @@
+Add dependency check between the PIN and the wipe code.
diff --git a/core/embed/rust/librust_qstr.h b/core/embed/rust/librust_qstr.h
index 97670d09..5fe9100b 100644
--- a/core/embed/rust/librust_qstr.h
+++ b/core/embed/rust/librust_qstr.h
@@ -525,6 +525,8 @@ static void _librust_qstrs(void) {
MP_QSTR_pin__tries_left;
MP_QSTR_pin__turn_off;
MP_QSTR_pin__turn_on;
+ MP_QSTR_pin__wipe_code_exists_description;
+ MP_QSTR_pin__wipe_code_exists_title;
MP_QSTR_pin__wrong_pin;
MP_QSTR_pin_code;
MP_QSTR_plurals__contains_x_keys;
@@ -936,6 +938,7 @@ static void _librust_qstrs(void) {
MP_QSTR_wipe_code__info;
MP_QSTR_wipe_code__invalid;
MP_QSTR_wipe_code__mismatch;
+ MP_QSTR_wipe_code__pin_not_set_description;
MP_QSTR_wipe_code__reenter;
MP_QSTR_wipe_code__reenter_to_confirm;
MP_QSTR_wipe_code__remove;
diff --git a/core/embed/rust/src/translations/generated/translated_string.rs b/core/embed/rust/src/translations/generated/translated_string.rs
index 8f7b1397..1bb74e2c 100644
--- a/core/embed/rust/src/translations/generated/translated_string.rs
+++ b/core/embed/rust/src/translations/generated/translated_string.rs
@@ -1545,6 +1545,9 @@ pub enum TranslatedString {
tutorial__power = 1153, // "Use the power button on the side to turn your device on or off."
auto_lock__on_battery = 1154, // "on battery / wireless charger"
auto_lock__on_usb = 1155, // "connected to USB"
+ pin__wipe_code_exists_description = 1156, // "Wipe code must be turned off before turning off PIN protection."
+ pin__wipe_code_exists_title = 1157, // "Wipe code set"
+ wipe_code__pin_not_set_description = 1158, // "PIN must be set before enabling wipe code."
}
impl TranslatedString {
@@ -3527,6 +3530,9 @@ impl TranslatedString {
(Self::tutorial__power, "Use the power button on the side to turn your device on or off."),
(Self::auto_lock__on_battery, "on battery / wireless charger"),
(Self::auto_lock__on_usb, "connected to USB"),
+ (Self::pin__wipe_code_exists_description, "Wipe code must be turned off before turning off PIN protection."),
+ (Self::pin__wipe_code_exists_title, "Wipe code set"),
+ (Self::wipe_code__pin_not_set_description, "PIN must be set before enabling wipe code."),
];
#[cfg(feature = "micropython")]
@@ -4434,6 +4440,8 @@ impl TranslatedString {
(Qstr::MP_QSTR_pin__tries_left, Self::pin__tries_left),
(Qstr::MP_QSTR_pin__turn_off, Self::pin__turn_off),
(Qstr::MP_QSTR_pin__turn_on, Self::pin__turn_on),
+ (Qstr::MP_QSTR_pin__wipe_code_exists_description, Self::pin__wipe_code_exists_description),
+ (Qstr::MP_QSTR_pin__wipe_code_exists_title, Self::pin__wipe_code_exists_title),
(Qstr::MP_QSTR_pin__wrong_pin, Self::pin__wrong_pin),
(Qstr::MP_QSTR_plurals__contains_x_keys, Self::plurals__contains_x_keys),
(Qstr::MP_QSTR_plurals__lock_after_x_days, Self::plurals__lock_after_x_days),
@@ -4967,6 +4975,7 @@ impl TranslatedString {
(Qstr::MP_QSTR_wipe_code__info, Self::wipe_code__info),
(Qstr::MP_QSTR_wipe_code__invalid, Self::wipe_code__invalid),
(Qstr::MP_QSTR_wipe_code__mismatch, Self::wipe_code__mismatch),
+ (Qstr::MP_QSTR_wipe_code__pin_not_set_description, Self::wipe_code__pin_not_set_description),
(Qstr::MP_QSTR_wipe_code__reenter, Self::wipe_code__reenter),
(Qstr::MP_QSTR_wipe_code__reenter_to_confirm, Self::wipe_code__reenter_to_confirm),
(Qstr::MP_QSTR_wipe_code__remove, Self::wipe_code__remove),
diff --git a/core/mocks/trezortranslate_keys.pyi b/core/mocks/trezortranslate_keys.pyi
index a63fc7b8..8f1e97b1 100644
--- a/core/mocks/trezortranslate_keys.pyi
+++ b/core/mocks/trezortranslate_keys.pyi
@@ -599,6 +599,8 @@ class TR:
pin__tries_left: str = "tries left"
pin__turn_off: str = "Are you sure you want to turn off PIN protection?"
pin__turn_on: str = "Turn on PIN protection?"
+ pin__wipe_code_exists_description: str = "Wipe code must be turned off before turning off PIN protection."
+ pin__wipe_code_exists_title: str = "Wipe code set"
pin__wrong_pin: str = "Wrong PIN"
plurals__contains_x_keys: str = "key|keys"
plurals__lock_after_x_days: str = "day|days"
@@ -1020,6 +1022,7 @@ class TR:
wipe_code__info: str = "Wipe code can be used to erase all data from this device."
wipe_code__invalid: str = "Invalid wipe code"
wipe_code__mismatch: str = "The wipe codes you entered do not match."
+ wipe_code__pin_not_set_description: str = "PIN must be set before enabling wipe code."
wipe_code__reenter: str = "Re-enter wipe code"
wipe_code__reenter_to_confirm: str = "Please re-enter wipe code to confirm."
wipe_code__remove: str = "Remove wipe code"
diff --git a/core/src/apps/common/request_pin.py b/core/src/apps/common/request_pin.py
index 988d8287..c19e959f 100644
--- a/core/src/apps/common/request_pin.py
+++ b/core/src/apps/common/request_pin.py
@@ -136,7 +136,7 @@ async def error_pin_invalid() -> NoReturn:
TR.pin__wrong_pin, # header
exc=wire.PinInvalid,
)
- assert False
+ raise RuntimeError # should be unreachable
async def error_pin_matches_wipe_code() -> NoReturn:
@@ -146,4 +146,4 @@ async def error_pin_matches_wipe_code() -> NoReturn:
TR.pin__invalid_pin, # header
exc=wire.PinInvalid,
)
- assert False
+ raise RuntimeError # should be unreachable
diff --git a/core/src/apps/management/change_pin.py b/core/src/apps/management/change_pin.py
index ff26fbaf..8e1eaa46 100644
--- a/core/src/apps/management/change_pin.py
+++ b/core/src/apps/management/change_pin.py
@@ -11,7 +11,7 @@ if TYPE_CHECKING:
async def change_pin(msg: ChangePin) -> Success:
from storage.device import is_initialized
from trezor.messages import Success
- from trezor.ui.layouts import success_pin_change
+ from trezor.ui.layouts import pin_wipe_code_exists_popup, success_pin_change
from apps.common.request_pin import (
error_pin_invalid,
@@ -26,6 +26,15 @@ async def change_pin(msg: ChangePin) -> Success:
# confirm that user wants to change the pin
await _require_confirm_change_pin(msg)
+ # Do not allow to remove the PIN if the wipe code is set.
+ if msg.remove and config.has_wipe_code():
+ await pin_wipe_code_exists_popup(
+ TR.pin__wipe_code_exists_title,
+ TR.pin__wipe_code_exists_description,
+ TR.buttons__continue,
+ )
+ raise RuntimeError # should be unreachable
+
# get old pin
curpin, salt = await request_pin_and_sd_salt(TR.pin__enter)
diff --git a/core/src/apps/management/change_wipe_code.py b/core/src/apps/management/change_wipe_code.py
index d4f136a9..c158226f 100644
--- a/core/src/apps/management/change_wipe_code.py
+++ b/core/src/apps/management/change_wipe_code.py
@@ -12,7 +12,7 @@ async def change_wipe_code(msg: ChangeWipeCode) -> Success:
from storage.device import is_initialized
from trezor import config
from trezor.messages import Success
- from trezor.ui.layouts import show_success
+ from trezor.ui.layouts import show_success, wipe_code_pin_not_set_popup
from trezor.wire import NotInitialized
from apps.common.request_pin import error_pin_invalid, request_pin_and_sd_salt
@@ -24,6 +24,15 @@ async def change_wipe_code(msg: ChangeWipeCode) -> Success:
has_wipe_code = config.has_wipe_code()
await _require_confirm_action(msg, has_wipe_code)
+ # Do not allow to set the wipe code if the PIN is not set.
+ if not config.has_pin():
+ await wipe_code_pin_not_set_popup(
+ TR.pin__wipe_code_exists_title,
+ TR.wipe_code__pin_not_set_description,
+ TR.buttons__continue,
+ )
+ raise RuntimeError # should be unreachable
+
# Get the unlocking PIN.
pin, salt = await request_pin_and_sd_salt(TR.pin__enter)
@@ -62,7 +71,7 @@ def _require_confirm_action(
from trezor.ui.layouts import confirm_action, confirm_set_new_pin
from trezor.wire import ProcessError
- if msg.remove and has_wipe_code:
+ if msg.remove and has_wipe_code: # removing wipe code
return confirm_action(
"disable_wipe_code",
TR.wipe_code__title_settings,
@@ -71,7 +80,7 @@ def _require_confirm_action(
prompt_screen=True,
)
- if not msg.remove and has_wipe_code:
+ if not msg.remove and has_wipe_code: # changing wipe code
return confirm_action(
"change_wipe_code",
TR.wipe_code__title_settings,
@@ -79,7 +88,7 @@ def _require_confirm_action(
verb=TR.buttons__change,
)
- if not msg.remove and not has_wipe_code:
+ if not msg.remove and not has_wipe_code: # setting new wipe code
return confirm_set_new_pin(
"set_wipe_code",
TR.wipe_code__title_settings,
diff --git a/core/src/trezor/ui/layouts/bolt/__init__.py b/core/src/trezor/ui/layouts/bolt/__init__.py
index 8278f220..e422a1a4 100644
--- a/core/src/trezor/ui/layouts/bolt/__init__.py
+++ b/core/src/trezor/ui/layouts/bolt/__init__.py
@@ -1792,6 +1792,28 @@ def wipe_code_same_as_pin_popup() -> Awaitable[None]:
)
+async def wipe_code_pin_not_set_popup(
+ title: str, description: str, button: str
+) -> NoReturn:
+ await show_error_and_raise(
+ "warning_pin_not_set",
+ description,
+ title,
+ button,
+ )
+
+
+async def pin_wipe_code_exists_popup(
+ title: str, description: str, button: str
+) -> NoReturn:
+ await show_error_and_raise(
+ "wipe_code_exists",
+ description,
+ title,
+ button,
+ )
+
+
def confirm_set_new_pin(
br_name: str,
title: str,
diff --git a/core/src/trezor/ui/layouts/caesar/__init__.py b/core/src/trezor/ui/layouts/caesar/__init__.py
index 91780ae0..1ddde996 100644
--- a/core/src/trezor/ui/layouts/caesar/__init__.py
+++ b/core/src/trezor/ui/layouts/caesar/__init__.py
@@ -1819,6 +1819,28 @@ def wipe_code_same_as_pin_popup() -> Awaitable[None]:
)
+async def wipe_code_pin_not_set_popup(
+ title: str, description: str, button: str
+) -> NoReturn:
+ await show_error_and_raise(
+ "warning_pin_not_set",
+ description,
+ title,
+ button,
+ )
+
+
+async def pin_wipe_code_exists_popup(
+ title: str, description: str, button: str
+) -> NoReturn:
+ await show_error_and_raise(
+ "wipe_code_exists",
+ description,
+ title,
+ button,
+ )
+
+
async def confirm_set_new_pin(
br_name: str,
title: str,
diff --git a/core/src/trezor/ui/layouts/delizia/__init__.py b/core/src/trezor/ui/layouts/delizia/__init__.py
index 772a26e6..e7c87781 100644
--- a/core/src/trezor/ui/layouts/delizia/__init__.py
+++ b/core/src/trezor/ui/layouts/delizia/__init__.py
@@ -1712,6 +1712,28 @@ def wipe_code_same_as_pin_popup() -> Awaitable[ui.UiResult]:
)
+async def wipe_code_pin_not_set_popup(
+ title: str, description: str, button: str
+) -> NoReturn:
+ await show_error_and_raise(
+ "warning_pin_not_set",
+ description,
+ title,
+ button,
+ )
+
+
+async def pin_wipe_code_exists_popup(
+ title: str, description: str, button: str
+) -> NoReturn:
+ await show_error_and_raise(
+ "wipe_code_exists",
+ description,
+ title,
+ button,
+ )
+
+
def confirm_set_new_pin(
br_name: str,
title: str,
diff --git a/core/src/trezor/ui/layouts/eckhart/__init__.py b/core/src/trezor/ui/layouts/eckhart/__init__.py
index 2d804fa4..be65f07c 100644
--- a/core/src/trezor/ui/layouts/eckhart/__init__.py
+++ b/core/src/trezor/ui/layouts/eckhart/__init__.py
@@ -1776,6 +1776,28 @@ def wipe_code_same_as_pin_popup() -> Awaitable[ui.UiResult]:
)
+async def wipe_code_pin_not_set_popup(
+ title: str, description: str, button: str
+) -> NoReturn:
+ await show_error_and_raise(
+ "warning_pin_not_set",
+ description,
+ TR.words__important,
+ button,
+ )
+
+
+async def pin_wipe_code_exists_popup(
+ title: str, description: str, button: str
+) -> NoReturn:
+ await show_error_and_raise(
+ "wipe_code_exists",
+ description,
+ TR.words__important,
+ button,
+ )
+
+
def confirm_set_new_pin(
br_name: str,
title: str,
diff --git a/core/translations/en.json b/core/translations/en.json
index c0937cbe..4b83fda5 100644
--- a/core/translations/en.json
+++ b/core/translations/en.json
@@ -721,6 +721,8 @@
"pin__tries_left": "tries left",
"pin__turn_off": "Are you sure you want to turn off PIN protection?",
"pin__turn_on": "Turn on PIN protection?",
+ "pin__wipe_code_exists_description": "Wipe code must be turned off before turning off PIN protection.",
+ "pin__wipe_code_exists_title": "Wipe code set",
"pin__wrong_pin": "Wrong PIN",
"plurals__contains_x_keys": "key|keys",
"plurals__lock_after_x_days": "day|days",
@@ -1322,6 +1324,7 @@
"wipe_code__info": "Wipe code can be used to erase all data from this device.",
"wipe_code__invalid": "Invalid wipe code",
"wipe_code__mismatch": "The wipe codes you entered do not match.",
+ "wipe_code__pin_not_set_description": "PIN must be set before enabling wipe code.",
"wipe_code__reenter": "Re-enter wipe code",
"wipe_code__reenter_to_confirm": "Please re-enter wipe code to confirm.",
"wipe_code__remove": "Remove wipe code",
diff --git a/core/translations/order.json b/core/translations/order.json
index d5a0e974..181df4c2 100644
--- a/core/translations/order.json
+++ b/core/translations/order.json
@@ -1154,5 +1154,8 @@
"1152": "thp__pair_new_device",
"1153": "tutorial__power",
"1154": "auto_lock__on_battery",
- "1155": "auto_lock__on_usb"
+ "1155": "auto_lock__on_usb",
+ "1156": "pin__wipe_code_exists_description",
+ "1157": "pin__wipe_code_exists_title",
+ "1158": "wipe_code__pin_not_set_description"
}
diff --git a/core/translations/signatures.json b/core/translations/signatures.json
index c57a0084..cd108020 100644
--- a/core/translations/signatures.json
+++ b/core/translations/signatures.json
@@ -1,8 +1,8 @@
{
"current": {
- "merkle_root": "aa8c7ed0b778cf38422e8f0c20130cef39364f1736107ce5071a7d611afbc3ad",
- "datetime": "2025-09-15T10:48:26.905920+00:00",
- "commit": "06cbaf19d8bfbc3b9bf9e018a5f94918e6b78f03"
+ "merkle_root": "299a47c64996017d50be3a2d87ecd742d7638d21f1f48c319198d81533a718ac",
+ "datetime": "2025-09-16T13:15:14.260640+00:00",
+ "commit": "a3c89268bb53ab25a0b7068ca79ec4691186f1a5"
},
"history": [
{
diff --git a/tests/click_tests/test_pin.py b/tests/click_tests/test_pin.py
index fe90ba54..45c8372f 100644
--- a/tests/click_tests/test_pin.py
+++ b/tests/click_tests/test_pin.py
@@ -25,7 +25,7 @@ from trezorlib import device, exceptions
from trezorlib.debuglink import DisplayStyle, LayoutType
from .. import translations as TR
-from .common import go_back, go_next, navigate_to_action_and_press
+from .common import go_next, navigate_to_action_and_press
if TYPE_CHECKING:
from trezorlib.debuglink import DebugLink
@@ -415,15 +415,6 @@ def test_wipe_code_same_as_pin(device_handler: "BackgroundDeviceHandler"):
_enter_two_times(debug, "2", "2")
-@pytest.mark.setup_client()
-def test_pin_same_as_wipe_code(device_handler: "BackgroundDeviceHandler"):
- with prepare(device_handler, Situation.WIPE_CODE_SETUP) as debug:
- _enter_two_times(debug, "1", "1")
- with PIN_INVALID, prepare(device_handler, Situation.PIN_SETUP) as debug:
- _enter_two_times(debug, "1", "1")
- go_back(debug, r_middle=True)
-
-
@pytest.mark.models("t2t1", "delizia", "eckhart")
@pytest.mark.setup_client(pin=PIN4)
def test_last_digit_timeout(device_handler: "BackgroundDeviceHandler"):
diff --git a/tests/device_tests/test_msg_change_wipe_code_t2.py b/tests/device_tests/test_msg_change_wipe_code_t2.py
index 4f803292..de330d30 100644
--- a/tests/device_tests/test_msg_change_wipe_code_t2.py
+++ b/tests/device_tests/test_msg_change_wipe_code_t2.py
@@ -20,7 +20,7 @@ from trezorlib import btc, device, messages
from trezorlib.client import MAX_PIN_LENGTH, PASSPHRASE_TEST_PATH
from trezorlib.debuglink import LayoutType
from trezorlib.debuglink import SessionDebugWrapper as Session
-from trezorlib.exceptions import TrezorFailure
+from trezorlib.exceptions import Cancelled, TrezorFailure
from ..input_flows import InputFlowNewCodeMismatch
@@ -107,10 +107,13 @@ def test_set_remove_wipe_code(session: Session):
assert session.features.wipe_code_protection is False
+@pytest.mark.setup_client(pin=PIN4)
def test_set_wipe_code_mismatch(session: Session):
+ _ensure_unlocked(session, PIN4)
+
with session.client as client, pytest.raises(TrezorFailure):
IF = InputFlowNewCodeMismatch(
- session.client, WIPE_CODE4, WIPE_CODE6, what="wipe_code"
+ session.client, WIPE_CODE4, WIPE_CODE6, what="wipe_code", pin=PIN4
)
client.set_input_flow(IF.get())
@@ -141,29 +144,33 @@ def test_set_wipe_code_to_pin(session: Session):
_check_wipe_code(session, PIN4, WIPE_CODE4)
-def test_set_pin_to_wipe_code(session: Session):
- client = session.client
- # Set wipe code.
- with client:
- if client.layout_type is LayoutType.Caesar:
- br_count = 5
- else:
- br_count = 4
- client.set_expected_responses(
- [messages.ButtonRequest()] * br_count + [messages.Success]
- )
- client.use_pin_sequence([WIPE_CODE4, WIPE_CODE4])
+def test_set_wipe_code_without_pin(session: Session):
+ # Make sure that both PIN and wipe code are not set.
+ assert session.features.pin_protection is False
+ assert session.features.wipe_code_protection is False
+ # Expect an error when trying to set the wipe code without a PIN being turned on.
+ with session.client, pytest.raises(Cancelled):
device.change_wipe_code(session)
- # Try to set the PIN to the current wipe code value.
- with client, pytest.raises(TrezorFailure):
- if client.layout_type is LayoutType.Caesar:
- br_count = 6
- else:
- br_count = 4
- client.set_expected_responses(
- [messages.ButtonRequest()] * br_count
- + [messages.Failure(code=messages.FailureType.PinInvalid)]
- )
- client.use_pin_sequence([WIPE_CODE4, WIPE_CODE4])
- device.change_pin(session)
+
+@pytest.mark.setup_client(pin=PIN4)
+def test_set_remove_pin_without_removing_wipe_code(session: Session):
+ _ensure_unlocked(session, PIN4)
+ # Make sure the PIN is set.
+ assert session.client.features.pin_protection is True
+ # Make sure the wipe code is not set.
+ assert session.client.features.wipe_code_protection is False
+
+ # Set wipe code
+ with session.client as client:
+ client.use_pin_sequence([PIN4, WIPE_CODE4, WIPE_CODE4])
+ device.change_wipe_code(session)
+
+ # Make sure the wipe code is set.
+ assert session.features.wipe_code_protection is True
+
+ # Remove PIN without wipe code being turned off.
+ with session.client as client:
+ # Expect an error when trying to remove PIN with enabled wipe code.
+ with pytest.raises(Cancelled):
+ device.change_pin(session, remove=True)
diff --git a/tests/input_flows.py b/tests/input_flows.py
index 13fb5d13..3f072b2e 100644
--- a/tests/input_flows.py
+++ b/tests/input_flows.py
@@ -98,16 +98,23 @@ class InputFlowNewCodeMismatch(InputFlowBase):
first_code: str,
second_code: str,
what: str,
+ pin: str | None = None,
):
super().__init__(client)
self.first_code = first_code
self.second_code = second_code
self.what = what
+ self.pin = pin
def input_flow_common(self) -> BRGeneratorType:
assert (yield).name == f"set_{self.what}"
self.debug.press_yes()
+ if self.pin:
+ assert (yield).name == "pin_device"
+ assert "PinKeyboard" in self.debug.read_layout().all_components()
+ self.debug.input(self.pin)
+
if self.client.layout_type is LayoutType.Caesar:
layout = self.debug.read_layout()
if "PinKeyboard" not in layout.all_components():
diff --git a/tests/ui_tests/fixtures.json b/tests/ui_tests/fixtures.json
index 182526c3..fff22420 100644
--- a/tests/ui_tests/fixtures.json
+++ b/tests/ui_tests/fixtures.json
@@ -810,7 +810,6 @@
"T2T1_cs_test_pin.py::test_pin_long": "075aa09962769e7291566bc2414291979732c5375264aa0ea9c783efb3528d58",
"T2T1_cs_test_pin.py::test_pin_long_delete": "9f6be13c6aa3302fe62814bda13c33577786d8014f9280c933e608452f50c1d1",
"T2T1_cs_test_pin.py::test_pin_longer_than_max": "a8674a0ed45942e6aa1df066e99df5cebc42134e98c506b309a1f0e187fbfe12",
-"T2T1_cs_test_pin.py::test_pin_same_as_wipe_code": "41889004b08e2428a53db231fb4680093fa98b9d5eaa877569af9c24e3d70758",
"T2T1_cs_test_pin.py::test_pin_setup": "883e208b43dff234c30f412ee56a5e5d41fb473600914bf3dcae449b03d30e11",
"T2T1_cs_test_pin.py::test_pin_setup_mismatch": "f475719f933475b441ec74df2bc9db110de5a0e0d0e699c6f4b47d1cf6e6cd60",
"T2T1_cs_test_pin.py::test_pin_short": "c686613163a308630a30e8086bd3c4aca47ea708d066c9aae48994371c30e907",
@@ -865,7 +864,6 @@
"T2T1_de_test_pin.py::test_pin_long": "a5109e07f163c4b1493a74d7c387299dfc6a3651ac83ecdc3c3839647c2d20e7",
"T2T1_de_test_pin.py::test_pin_long_delete": "e0c76596791301370fb5221fdd5a7796d77e45da5744a0d65939234d84ed4a64",
"T2T1_de_test_pin.py::test_pin_longer_than_max": "7db93d846614425ded6a2494ed04f9683abc5a21d0b5e0c2315a09cf14b3898b",
-"T2T1_de_test_pin.py::test_pin_same_as_wipe_code": "d006791468dccee41604a58436aead59b0963c2a74801d0a9c6b29340b6cf486",
"T2T1_de_test_pin.py::test_pin_setup": "2a2306cfe88aa4ac5e066c34664c321b4d859ac3471cc4e28cf7d6a37d51ff68",
"T2T1_de_test_pin.py::test_pin_setup_mismatch": "c381a3e2d97bb7c330be17fdf46c64f2dd43783a08959b5e3618950dfc2e2011",
"T2T1_de_test_pin.py::test_pin_short": "e84725a26b14d022a3593e4cecb73f6473180f4cdf9d5a785660ba9a6690cb70",
@@ -920,7 +918,6 @@
"T2T1_en_test_pin.py::test_pin_long": "f4ae86f4924018864906237cfbb7f226059d6aada2e7f8dd67309f306cf071c3",
"T2T1_en_test_pin.py::test_pin_long_delete": "8f33ec14e225911adfc319917765b672b422827a671bf5a7c8c5d71582e614ba",
"T2T1_en_test_pin.py::test_pin_longer_than_max": "743e6b643bf7be0fe482642cb3b2ed4b73bf6c072414e29e283890ef978788cd",
-"T2T1_en_test_pin.py::test_pin_same_as_wipe_code": "d8801c4c041ba3126351a83aa118de9eef854e789a41d06169b5f72b5fa68021",
"T2T1_en_test_pin.py::test_pin_setup": "187333d501a1a1bf7317bd8c7bbdfa94da2794ec685e26831b6f8013b1d87442",
"T2T1_en_test_pin.py::test_pin_setup_mismatch": "28b75571663a82837e54ec9a37c19b83677206d08555006ab656f3c2f02475fb",
"T2T1_en_test_pin.py::test_pin_short": "126eb473b472bbd24377d68f165260427535c0ddbc20c3f8a85390f5d95b720b",
@@ -975,7 +972,6 @@
"T2T1_es_test_pin.py::test_pin_long": "ac8260dfcad8f10168a752da67f35ea730cb7a28b1ff1755045524449001dc68",
"T2T1_es_test_pin.py::test_pin_long_delete": "6719191b8a0b21eea1933505d34d95538d2966ef3bc317cc06e8013b72844ea1",
"T2T1_es_test_pin.py::test_pin_longer_than_max": "285bb4002c202e1f8bd3fcdb3d8f71bd38a12e41271a284faff63bab9fe5498f",
-"T2T1_es_test_pin.py::test_pin_same_as_wipe_code": "225649ab931a84515b95213ddd9c1155b7c1734fafa2be0947350c6b0e522757",
"T2T1_es_test_pin.py::test_pin_setup": "5a478b23bacdd280e62af3590715b99d3683a44fb30d19511916dcfeed47520c",
"T2T1_es_test_pin.py::test_pin_setup_mismatch": "4b24cde5d345727bcca9b479ca55d135efba779d3e794988c0896aca2977d863",
"T2T1_es_test_pin.py::test_pin_short": "673fcf6ded02fbb7d654cd1388a5fa72741cf6a5b19578645ce3d7898fe1f6a5",
@@ -1030,7 +1026,6 @@
"T2T1_fr_test_pin.py::test_pin_long": "c590bdb4bdaca79d18cf3476ec4089af55f11d56e60d19e8679734c4c6e3fd04",
"T2T1_fr_test_pin.py::test_pin_long_delete": "22ff35cae5868e3fd87357c17929f020ff36711b8a869898677837827cdc9a60",
"T2T1_fr_test_pin.py::test_pin_longer_than_max": "ceb9f58daa58493fa73c59772e3fa824078d15f47d8a9f1dca21834bcdd03f37",
-"T2T1_fr_test_pin.py::test_pin_same_as_wipe_code": "bd8c04f33acc8dcbdfc851ca2b1b148eba52319a3dad4d9825eb64d147c86a25",
"T2T1_fr_test_pin.py::test_pin_setup": "e57882c31267bdd5d065c8cf77847f1c9e5691000b5fcbe131a5902138635940",
"T2T1_fr_test_pin.py::test_pin_setup_mismatch": "e90e6ee9def5217fb100055aaf37f8360dac9ea3dc36ee3aaad31c57d07020c4",
"T2T1_fr_test_pin.py::test_pin_short": "ef594f99e48d7de76af820d1ea485c822ca4e9da862d568eb301cde1be840348",
@@ -1085,7 +1080,6 @@
"T2T1_pt_test_pin.py::test_pin_long": "cd7c8a21808d574b170dd9907ab0ee63a45f7af8aa2e4053a59f8e62b6155f66",
"T2T1_pt_test_pin.py::test_pin_long_delete": "c8304ee064910e58c7633c7fb90aef5f39bc82b40304e84fbe33437bbf022c71",
"T2T1_pt_test_pin.py::test_pin_longer_than_max": "f0ff985212d9fa2b22a7a119c6b159d6329009e2a91e2ea966600c73f185a837",
-"T2T1_pt_test_pin.py::test_pin_same_as_wipe_code": "c86ad877c28992faff2cb3d4e66de626e2d6420db46d38896817ace475b9496d",
"T2T1_pt_test_pin.py::test_pin_setup": "e9ac2ba75501529e92661908f19222b643cbca4278a4d0c5592f15304cd4a5b1",
"T2T1_pt_test_pin.py::test_pin_setup_mismatch": "ba5748a1ff9b2b3d41bdd60092eb33d2637248ef5b48516db172e55b7d769e67",
"T2T1_pt_test_pin.py::test_pin_short": "bf1b509e362ff71cbb982b320c6375173cccfcddf259f1ad48a53a5ad9f29009",
@@ -2547,10 +2541,11 @@
"T2T1_cs_test_msg_backup_device.py::test_backup_slip39_single": "2a37e38a67b8644930224b3757dff71c0eb9a9064583526cc92140b7383a1281",
"T2T1_cs_test_msg_backup_device.py::test_interrupt_backup_fails": "1da3180b06e5519a759550e273c3f467a71adf11b17888e489be38ccb23dcf08",
"T2T1_cs_test_msg_backup_device.py::test_no_backup_fails": "b41e062c409ab07e1bbf704410aaa8a7eeebcdc82bee83255b732df3b1cef3ac",
-"T2T1_cs_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "af3750b2c056db23ab5fde6dbc4dffe5b1ba8c34add094a5967fcfa8443dc41f",
+"T2T1_cs_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "1eaa169b6acf9cbc40d05940cfe071e18b17819bc7dbca391acc499a649542fb",
"T2T1_cs_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "0b0b6e14229d0ee22ef9a9378eaf270e28dafae728a0cb3bd9faa1d33d76416a",
-"T2T1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "5ce8a86390cbba7fd472294bc20d43a860f611b2626b6023a1ee4b01cb367b0a",
+"T2T1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "b2c48463f09cc008a9ebdbe9c95f5eb563623f0008b18945ed8bf5d1d90f58c8",
"T2T1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "0033dac8fd570deb8d7fbec0b8648f6c650dcaa83872205abb59317880984567",
+"T2T1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "645ec261f129ee30f70cab77bde6e6955a36e4876110b25bd2d909c39e2b5db3",
"T2T1_cs_test_msg_changepin_t2.py::test_change_failed": "7b355bfaad32f06d6bf8307c9e1578d1a95bffc5115bf0bb86ef8113ca6caf72",
"T2T1_cs_test_msg_changepin_t2.py::test_change_invalid_current": "344dca6cb54a79747665af9271f0c9305d1388025186da952a8b6ad914f1447a",
"T2T1_cs_test_msg_changepin_t2.py::test_change_pin": "49ca51ea6ebc49d1514769e0d6cdbeb544a4bf045a9fa03c643313637561fd7d",
@@ -4089,10 +4084,11 @@
"T2T1_de_test_msg_backup_device.py::test_backup_slip39_single": "995fff2979d6c59d1ab6398f2fe8b106774e3a3b710a9dd9c77f56813a7d7171",
"T2T1_de_test_msg_backup_device.py::test_interrupt_backup_fails": "181ea717d865e2c33bb2968b4cd8a5abd7b1986ed2522ae5ea6cb757933a2299",
"T2T1_de_test_msg_backup_device.py::test_no_backup_fails": "fbb1bb46e877077aa4a58624eabc31eb8eddddd614dad1f2c9ab82fc93a43ca1",
-"T2T1_de_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "132be94b643f28b86e63269405a98cc6a0ddfadf9464c9afef658e967e985568",
+"T2T1_de_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "1a80a53a5440b8351a96cccc1a9bb7a74be682d71901f3bc3429c1c2822f68c0",
"T2T1_de_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "9626bc9ddef8fba11dc3573997dffc8064336d32b0b2476937698d8ac7c84701",
-"T2T1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "a0237cd13bbe6fa4960201a5d747e1d64f8bb7582bc5b896937dadc505aa93cd",
+"T2T1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "abe27899f76a44556ac0db93e567513d52d814c424fbcd8a6986e11707d83158",
"T2T1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "ad7ed6d18f25e627c928795033cce24e6ef9159b4828a1a211bd961844758e57",
+"T2T1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "a875951c7046c8b3e4cef455d34b6af19e4bc989b8f2e581f61575ca6393326f",
"T2T1_de_test_msg_changepin_t2.py::test_change_failed": "df5fce0e0f4773aaab5f114986dfad3db1b7830b3c3ad49782a800c27eaaa41d",
"T2T1_de_test_msg_changepin_t2.py::test_change_invalid_current": "74fb89955f72e22a0b9b0aa40f47303bad74163fdecafb574bb41d42df815e96",
"T2T1_de_test_msg_changepin_t2.py::test_change_pin": "475125586bb9ba875901ab20cdc11e5d2f3f8f6cb1bd37dfd87f022eea1022ba",
@@ -5631,10 +5627,11 @@
"T2T1_en_test_msg_backup_device.py::test_backup_slip39_single": "7b1128ca55bf995fca60d2f14f8330829817b3bae5d14dd2d42345286b871be9",
"T2T1_en_test_msg_backup_device.py::test_interrupt_backup_fails": "e6df3e89ebe2f90cc45aadde502642d3d168cc79caae0a7c966a7ed7e4af8d5c",
"T2T1_en_test_msg_backup_device.py::test_no_backup_fails": "068b76a6436dd51195b719f513e17421c7c41e0bdf9ea10b9f81305ea927cef3",
-"T2T1_en_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "7a705f2729a7a5798b66457fc40fc942d060a8444c6750f6134c906e24c01763",
+"T2T1_en_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "fc43de750d8ad2521024d71d2b5d6f75358f5e049d9cdba2c7fa879de45a4c19",
"T2T1_en_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "af2a3bb9305e50126b06f1d4b6579a4c7679f9555162b92f25fd2c925dbcbd0e",
-"T2T1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "42a78cf58b9d4f701ad1132d9e2bd6f0ac1af978d9cb6fba629f10a1c5b58f57",
+"T2T1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "6c4257bd69390d1d8db03242ff535d35231386f33b88894da9e903b6d9dfec81",
"T2T1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "89621f06f9f9bb2fdc54178d344cf053a8fa4d608af9f1907124e65db6083f41",
+"T2T1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "ddb9d6d857578ee033617ee9558ae80a035e155484478bd4f79f1e11b5e57151",
"T2T1_en_test_msg_changepin_t2.py::test_change_failed": "f23d17036640bc28412c400c10f3f6da4cb13a6b6b5ce62ef0523d4487c01c8c",
"T2T1_en_test_msg_changepin_t2.py::test_change_invalid_current": "6f33f3c7c8b62730427991e4eba8b4d9569f5fe1f2be6f1cf8aa96773b84f8f0",
"T2T1_en_test_msg_changepin_t2.py::test_change_pin": "2aa3c38dbd541fcbc878aa12b23a4753e49fa99cf704f1fc3b74840da613f20b",
@@ -7191,10 +7188,11 @@
"T2T1_es_test_msg_backup_device.py::test_backup_slip39_single": "1a7d34b4d31ce50c2ef81cf1c1b8aab34329c8fa3353af678aa311b3493d2ace",
"T2T1_es_test_msg_backup_device.py::test_interrupt_backup_fails": "895e013e88c967c4808a619501df98f30735ed59bc22543b7b3cdbfb0ff7f423",
"T2T1_es_test_msg_backup_device.py::test_no_backup_fails": "ce9fb4365a354d655b4512d0acc849c4dfa91c8e22885c6abcba685375034786",
-"T2T1_es_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "8132b82f5dae5840d46d001f6a776188e810e771b510c64085c5781682e79baf",
+"T2T1_es_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "fc75da3121b60bea070becd9225bc311a7ac8707d7c92e86cd5f3b1eb84ec88e",
"T2T1_es_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "803d425999a191433d9946b272139e83eb54772121a1efbc9af86fa0ac823dc6",
-"T2T1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "f160e1866c66dcd4fe2aa9f052e935126fb30144ad0dd50d03b5a0d3786dc5be",
+"T2T1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "a6e434c826ed2abd21a12aefdf771547f8b173b3e134ae625e048ab570ebcc8e",
"T2T1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "dd5578a2df20288e0b774727b30ae1b0de9b5f7311ea37f0c566427a9e4fc5d8",
+"T2T1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "421ac55027eec0b78b784b77b605cc32be04806884e76588da205863260c6d37",
"T2T1_es_test_msg_changepin_t2.py::test_change_failed": "2915883bdc65a99b87c1e26d6e70660b31a5fe3e24afeb52468cca5d6b7743fb",
"T2T1_es_test_msg_changepin_t2.py::test_change_invalid_current": "004a9e301c3f20df3cbaa48c1b144b4490a90f6345d917131ee4c9c36a0654a2",
"T2T1_es_test_msg_changepin_t2.py::test_change_pin": "e3ef20d60692e2afa768761a62b7ebfcb329688b57196dde4cb7f5ba737f643a",
@@ -8733,10 +8731,11 @@
"T2T1_fr_test_msg_backup_device.py::test_backup_slip39_single": "a9880d0905a3463b3395b8962a21f3fe4101248ffc2e76306b78974cf7301d90",
"T2T1_fr_test_msg_backup_device.py::test_interrupt_backup_fails": "d4773c1fc218627d0f3b70b88da17bdec58f169d965591f4bb8379600c6237e7",
"T2T1_fr_test_msg_backup_device.py::test_no_backup_fails": "b5307ef47f268893841f308f4db3d8a4fc4f5099d2deaa513dc0a39ff44d007c",
-"T2T1_fr_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "3e7d9c401351dda67ad4eacbee8cf95c1b45737524605e8c264e3cf157e15b33",
+"T2T1_fr_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "737f0a6f2bce2040b3a72812d629f32d04e1ac0f401f7b71b06503d1eecc4b27",
"T2T1_fr_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "abd918e6921498137b910fadc05b0e94e45e25c764ca53461bec47ff8ca01dcb",
-"T2T1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "dc3688b34556c1e50a015555b26b859f4b9dd6d128c8a889b8d3641d389a7efa",
+"T2T1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "a19d68232ab3df502954d539f66d6d8a8f562d007057070e01ee0ac3ac57b6a6",
"T2T1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "cb34bb63c9dccd393b3895e440d5d81dc41f7fb78282764a075b00c07c450f7a",
+"T2T1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "a2bb647c66f99eccb139aff80b32e2978ea442e40e40b2a02c84cfd0ba31c495",
"T2T1_fr_test_msg_changepin_t2.py::test_change_failed": "954d39b0f8f9b64b0f10a372d444719ba7b89e844670bbcf7d0e53b46e359c76",
"T2T1_fr_test_msg_changepin_t2.py::test_change_invalid_current": "e01f33d441393a827a8eadc54ba173d225b4672a5b613f4f2691a272f06d0130",
"T2T1_fr_test_msg_changepin_t2.py::test_change_pin": "c5f24f671184253ea44b176a7db0d418b2ae1faaaf76d7db4c1aff5a42ae7804",
@@ -10275,10 +10274,11 @@
"T2T1_pt_test_msg_backup_device.py::test_backup_slip39_single": "882fa31af8dd0122ce3898572c8244ec798f7ea50a36cb96105d2c1e99ccbb73",
"T2T1_pt_test_msg_backup_device.py::test_interrupt_backup_fails": "9d212639c04d7d4b44b4f06d68bbc32c33cefecafce1bbd010806ca576efe831",
"T2T1_pt_test_msg_backup_device.py::test_no_backup_fails": "0104fb92a66a21ec2e5e9e228a0868ba77bd1b5c4e31a3d51e8702ac92fc1ed0",
-"T2T1_pt_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "9a11c7bc415ecb8dcdd67ff5d095aea0e32c65c0bf62d012eff70d3584d2e912",
+"T2T1_pt_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "5dda5e59f86019f0b1890813fbf2343a1473056b8b5f7758b08431ae58d2ff15",
"T2T1_pt_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "cb17fcb03cee6c098154ad1ebd8f8aa7c3379bd5bc66d336c847e257cfd52b92",
-"T2T1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "257e2413ace9a507f783bbbfd2eb0569eb886a66170ed1ef4ef7426ed3636939",
+"T2T1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "fb2e4e5f88c1ee2a016d140ad300aee0adfedeea070933452062c0a46a6b1dd1",
"T2T1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "126354b1c5e07d239784c3d82e64df7f31cbf9e4976d4859a5615d35428afe9c",
+"T2T1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "c49ca71f36b284ceb3313ab94a2915a52d580c96f3ad19f3c2efb55974fa573b",
"T2T1_pt_test_msg_changepin_t2.py::test_change_failed": "b135d5e28e5035b3d089daab42a087701813550b8703223b7da3f5eb780b4fd5",
"T2T1_pt_test_msg_changepin_t2.py::test_change_invalid_current": "6309bd7fc683bbd5992e383e74bcdd0e42963d206fabd0269c75cfeec335fb00",
"T2T1_pt_test_msg_changepin_t2.py::test_change_pin": "d56015dc3529474bb7da22843928b969d7e3b9b1f49998a54fb50ea89d75e387",
@@ -10418,7 +10418,6 @@
"T3B1_cs_test_pin.py::test_pin_long": "5b07abf0635aeb42d00aeb0ca99122434d93cbac6ad25b83ae0af8d1d1ee45ed",
"T3B1_cs_test_pin.py::test_pin_long_delete": "e0b13a7ca13f83a2e8a512b859557997e15a624b59d6831c871d2f7f046135d3",
"T3B1_cs_test_pin.py::test_pin_longer_than_max": "9344752acb81676279ff97c4421de34281159cc8cccb0d24a4886c249887b5f2",
-"T3B1_cs_test_pin.py::test_pin_same_as_wipe_code": "bccb296d25cd6c6f99451bee80222e03bd03284cd5fb199656228d2dfd831431",
"T3B1_cs_test_pin.py::test_pin_setup": "9ac2107dc58353d59bf3e1fb039f1a4158c00ca0b2a4480302438ceb777e283c",
"T3B1_cs_test_pin.py::test_pin_setup_mismatch": "62dcc8772bd2c20484017bdab9eece3610924cd93d613631a60e1089762cf34e",
"T3B1_cs_test_pin.py::test_pin_short": "84ab684607dddda27a36a73318f1e623876831c0e4caa762e673126cd44501dc",
@@ -10466,7 +10465,6 @@
"T3B1_de_test_pin.py::test_pin_long": "390e2a362174249b6e4f811dbbd46d9e42a159d469b5f7d0c9fcd7187cad2992",
"T3B1_de_test_pin.py::test_pin_long_delete": "1f23f5676864c3cee5a71f58d0070d49c85395c8451296ab6e9ade4ae4e1442c",
"T3B1_de_test_pin.py::test_pin_longer_than_max": "7c16ed2e6903cc11175dbe5ddbaf68c960ee81c2167dc1c15ee6ba5709b11ed7",
-"T3B1_de_test_pin.py::test_pin_same_as_wipe_code": "40cd121b3ce6ec6949cac62a0779f78b78f132782ef10b2976ff9a172ad887d5",
"T3B1_de_test_pin.py::test_pin_setup": "50aa5b9a2da87a66a127dca447f9e51642ac78da99f65641bed1e1530b30a2a3",
"T3B1_de_test_pin.py::test_pin_setup_mismatch": "7012643ed5326c6a88eb91b042392db1656e993044eaa37ced97b457100722ab",
"T3B1_de_test_pin.py::test_pin_short": "7ec89a8817f8be2ddc8e69ab35c5ba9c96b7dfb52c302c333030b520187e7dac",
@@ -10516,7 +10514,6 @@
"T3B1_en_test_pin.py::test_pin_long": "c96c5d8b1f623f0f975f739df01ac51a2d012cb2f52c96c0e0ea7f76fdf34e02",
"T3B1_en_test_pin.py::test_pin_long_delete": "3480b8c59ff78776a226f81f940772481ee207fdbfe84b61fff1657bc77d5b1c",
"T3B1_en_test_pin.py::test_pin_longer_than_max": "7c384b5e39aeee72e943d2c8d1d17922422838f0c62d8c6dfcfbe17d4048c996",
-"T3B1_en_test_pin.py::test_pin_same_as_wipe_code": "6649efd2ceea51ad6fc440551f4aa6f2c7cb67eec5eea3ae8b6ed3048e66ec2e",
"T3B1_en_test_pin.py::test_pin_setup": "800b713300ac3cdc564e01b289e5afe1c41bd34ff4f90f968cdc255bc9f86e55",
"T3B1_en_test_pin.py::test_pin_setup_mismatch": "f017b47a94301aedfbb15202ce3e35cad84b434654ed524d055e5d8f1c28cd17",
"T3B1_en_test_pin.py::test_pin_short": "049d9ca3c723061e629deb960027b6de80505f1606e99ea4d96f8d518aa6effe",
@@ -10564,7 +10561,6 @@
"T3B1_es_test_pin.py::test_pin_long": "e929baa3c19b01fe4f74d183f551918c9f052296251b1ff22ec093f2120fb920",
"T3B1_es_test_pin.py::test_pin_long_delete": "42e143f9e50f9f6e59dc72bd62917195f3ee1f4cc8868f96e7a5075c5614f73e",
"T3B1_es_test_pin.py::test_pin_longer_than_max": "752d71045f0f810c8ad3cadb5d96bfd143d26ddf166fa7f80b7008d2ce333db6",
-"T3B1_es_test_pin.py::test_pin_same_as_wipe_code": "aeb58fd497ed9ff18f0b7558e06e6b3af8c3cd2b144710a1eab4700684d14d03",
"T3B1_es_test_pin.py::test_pin_setup": "8c7afd70c4c5101633a4183ff8a7b8475469812c382c60334d7a79e00fbe8e4e",
"T3B1_es_test_pin.py::test_pin_setup_mismatch": "589da9b6bfac771a7d9269bd2f2e888b609691b33f59c6b3a33febdb76390e1b",
"T3B1_es_test_pin.py::test_pin_short": "df21e0b6fd089b36c8eda784a8ab985d758bc2ecc1eb82f2834375de530cf2dc",
@@ -10612,7 +10608,6 @@
"T3B1_fr_test_pin.py::test_pin_long": "edafa5160cacc77f7aec5285483cc71d8217501299263f421711b3ce204ab974",
"T3B1_fr_test_pin.py::test_pin_long_delete": "3330fbc08cd7142bf2c53788c4c77da903c2bea308a07425496a5e025163b920",
"T3B1_fr_test_pin.py::test_pin_longer_than_max": "272b3f66ab2ce8f68f75e48cc992f7095a9fb25dc7d88f5669df8ffb9bc8143c",
-"T3B1_fr_test_pin.py::test_pin_same_as_wipe_code": "9841bd1cc7bb200d4087d9245e4a96cf8a76ec7307f4fa769716042cbe480de4",
"T3B1_fr_test_pin.py::test_pin_setup": "cebe666bdf8d1de9425e986285297de6130954fe2242150763846db175a37175",
"T3B1_fr_test_pin.py::test_pin_setup_mismatch": "a9817cb38613b3325606767c503341afe5e93656818a98969116e600b72297b3",
"T3B1_fr_test_pin.py::test_pin_short": "87258ce484a990e178a77e904499c001081cee362a5d111ecfba811d838d9869",
@@ -10660,7 +10655,6 @@
"T3B1_pt_test_pin.py::test_pin_long": "7cf9fd1319ed22693cdd8b3cb4348090ed816403a1b06bcbaab8aa5067bd2c6f",
"T3B1_pt_test_pin.py::test_pin_long_delete": "6fc31866a254ab3b644f3204d416f75d192d6432186d916ba1c5a45893901fbd",
"T3B1_pt_test_pin.py::test_pin_longer_than_max": "c4ae75b919e7aa0ccca271e61249da75b4b0da9f918c9586cd09f0f23e265476",
-"T3B1_pt_test_pin.py::test_pin_same_as_wipe_code": "d420b51252c58ebaca43384972fd20dd95bf37a3acc10961c120600fa10a2c13",
"T3B1_pt_test_pin.py::test_pin_setup": "874e00709a4ab572fd9f2221510b1f6bdf2ceda1ec0ac61ddb2fab5f1554d0ed",
"T3B1_pt_test_pin.py::test_pin_setup_mismatch": "c8d17328006f897958d5b5aaf047665881c56671d8276bd6668dad324dc903bf",
"T3B1_pt_test_pin.py::test_pin_short": "2a75c72469fc9862a78ab540e6da5752ef3aeeae51d0b15396972a2a15f27d28",
@@ -12045,10 +12039,11 @@
"T3B1_cs_test_msg_backup_device.py::test_backup_slip39_single": "59c40321657e754ba4a3ad6b1193fa30031f11b54fe7a5fc8b7b51fa702b02d4",
"T3B1_cs_test_msg_backup_device.py::test_interrupt_backup_fails": "91d4fd9e264916b6f81746229292e90d32ee1fbc95c9efd28a9fb9352672f71b",
"T3B1_cs_test_msg_backup_device.py::test_no_backup_fails": "9f76d6f38e98c3bfbcf74f074e280c99fbaf95e44b38e10b996a3ba9a89aeceb",
-"T3B1_cs_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "e18b0bfb8bdd86e8293172145e7a1715c509ce547f6ceddad83eb21943b36648",
+"T3B1_cs_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "a40aa7d566918c5c16ae590c78873928b0d4ccb5f5d4f362951c1aa7261e8d92",
"T3B1_cs_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "4025fb9c12197c267842c79a1e78239737910eed2a23a0c5bf1f95fda3eee3e7",
-"T3B1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "d3de7bb63126e7447309698135e3d4661bee55e1488adeb7afff935a6112a09a",
+"T3B1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "28e621b5fa2752d5f6cb8f495bee95b27a24a37b0be545391a4cc004673a43a4",
"T3B1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "4d6763528b553c5063fd73416b1d0ce60b110fc0b8e04e72473a95e8cf2dcfe8",
+"T3B1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "7b6ee2205c5550cf19c26a3d0293dd4f083c8a2cbf4ee6225edea28f0c664358",
"T3B1_cs_test_msg_changepin_t2.py::test_change_failed": "3a3059301af5fdf759874aefcb26ccdb71d3bdfdaba5f182a337c2c4f221358a",
"T3B1_cs_test_msg_changepin_t2.py::test_change_invalid_current": "c9ec29f25f17443292c0cbc07d1033f986c35b874ce029f999befa12f70ec7e3",
"T3B1_cs_test_msg_changepin_t2.py::test_change_pin": "6ca1dd3eaf07606e6fc2bdd6fff7ffa13a000bd513290385193228ead74b54f0",
@@ -13504,10 +13499,11 @@
"T3B1_de_test_msg_backup_device.py::test_backup_slip39_single": "5a18da2747b375df5680027d6f1fdb243b39359a6a736f32c996b206212e33c3",
"T3B1_de_test_msg_backup_device.py::test_interrupt_backup_fails": "75448b3c9cb91ddf6196f62026f30adf72dbd9f79d820a710e9285ec72819ab5",
"T3B1_de_test_msg_backup_device.py::test_no_backup_fails": "6fa1a92dbf230cbe4d9e9c989f14202b9c94ae7b3c2dec968c96601c5f7f7ef8",
-"T3B1_de_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "ee7e9117ac6ba1f519ce084455191f1b6182b64fabbd0931494dc68dc0dc9eb6",
+"T3B1_de_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "1fe3a658fc15d784044dfd4552b6da94e8392917f708a2496652b4ad804b3bb1",
"T3B1_de_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "e7f82bf6fdf0378979fef66dc3fa83a33f34b85b55d4aa814f552d5c9f5371bb",
-"T3B1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "ce1a89b99ac405f576f62b1df211017bd8ab2fb9b2b73bf79fbb37782b57de36",
+"T3B1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "06ed573418e145a0d07ba7337e5bc47d8c200c5ed1a799fbe5ddfdb724d0fdf2",
"T3B1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "17ecf0a2b9a207170f5521ae9af5afb4b1a014364ba12d55308d29d6a9fcc71d",
+"T3B1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "a7bd5217ba3ac86ccd7926d97a91e0af4e259161152421d487fae778880c0172",
"T3B1_de_test_msg_changepin_t2.py::test_change_failed": "761cac3f44699284c769c93139884cfb37ae72c414474412e904169214baff34",
"T3B1_de_test_msg_changepin_t2.py::test_change_invalid_current": "e586489f3f7b0a7b16082cd51d6ffaf56ccbbab1308b1d365506302d2574179f",
"T3B1_de_test_msg_changepin_t2.py::test_change_pin": "e99f29c038c452c600a883e5bd7150f56ce0e2268f2eb8b0e6a75325b068b213",
@@ -14963,10 +14959,11 @@
"T3B1_en_test_msg_backup_device.py::test_backup_slip39_single": "958d016f93289cba260d6e47c01021721038771b05915a2d9c05f299604a890b",
"T3B1_en_test_msg_backup_device.py::test_interrupt_backup_fails": "8d2cd13a4dd2cb91c6196911926d20d6b5ae292bd41763bf08f7e78a8a0fc49e",
"T3B1_en_test_msg_backup_device.py::test_no_backup_fails": "0484e92a23a5dcbe9b46d0ce7b582a809317177f6ad3d96788b680081d130026",
-"T3B1_en_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "abbdd4904d2eb2c584ddeba7de5f8c1c13ca857b7d6227e7f770d3d50551a594",
+"T3B1_en_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "ef1434e347d8feca3de1c9a27550507ce70b375452f6a01c21c31ca396fec9f6",
"T3B1_en_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "37c8de0f61bfe2889b99d180130535224c9343944bb188995862e27efdebb3e1",
-"T3B1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "841adcfdd230374e6530ddbf089a6820df07b7a2bd4493b39bdedd22aee7698b",
+"T3B1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "d07724b6e42aae235c8196b87f77e65d2d4b72678ee0a1101c453fd9e4d4e286",
"T3B1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "f4d4d84f886c7019ae218100a1a23b201158f9677a734cd366ddc7c521202723",
+"T3B1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "eac248a9b3a42dc542f33e88ad83ab8d6c7fdcc822d796e78dc492e6132fb52a",
"T3B1_en_test_msg_changepin_t2.py::test_change_failed": "80707cfcbf5d00e75aef3c24186fd4f1f1e9822d8e5cbd11ef7ab95aba4f2974",
"T3B1_en_test_msg_changepin_t2.py::test_change_invalid_current": "89f6390633acd286aec2245cd7597ec2c1c6a9dfe367df77e43a15f33a509cf5",
"T3B1_en_test_msg_changepin_t2.py::test_change_pin": "308bc2e992a01bdd9369f6dab475cc15bf02ee43af1f68c132dd33cfd4922111",
@@ -16422,10 +16419,11 @@
"T3B1_es_test_msg_backup_device.py::test_backup_slip39_single": "28e642fe858953a09ae38ed2939995a8c663a26ce04a1a128a5a0de3c883aa4c",
"T3B1_es_test_msg_backup_device.py::test_interrupt_backup_fails": "cdb0e41680c1a12c02fd60709a3c4c868b41bbf501a633070a19fa39d5f2d55c",
"T3B1_es_test_msg_backup_device.py::test_no_backup_fails": "22c3fb9caf9ebfdb53ecac9edd21ed474cab77d283cec6ab195ffd66c5ef1de6",
-"T3B1_es_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "7fc3a241c1ccdce80cb399228db34551c157c72f4af8abccf85c5846ac3e1188",
+"T3B1_es_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "9600441d5df48269c9d8da6c3c7b553e3da2ff3d5b2400709d824da5fcc3b8bf",
"T3B1_es_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "7337055cbea10a2283e775fb8ec576171a7d7d2a40ac454823c9a45cac2c8a39",
-"T3B1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "731e2fc0fb1b070f037ef23b5fb58397e66b5634c2aa40b9788fa70bcc90e1e1",
+"T3B1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "8aca294c3ceb45660a13ed9e62acbca92606152a72a91805a3368a74596c97d9",
"T3B1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "2cc98a65fa1ec3e272162502ab0497a54d6ddfea68ee60ac77ddd1756206d27b",
+"T3B1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "6471c793592ad16ec99702a0cc749ee5b5d6803baa006de275d177b50a55aaea",
"T3B1_es_test_msg_changepin_t2.py::test_change_failed": "df60a661dc20d92fb89188ca9ab305299c7a5788be0dedc75cce24469317c15f",
"T3B1_es_test_msg_changepin_t2.py::test_change_invalid_current": "eb53040dcdecb0c26de185c18e0c759836c8c169a411a5c80e857cf00ef433ee",
"T3B1_es_test_msg_changepin_t2.py::test_change_pin": "eb3389dca901623744627a837c656899c4fc2047720ffc2ce5984577a98e8dcf",
@@ -17881,10 +17879,11 @@
"T3B1_fr_test_msg_backup_device.py::test_backup_slip39_single": "f206698203cf1d56c2247191b89dc9eb13c56451be96a7d131bfd0f992cc6f45",
"T3B1_fr_test_msg_backup_device.py::test_interrupt_backup_fails": "4c51d0ed90685c276e062d1b18bf69fc561ebd4aa85091883fa4578f5916c2df",
"T3B1_fr_test_msg_backup_device.py::test_no_backup_fails": "0c798d1110a4755b5fa69003a987020ad9f83609bb3d471c81d8323c94f635d0",
-"T3B1_fr_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "41f412bc088abde97624dde6adb7627607112c2a92df3a831a23c3cb72b50551",
+"T3B1_fr_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "5f0e74e2e182cd4379ac924fa870c2834fda691734eafdc3c17a4062dfe7a3b3",
"T3B1_fr_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "ac7dd6850e33db7eb39b1c65a1763c38aacf953537acd7c706ccaf0e35d39d85",
-"T3B1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "ff700e2f1f780ec92b2f29b70ef1d441abc6b0856286f6f6a6520f2064828cf1",
+"T3B1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "a80daa1abd94f59c565be74b0965e5c70c18af211725f28185adfdd5610e714b",
"T3B1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "7daa7bf5bc0a9519729b92b15f593d00ecf5486dbc4fd8a7839fd16a02ee93f0",
+"T3B1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "c1a85f38c565d284ec61d4cfe7e323ea63b70810205ec39d04df8298c5f20187",
"T3B1_fr_test_msg_changepin_t2.py::test_change_failed": "12ecc93b822aadd79ef67d491756e363e71f6c65b1bc4620415959eaaa3e58a3",
"T3B1_fr_test_msg_changepin_t2.py::test_change_invalid_current": "8ca0ce161d09c3b2391efe49361421334ea1fb908512e74efd0dcebdcc2bd0b1",
"T3B1_fr_test_msg_changepin_t2.py::test_change_pin": "43f6210d4c670b208b3228066be27ed25d16207d6ef7468a9b31a052427c94ae",
@@ -19340,10 +19339,11 @@
"T3B1_pt_test_msg_backup_device.py::test_backup_slip39_single": "ed699944211a33ced35fcea7d98a3628fdc5b673ca14388d50334b4403530d5f",
"T3B1_pt_test_msg_backup_device.py::test_interrupt_backup_fails": "3cd3a5cf307543362a56655399491e1f8da133aa790085ef08b657b54673ae90",
"T3B1_pt_test_msg_backup_device.py::test_no_backup_fails": "d64cf222c5aa1f13159b5721726717a88d2c97c677b3df24ab973589e024aa13",
-"T3B1_pt_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "4a2ee0cbeedf33291741ba66a92d79903e82bc7d7d80723585b866ba61e7c522",
+"T3B1_pt_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "f59c4795628c8126e02649854d7350b1acc97fb80f7b36a5d1d0228cf7e7b650",
"T3B1_pt_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "7e6677b0dfeee816c685117e55330d7eff5d3bbff195b19377813f8747e85595",
-"T3B1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "930f7ca66b5e4061fe0e34a208c3e85bfee0b98a72a8e6a733fd73e0b6cc0c55",
+"T3B1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "bba0e6a7f4dcd2e7bf39cc8be712c0c87900cc19356e2a87b973399d8eee2017",
"T3B1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "94970630b4f90cfb2c48e16fc8a112628887c80302b8af9ed6e703bd8addfa3a",
+"T3B1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "51ef5a3c4b6bfcb52f33d86feba5e70724e4b075e5a30def5881d3ad42e1f52d",
"T3B1_pt_test_msg_changepin_t2.py::test_change_failed": "95287cd6035649d08f2bf5a2b8ccdabb089babd9f72a105949efa6a30d97dbb1",
"T3B1_pt_test_msg_changepin_t2.py::test_change_invalid_current": "7e41e5b31195469b451f314d888d4204ed4d2d15d33e57480223a14d93587b71",
"T3B1_pt_test_msg_changepin_t2.py::test_change_pin": "6bda9909a825cb249fb9ba1835221748182dcdb7d1c143a7fe1030fde00c51e3",
@@ -19486,7 +19486,6 @@
"T3T1_cs_test_pin.py::test_pin_long": "9f398e4dca2602958401cfed24d2b08b2dc39f17a1c1023b06c81604b33f090e",
"T3T1_cs_test_pin.py::test_pin_long_delete": "ea80df7cca6f6d2dd3e5ae81b965e400abb600ca08c8cf18a979f62296c0dc90",
"T3T1_cs_test_pin.py::test_pin_longer_than_max": "3616b891c00906ea573d2d9afaba072a1562611dc46f3d606e32a9896edb49c5",
-"T3T1_cs_test_pin.py::test_pin_same_as_wipe_code": "ed4e84de77d8d3d080be23cf5abd174bd5f896d7402acdefd9a73ee5b77b4e01",
"T3T1_cs_test_pin.py::test_pin_setup": "396b78a2267f2cedc8ff25ace92e9a5b69cd8a84634aceef73b2fff5f0f20e2e",
"T3T1_cs_test_pin.py::test_pin_setup_mismatch": "a044874b00df38430e1c890f7e6f22c0526c33b85fcfde2e43b8b2451ebd8052",
"T3T1_cs_test_pin.py::test_pin_short": "b5f2e6bfdccf84237aaad5cc56453410c6c7d1d5b3f1a40dd368c1f335398d2b",
@@ -19546,7 +19545,6 @@
"T3T1_de_test_pin.py::test_pin_long": "fbd47def9b0e930095c7db427a20c9f7e687330c2c4035d1f74c0cd6fe336d6a",
"T3T1_de_test_pin.py::test_pin_long_delete": "25907b2531cfe909649cdc97cb07c3c35ee34bf27d65eca4407e31d52062c7bb",
"T3T1_de_test_pin.py::test_pin_longer_than_max": "848127bad36bdce62ca762fca41bf19b742240c2a3cbee0a2877dd8adec32479",
-"T3T1_de_test_pin.py::test_pin_same_as_wipe_code": "59a331f0ac8560095fea7225aec2155523cba883c6438afae245d3c7da588206",
"T3T1_de_test_pin.py::test_pin_setup": "43d09b5ed2fbe0e0717d3dfa26c7cb97ddebf6df3d8ffca62ae98fbd6a5fb744",
"T3T1_de_test_pin.py::test_pin_setup_mismatch": "8e8b1ed3540d9d88a7e5c85317e2cb53f6077778d6b0398cd1d7b640509c1db9",
"T3T1_de_test_pin.py::test_pin_short": "23033247fec09b3ac9afc283aab562ba060f5a9f929e53cc0f59b289442312f7",
@@ -19606,7 +19604,6 @@
"T3T1_en_test_pin.py::test_pin_long": "a60180f6ca06a888adda26654a512cc3813816227322118e53750a1b7e24d232",
"T3T1_en_test_pin.py::test_pin_long_delete": "79b8736e9bf941525f810ba9d863d285dc6c7cf3b366ee7b983e3039db02003b",
"T3T1_en_test_pin.py::test_pin_longer_than_max": "be29c99da7fb8b44428115c7b81ff5ceb3563ee3bb620aec0aeb5f43dfb33f18",
-"T3T1_en_test_pin.py::test_pin_same_as_wipe_code": "05b52fa22d9003e37830ea7e3b4893fc28236407192e4d51aef7a3e74fcfa340",
"T3T1_en_test_pin.py::test_pin_setup": "001ead22845591d7436fae27cf52fd042717943af96a6d659f206b1cc4f1af63",
"T3T1_en_test_pin.py::test_pin_setup_mismatch": "93f236f73202ab0aa14b073adc51d0fa19f5381e75f9cb726c03e917df17e32b",
"T3T1_en_test_pin.py::test_pin_short": "022f7aedb0c7745216a4faa01e2a18f2a6e7053f787cf4e302e151cd218807df",
@@ -19666,7 +19663,6 @@
"T3T1_es_test_pin.py::test_pin_long": "b69f808480ab0e94fb467e227d7e1b98571a90a415d98f2a40d91b7e18532d9f",
"T3T1_es_test_pin.py::test_pin_long_delete": "e56f8e5b5f1ddd38c0594f771cc5e36dbc0453eb95139f7b738b78b8988b8aa8",
"T3T1_es_test_pin.py::test_pin_longer_than_max": "b89b0a374ea9e07e38bf328f6dcc6aaf286ce69ee27ea8ee6c5773904e104773",
-"T3T1_es_test_pin.py::test_pin_same_as_wipe_code": "23df003368b8d44ec9e462b3f7282d0dae37cbbe9538ab538adb752dcc88636d",
"T3T1_es_test_pin.py::test_pin_setup": "54ffe4dec336fef06c3631a7b52b6556528c9aa49c1f6ce5ed57b5110148bd97",
"T3T1_es_test_pin.py::test_pin_setup_mismatch": "46e28efc0719073487d916d9961e87f65f9ff81cf2f23a9be4aea07faa725bb0",
"T3T1_es_test_pin.py::test_pin_short": "232b53221c11001e275c1e2af86d06252381bb2aac2a1ae7910ad8ae3f0c563a",
@@ -19726,7 +19722,6 @@
"T3T1_fr_test_pin.py::test_pin_long": "c0b0723a84c535a95d53a26055bae1e2d642eb2676dd9b6f7065fac06606c8ff",
"T3T1_fr_test_pin.py::test_pin_long_delete": "b1c777ef9b53b9486943a06ea325c52d108198411f8f09e15bd260f10a53f039",
"T3T1_fr_test_pin.py::test_pin_longer_than_max": "2486621853f88d2336dce7fffef9c1caea04a0ec9999bc10b36a4e729c73f331",
-"T3T1_fr_test_pin.py::test_pin_same_as_wipe_code": "17b91e3247b8f8e379147612088ba97b01453e0f8aaa3d18acbfbb8a43db7ac5",
"T3T1_fr_test_pin.py::test_pin_setup": "2388c1695f2d70281ab74de49f2b804b63c254ce067190a967061d1f6cd470e3",
"T3T1_fr_test_pin.py::test_pin_setup_mismatch": "b057da532b30bfa23d804f3f7b65d9806ccf70f44944da7267a9d6de84be48c3",
"T3T1_fr_test_pin.py::test_pin_short": "03bba8291e0a55453331a28a2619062564f2cfae2978b7f94015ec816f1a4810",
@@ -19786,7 +19781,6 @@
"T3T1_pt_test_pin.py::test_pin_long": "470edc3f7ec7d12a93705e9bb57629fdac77becf143dc15165fc99af37071f24",
"T3T1_pt_test_pin.py::test_pin_long_delete": "4117b6e71693a98ab3bc5f91d854da9511941deac3f4e6b711634ccc4444a831",
"T3T1_pt_test_pin.py::test_pin_longer_than_max": "a0767729b6d788dcb6310552b96fb2cdae6353ddb87876c2dcd042930053d3da",
-"T3T1_pt_test_pin.py::test_pin_same_as_wipe_code": "9bf9486dbeb50d68229ffb7001b3891388db3f9ad52a6c5aa9c361676da0a876",
"T3T1_pt_test_pin.py::test_pin_setup": "f51b883e9ed7c67f2a938fc8377c9dd656e70091aafb8f5e902ec6f8ffbe1383",
"T3T1_pt_test_pin.py::test_pin_setup_mismatch": "30726f2fea81e9855482762a170436e87e74dc6ec741d596eb1d6c195d406d44",
"T3T1_pt_test_pin.py::test_pin_short": "a0408eb9a25ab9fb5b38666a25603871b201ab75de7e32fba46f2cd3c24bb6ef",
@@ -21199,10 +21193,11 @@
"T3T1_cs_test_msg_backup_device.py::test_backup_slip39_single": "4505bf1da911efb8fb34f1a00bfa795c107fdec24638935669352cb1a80e2696",
"T3T1_cs_test_msg_backup_device.py::test_interrupt_backup_fails": "e520eebbb04cbeab99ffd4cc7f9f3b801a3caa08e82d170ca57152220e1d26f1",
"T3T1_cs_test_msg_backup_device.py::test_no_backup_fails": "950aa0290a417326d1056d9434fe31c7e3e938fbc6ac988ba2e5230dd5bb4452",
-"T3T1_cs_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "84da51c43b613323d853814dfdc335fe6a552aaf583c8b4dfb92287f4c5a38fb",
+"T3T1_cs_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "3e5c953a5eae92a3c98d8f9939b9db357eeed7f434914e7cddc686d38040f362",
"T3T1_cs_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "dc8b2b2fcdb3f52915b946c26157d29e9b080d0b10e4a752cccfd688c5a9b8a4",
-"T3T1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "618c10e3257a6afb84991bed77c565e98df7cc95e0d32a8e3c7f18eccdcdc255",
+"T3T1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "f5b06064990bf86886755e46829e23fe7a5f2a56402e95f8977e9d0fc336daa8",
"T3T1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "5e2a68cc07ef3c4c6648ac3c4b0565cb082487c01241c742b67a40ee767bbe4d",
+"T3T1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "170c0661f63b15086800caf3a317c833a7739d4e299e63cb774338113e643d63",
"T3T1_cs_test_msg_changepin_t2.py::test_change_failed": "716bbb3e271a72b26a834fb4f5025d394c4e20e0975801a43be32ed7c868d0e0",
"T3T1_cs_test_msg_changepin_t2.py::test_change_invalid_current": "a171757be5fdb05fae518d5f35794110506ebef9f4f5de2bd4797aa6a63a0961",
"T3T1_cs_test_msg_changepin_t2.py::test_change_pin": "e0d90fecd696fe887a547c32b2cd7fce6620ef44444383012ba71923a3ae04bf",
@@ -22689,10 +22684,11 @@
"T3T1_de_test_msg_backup_device.py::test_backup_slip39_single": "258c747238f76d67f9866cfb5e37361c5529cfa94ab2a5f2854d2590d19f2e2e",
"T3T1_de_test_msg_backup_device.py::test_interrupt_backup_fails": "24bd8f54bc19d7f0153dbd9a9cde4c2c0ee3c499ae64172866643145176016c1",
"T3T1_de_test_msg_backup_device.py::test_no_backup_fails": "905c08a2668fcaebd94ed0ef8e6974842203de9f1aa6079ef11da52f9c32eb62",
-"T3T1_de_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "13cda0d32d5b5b1f0f6eeb91d033375325d749a848ddf77dc07500ab9d6d7186",
+"T3T1_de_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "c35c31bd2473248fe6d23c0734f45d902691021df234302c4e98a54bc0d5ad95",
"T3T1_de_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "0decea765a16618d9521ce2e3287cd3bbf5cbe39b04930daa377cc53588bd71f",
-"T3T1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "a91bdd921f1384b9729597db884a5046504089703e878e91e9dc3a1c6ab8ef39",
+"T3T1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "47ecf16cd37f2c62a40ff37d47e3e6a9a5f662b1ac8763b8f83e4a0e7e13f232",
"T3T1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "6a5a4a24e850d168462fad2a00cf96ef56c9ab0a788cb9d531e1622783aa8c6c",
+"T3T1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "9629a224bf052c6495a5568888e962ce85e2989bc6d9d116c380e849e70104d0",
"T3T1_de_test_msg_changepin_t2.py::test_change_failed": "eda3881f42f9fd38f8806d26171e112e61ed34d051df983257e1de8824a16f14",
"T3T1_de_test_msg_changepin_t2.py::test_change_invalid_current": "1b8da0678959d4475fae6ed20763428800ba5da16da5e3b5e615d8245da708db",
"T3T1_de_test_msg_changepin_t2.py::test_change_pin": "f3c999030776bd6f357ecab3c588b3029f5571edc5c16ff31acbb02abaa62b31",
@@ -24179,10 +24175,11 @@
"T3T1_en_test_msg_backup_device.py::test_backup_slip39_single": "a49c0769d8d0f2dc54e2f2095a17e3a5b16eaa2794b08c072d07ee018a243c7e",
"T3T1_en_test_msg_backup_device.py::test_interrupt_backup_fails": "189560710e0f68e97e163575ef62c3113f71db05927dcb2df27bbcb559a07257",
"T3T1_en_test_msg_backup_device.py::test_no_backup_fails": "cd5be6b333b0b90d72462f83884e12743b2b88eb9ffa5578219bf4c741311d5a",
-"T3T1_en_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "6f69596dc13656c7ae8a7f96af9ade205eae3539c2beea5de8da3ec108e71887",
+"T3T1_en_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "d2c22f925c34c3cfc9b739ccc74451e07e64f5bfef4885b8ebf7a4c907a7c645",
"T3T1_en_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "00e4c39ae73660591da8355fc8cc9275893c4792eee6bcb222e2a2f16fade1d5",
-"T3T1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "e9ec493046ccae7101f2e5726505c0a331a0b62e5504db0533e8b4cfac2ade6e",
+"T3T1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "3c97aa9f7233dca79ad29cc0b8c4cad2e9b4b8fbefcb477dfd74f5899a959444",
"T3T1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "3a2677b1abcd46491398329a8b1f57f6c6183d01e9b76b274b1d7af203f1714f",
+"T3T1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "1de1607826e87c3db24b7740e097c3b5c36a9e2f26534084276226bc5b2e4e7a",
"T3T1_en_test_msg_changepin_t2.py::test_change_failed": "7ef05073fe2847c411a5716732fc9c4fb5f640f52effced1dac35b440cfc4f99",
"T3T1_en_test_msg_changepin_t2.py::test_change_invalid_current": "0b68ae80c670801a6f36d5fbc567b69547dd0e455a53a5cd2ba74f15d4155003",
"T3T1_en_test_msg_changepin_t2.py::test_change_pin": "185a75c26f27bcccb0e2be812eed73df29762c5ca324822bc0443f6b3db1f1ee",
@@ -25669,10 +25666,11 @@
"T3T1_es_test_msg_backup_device.py::test_backup_slip39_single": "f8ff920447786154b1c6e8ce6ae544898778aaf0575a48c4141c18e328c8e895",
"T3T1_es_test_msg_backup_device.py::test_interrupt_backup_fails": "2ee314fe1c840799ad98f7a74138380240c7650d3965d8f1c8338959b7090953",
"T3T1_es_test_msg_backup_device.py::test_no_backup_fails": "462475ac05aa7f5475dff48752b7726298cb551a22ba352861c1db866464905b",
-"T3T1_es_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "ab186ee0ee0ce207146616a6b526708238899d14f16b1ae8e0a805df471e24a4",
+"T3T1_es_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "1fdacebadb2602d19ac3a3183207be2dad5bf58bb675c9a2f4e4ac1b2956d42d",
"T3T1_es_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "45204a392ba729e5c290730609bd18640edc4a053dc47cc10f5ba5b1f6b4d0bb",
-"T3T1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "cbf8d1c70b0d7f7e1a9cdb90f35950ffe3f7614a0d4bc04a0d9f39fccfe7b7fc",
+"T3T1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "e925367ce1dfd591b14bc0961dfdcf022be8641e24600dae2b9dcd5403313e90",
"T3T1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "589a8cc71f7494334e7d813aa9e924871fb8e0b1a28516ad9da475aa98f35c34",
+"T3T1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "a2b58cddcc2a5443bf16ad306df49a42f6d86c15e124feef2a78d0fe93accaa8",
"T3T1_es_test_msg_changepin_t2.py::test_change_failed": "ebb0fb1ac935eb9bbe2049351a51c85ced1ec5ef2d5301032d1dbb58ca9e039b",
"T3T1_es_test_msg_changepin_t2.py::test_change_invalid_current": "6af94bd684d4888af6c8c765307dd582ec42b5fe74f9eeafef54c94824075364",
"T3T1_es_test_msg_changepin_t2.py::test_change_pin": "d1b6b5140799826359b9cb6dd41808b54e91458bcee1ebc9431aed47abd420aa",
@@ -27159,10 +27157,11 @@
"T3T1_fr_test_msg_backup_device.py::test_backup_slip39_single": "fa2e8cea0da13b06d569b68faa49e92838518a6dccb5b2d1db7e72f69bdc0231",
"T3T1_fr_test_msg_backup_device.py::test_interrupt_backup_fails": "971d80d559af47bc38f34f39914db5d608d19afb16d1825719f24a4e9409cf23",
"T3T1_fr_test_msg_backup_device.py::test_no_backup_fails": "f09daa09c282878162fc8099e5bd7679be56a5c6eb7c9b59cd06174560342227",
-"T3T1_fr_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "0a1bd225914512f1bce7c0dda394130821a016cdb44fa151640f19494d89e7fb",
+"T3T1_fr_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "c28b1cbdf5be2dfe82be1cdd580ed5b7a74cabdf9ef308686543f1d946e064f4",
"T3T1_fr_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "d3094d899c3e12886e81712dffa8be7868421d1c0fcf1621fc093b8722b038b3",
-"T3T1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "a7703b77da1a79ce0d7ff670126898e001ab7170756a9803f76b89a562ec4d33",
+"T3T1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "8c3c86bf540bc5a22dc6be1613057f14aa7e3d15dab4b88b7ff197488f7f695b",
"T3T1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "566470e3c71117e5f3ed9cc24c0a6265f289b1e51a30cac0a0ac275f3e56bade",
+"T3T1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "a662131cafd3a3ae851e99b53453e57746f44fdaef580ea2fbe41eb16f3c33c4",
"T3T1_fr_test_msg_changepin_t2.py::test_change_failed": "94f823ee226815753894400b724d5a4372442e736e9663f9fd3147c53bcad420",
"T3T1_fr_test_msg_changepin_t2.py::test_change_invalid_current": "d20b1f4ba1ea217ad4ca3418a76ee270f89cdb73b164bf3f9b9502f838b46f15",
"T3T1_fr_test_msg_changepin_t2.py::test_change_pin": "ca1fa28a55ecf896a1f4b127b18875277a0bac76c74588bea7a5f3ed25dc4b45",
@@ -28649,10 +28648,11 @@
"T3T1_pt_test_msg_backup_device.py::test_backup_slip39_single": "d780b5d7936b58cd53215dbd2b27760fb6f1ba4a2befad0eb451a65f9ed1a9cc",
"T3T1_pt_test_msg_backup_device.py::test_interrupt_backup_fails": "a826bfd6b8a52950cfb4a7aa6d68ba3149e12eefe99b9d96decf1071f9d1ef7b",
"T3T1_pt_test_msg_backup_device.py::test_no_backup_fails": "658d92205b0d1d82441f9f9231b8eec4402eec487ad292bee6d53b2b5b23fa0f",
-"T3T1_pt_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "3ad0210948118725e5a4cf035609e857f2b248e1e7472304e6cc899c3254aace",
+"T3T1_pt_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "6139cfbde86f325bcfeec0cfaef4b761b5b5532a5828b5206fb572594745161b",
"T3T1_pt_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "41d4fbc56b65d8dca4b291ab4eb6c5379518b28da3eee5d0b3416ced1b86b856",
-"T3T1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "ff7763a99dc426a785879aeb42377cea3636b20cfc43c1393064b604490e5bcb",
+"T3T1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "fff7af25bee72cae4e62d44d007527db02c042720a2e84a5f066ad376d682fe5",
"T3T1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "d106587617cee5e2fc137a8dd60614bcad2afebe639c3369ce9c66aeeef880d1",
+"T3T1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "e5fd06c76d068a1bf15514066bc5208489184f418cc2a3d36c1f83d777f8074c",
"T3T1_pt_test_msg_changepin_t2.py::test_change_failed": "b9fcc574428c35e99f10fa2f5331d3b54727b36ea919d3abc3c2a86378504fcc",
"T3T1_pt_test_msg_changepin_t2.py::test_change_invalid_current": "c70d0fef626e6e21a76ba6e6271533b2d90eb02a4542734629f9304aa5512956",
"T3T1_pt_test_msg_changepin_t2.py::test_change_pin": "b0be10f2d54f5312afb28a0a52a8921a612fa6316a4c060f749b9284cc6c3931",
@@ -28801,7 +28801,6 @@
"T3W1_cs_test_pin.py::test_pin_long": "39899a5a79586f17cec6a66611b663c41c0f9eab9d28c007207d6b6f9082d394",
"T3W1_cs_test_pin.py::test_pin_long_delete": "6709e5375a2e2cf4b77d79c10dfebc97ede2f5e7d968517c071684ec1e2b8c9b",
"T3W1_cs_test_pin.py::test_pin_longer_than_max": "f96170014777cecbaeb04e07640f31ec1c009120d72b9f708a9849df89029024",
-"T3W1_cs_test_pin.py::test_pin_same_as_wipe_code": "a2e0e368849dceaa46c30a0660337da0092d6a8f5f433f553c4dd48d59280f68",
"T3W1_cs_test_pin.py::test_pin_setup": "def38e6eb4838227bee862b92e49cde8c37050f851a0b9136cd1ca911378a838",
"T3W1_cs_test_pin.py::test_pin_setup_mismatch": "d9b17f0ed21c5bf7584e614da9122d68f6638d6ebd10705ef8a8cd78d83433e3",
"T3W1_cs_test_pin.py::test_pin_short": "c0b2ba31b51c8c785cf9ebee330b693d4d196714e1c0f3f0848ef26df3eb70ea",
@@ -28860,7 +28859,6 @@
"T3W1_de_test_pin.py::test_pin_long": "5257e3b898962de2d6a1c057f27a716d10193c6f81a1d926477906bab9149bcc",
"T3W1_de_test_pin.py::test_pin_long_delete": "95b634a7651ab3b375fbadc8622f6c0defe9c1fbf0436160b966bca80c31e9f2",
"T3W1_de_test_pin.py::test_pin_longer_than_max": "fea9c6dcaf46aee63aea92e2e51c8667b092832bc3bf65f36a2615b0f1107f8b",
-"T3W1_de_test_pin.py::test_pin_same_as_wipe_code": "f260b2928bc15b511e3be19262751ceaba28a4d1b610a9626a6d0a33399cf9b9",
"T3W1_de_test_pin.py::test_pin_setup": "091e5e44e7b353a2cfe6c9f9ff95b8bc8e05e8effb20a02be45ebd9c49519de1",
"T3W1_de_test_pin.py::test_pin_setup_mismatch": "dfd8df151beb92589f2b7e90bc6267e53e5ca8d2c44ae32054c834364f695121",
"T3W1_de_test_pin.py::test_pin_short": "cf97db318075c6fa9b2aa7e54f09ed0b860f757c0405e14da912522bdf87c209",
@@ -28919,7 +28917,6 @@
"T3W1_en_test_pin.py::test_pin_long": "0ab753d2d5efd8f25f85f044e0a6f6dc6c813e86a0a9831063ed03c1d3919386",
"T3W1_en_test_pin.py::test_pin_long_delete": "20a514eb7972dec09c559d8e99c176cdc585afe162c5464692443e47d085b110",
"T3W1_en_test_pin.py::test_pin_longer_than_max": "1059f08905bbbca86eb87e40662886eaf4fe1c756e73409c8ad60ecf0096c965",
-"T3W1_en_test_pin.py::test_pin_same_as_wipe_code": "25b2f7de9ab832d1a1d3e1160351043fbfc5bf5d9968d47e60d956a0694f82be",
"T3W1_en_test_pin.py::test_pin_setup": "270144b6371c4003c9409baca2a122ce3a4d59053cf69dd39b8fa9b8a5fb03e0",
"T3W1_en_test_pin.py::test_pin_setup_mismatch": "43c7cfc38e2dc39063ef074d352af7c16c2c5c4733901efdbf92c46ab8575d44",
"T3W1_en_test_pin.py::test_pin_short": "3bea7b76c6d1c445b6c50bd7f31af026d2d2a462e1250f2d188361fb2f6d30c5",
@@ -28978,7 +28975,6 @@
"T3W1_es_test_pin.py::test_pin_long": "ee2cde831f052593f7eed55672942da9f882ef5954a4b2c38c97996d3c4099f6",
"T3W1_es_test_pin.py::test_pin_long_delete": "48181f1422b3a761e75e64cd83766c5312546f4aec509786c6bf7dae0c9cc1de",
"T3W1_es_test_pin.py::test_pin_longer_than_max": "e2e3e8e308114baf71fdaaeef669526546c4a202256266d45f9d1ee8c0c70972",
-"T3W1_es_test_pin.py::test_pin_same_as_wipe_code": "08f6a6f1587edf2573d95608dec15084322f724ae2d2d819653087ae7f178e06",
"T3W1_es_test_pin.py::test_pin_setup": "c5becfb80ca09a8fad06d8173e556bb038625cc850793bdb55cadb835deb7878",
"T3W1_es_test_pin.py::test_pin_setup_mismatch": "bc86fb1f935d04f5e0d93b162eff69d59e7467566a3f4f454f8364c518d694b1",
"T3W1_es_test_pin.py::test_pin_short": "15da11e0ea75fc3e67545f1136f5c0daf2eec7a05c40b59c0058d10615b800ee",
@@ -29037,7 +29033,6 @@
"T3W1_fr_test_pin.py::test_pin_long": "e9234e5fa274c37c62892b447609d4aab62b18d7711f473ec173cbc9bf9a990c",
"T3W1_fr_test_pin.py::test_pin_long_delete": "5c59f74a3bc130a71ce76a36c98fc5bbe844a27d13fee1dddfe969119a6bbb68",
"T3W1_fr_test_pin.py::test_pin_longer_than_max": "f8d7c66eb41a7de8324eb6fb60f697990c7aceef883bbd028916e5df69f467f0",
-"T3W1_fr_test_pin.py::test_pin_same_as_wipe_code": "58d594c1fa745348be68cbfa1a66f21c2ecffbc2acbf6f606cdb9719d7e97fd2",
"T3W1_fr_test_pin.py::test_pin_setup": "ef49d8319587a0aa5895a7f62fbbdb09495a30fc1d31f896449c2f4c5b6cb7d8",
"T3W1_fr_test_pin.py::test_pin_setup_mismatch": "fbe4362508e1c51ec1dde78c8bf3acafcb14a27c8fb988ec24aa57a9941f6799",
"T3W1_fr_test_pin.py::test_pin_short": "49b72fe1a1d4025034abde2092a0cbf5e9b994f084ab84d2ad8986aa67524233",
@@ -29096,7 +29091,6 @@
"T3W1_pt_test_pin.py::test_pin_long": "c0be7029c90e902f7d99ac571a8fc453d8764815839801b60392a9b38360df91",
"T3W1_pt_test_pin.py::test_pin_long_delete": "cba592d38d12d8cbf74e7613401165832dcd0778caf504fb5cf3b91e139f290d",
"T3W1_pt_test_pin.py::test_pin_longer_than_max": "7fb4cc7266c88c8b121d88c546064ea91c5b0432e01b70821cf4a6fcbaaa5551",
-"T3W1_pt_test_pin.py::test_pin_same_as_wipe_code": "f993288cc9ef3d205fb80e368918fbb701b304a06a49b619674bbb700d007dfa",
"T3W1_pt_test_pin.py::test_pin_setup": "630fc1a3ac2fe6ef8a2b1523142effe6ce1257c9896a88e46625def7d3c32cbb",
"T3W1_pt_test_pin.py::test_pin_setup_mismatch": "b2c873793c6cd831494e628263a6c916ed9d1872b5751c1644758cfe54d649f6",
"T3W1_pt_test_pin.py::test_pin_short": "524f619d7a70b40741eb2ccd2a54b0451bc8dfa1625e7289531a04d4d9c97f80",
@@ -30507,10 +30501,11 @@
"T3W1_cs_test_msg_backup_device.py::test_backup_slip39_single": "34641895a3eee64e5630df76156e7177a2e75b2ca7d46b5527f714b0a125547f",
"T3W1_cs_test_msg_backup_device.py::test_interrupt_backup_fails": "9b32ec62de19f57992387129821fe1ceec74b1c7a1fbc136429888ccbd7a9385",
"T3W1_cs_test_msg_backup_device.py::test_no_backup_fails": "d19e7595c0cf0e67ba02f980571b6a2ac492b16326eac379415774139a24d30b",
-"T3W1_cs_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "10005b4ea913d864c79be1687a9bd05cf5b44e3262282914ba9d1cda0d4c95a1",
+"T3W1_cs_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "9eaca654de493944af60b087646dda6463da5ee501acfc9997ee6b30f196151a",
"T3W1_cs_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "4514a9525483c6f7e56f3725c98087f82946ddbfe6ea5a8f17c2ce3a29dce915",
-"T3W1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "37963d61af1dc2b43f5ed88f99d4add23725a50f9faaafba5325e511381d5f71",
+"T3W1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "3a1ec888b04fac999d5b5864bfda479f09ed3a2a2f64d96ce704ffe3b73eb1e2",
"T3W1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "e3f467c4ae41076cfe2b74f2140ff7137dfc2ce0b6d7705517b698fe478f8741",
+"T3W1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "47f4ec6c5f0559bb0b97abb860a5625fc695dc136556ecc62c51013d6dc015c1",
"T3W1_cs_test_msg_changepin_t2.py::test_change_failed": "35d509eed0998582ac25beaa935520691a2a6ec2e7022bfd7d6ec8f18f71d8cb",
"T3W1_cs_test_msg_changepin_t2.py::test_change_invalid_current": "d63a3fb24074ca2da198ac4894490659b4250b9954a7d1c42d0eb7cb301fb728",
"T3W1_cs_test_msg_changepin_t2.py::test_change_pin": "093bc619600f5ea25bfc7d495d782627e6e5749f1dc10e559556a42b082cadd1",
@@ -31990,10 +31985,11 @@
"T3W1_de_test_msg_backup_device.py::test_backup_slip39_single": "bdc1af9618b74939a58da52092c89940c668756cc76dbe268f8c7664ebcd03fa",
"T3W1_de_test_msg_backup_device.py::test_interrupt_backup_fails": "5d799df4752442b8ae1f5bdb9b1831c97869c8079e6cbb2384193447aed3d04f",
"T3W1_de_test_msg_backup_device.py::test_no_backup_fails": "32f7ece1a421303cf214be5af0d36255a4ae85750129df37a4862c1e540b00e5",
-"T3W1_de_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "421b1ee6c290aa5f35b6b628e93d324cf0759cc0c7dfcaca99a1b144be2375cb",
+"T3W1_de_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "a6af9ec2b200e43dc81e3ca78c3ff6b21c8db5ee29e20dcdd58be4a07060f7f3",
"T3W1_de_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "79211ead42f5c021a839f6c50908058807d11d941d736186339e843c3f54e5cb",
-"T3W1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "e1d1280d04c4fc978551f6a6d0797cecad57d8f428d413ab36a0190d8b9a997d",
+"T3W1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "6695641302098f58e605435c7688557abb16e081099ef64977866b4848f592dd",
"T3W1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "0c2f03388fc9c14a6762c361a5ada7e96b9a6f92813f58b6f258f26c34378655",
+"T3W1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "36552d7155a0fc25571154aa10ed6a0223edbcbd72c4a337526d91ae75c157cf",
"T3W1_de_test_msg_changepin_t2.py::test_change_failed": "ab7e2135e4f68b2195c8ad2eef20a574ef0666bdae34e79bfea889790831c662",
"T3W1_de_test_msg_changepin_t2.py::test_change_invalid_current": "7439612c264a8de714741aca19cdd29c39e73978487431506b243858b7723635",
"T3W1_de_test_msg_changepin_t2.py::test_change_pin": "9684c4ac38c90cf905377d4f9bcd668bacb310d2fc90940ca1489c2da15b3f17",
@@ -33473,10 +33469,11 @@
"T3W1_en_test_msg_backup_device.py::test_backup_slip39_single": "b428e927bd7fd2c8a4b414937d1449b57220d2db3476a68d72420ce96d8e5ef4",
"T3W1_en_test_msg_backup_device.py::test_interrupt_backup_fails": "b0ab82389b49cf3839f4b99872fe0a8ee8a45501eab3db5b7566f8cae670993b",
"T3W1_en_test_msg_backup_device.py::test_no_backup_fails": "395556180048c5471d78770521fc625d75062b1774b3a64f0e0bb758faae556a",
-"T3W1_en_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "cecba0545904de0cf9f0f897ce308393546a7421c9683a25d467bd4592cd99a9",
+"T3W1_en_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "ca104ae190870e72a4e296d0a9a7313cf4d180b2eac6e894fa1c26c82379e2ed",
"T3W1_en_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "69238638db0ebdd48e7b486d3a656994877a4164322f802c0e55b5fc4148fc68",
-"T3W1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "add66f7142afba77fde211a3b9ee0e024776a3f3d2e5dde2d78f1583dd2a639f",
+"T3W1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "5608d503a9a9e6d46b1356971496d080ea79d39c1c8eaf82242e00740a63c896",
"T3W1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "840ea5a87e02b1ce92975da3796420d5e9c26b6907712d8a73a7dbf7a0666564",
+"T3W1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "96c23e1bd737b9324d7ac005841c94e0f250a6dcd3b2be4cef2ef6d3e722ef91",
"T3W1_en_test_msg_changepin_t2.py::test_change_failed": "183e619f58d8418390edec09137c145d30574c5e17f6a6c51e8f604f02cc6d5e",
"T3W1_en_test_msg_changepin_t2.py::test_change_invalid_current": "51471042f678d82a7193f6235941f17f466ff2fdeaa9e16bebdf7e109841a414",
"T3W1_en_test_msg_changepin_t2.py::test_change_pin": "2f1fa797c38fd5a320ec96e9339395433fc359feec39ca5b4d01b6593825472a",
@@ -34956,10 +34953,11 @@
"T3W1_es_test_msg_backup_device.py::test_backup_slip39_single": "15a2a80ea73ee1072a09209a3692828e25bff53367f96dff6e8567d9caa79800",
"T3W1_es_test_msg_backup_device.py::test_interrupt_backup_fails": "30e0aa0d1c7836a22f490f6cde99e7899438c75e4c726c4ef72ddc9d6e93c410",
"T3W1_es_test_msg_backup_device.py::test_no_backup_fails": "b793498c5928d31ce35348ef10b92121136c03de9ad435c906ee8091b79aa553",
-"T3W1_es_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "15cd0ac1478892ee32130a9244337bf88790f7932906342799756d3389bd08c7",
+"T3W1_es_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "05d11c6784fb282f2fdd4292d23b018aa37e30e095f7acbc2bf90bbd2bd42cc7",
"T3W1_es_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "686e3468b8798aa8cc5912feb096e2ed9be03ee95dc9e1d281db47d73e1ed879",
-"T3W1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "1c17e6ad77db5aefd9aa0e0c3c83d5133da95ad95fd8101b4f12581a23ab1cb7",
+"T3W1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "a03ab3b488a4208dc093b6fadff67dfe465886476c09b4df243dcfc0c99f68ff",
"T3W1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "98d9e4eddb47923f710129004e66278b04fa91a6d2f8dc3e27f98e845cdf755d",
+"T3W1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "b6b23d95b6b159b2981e30f81ff40a2d42f1ee91f342613779aff1bccaafa947",
"T3W1_es_test_msg_changepin_t2.py::test_change_failed": "bf2a6dab65ca8ff0fe2a65aefdaad681303650621d1a9517c911f26d3eb9d136",
"T3W1_es_test_msg_changepin_t2.py::test_change_invalid_current": "3d2c74b451d2711020bf2c20d6f838376e6a483d6d464f1a04f71b4e71eb16f5",
"T3W1_es_test_msg_changepin_t2.py::test_change_pin": "e89b4e3ea184d9f43143c8a72c53785789d8b7261197a1316a6400db0fba72ab",
@@ -36439,10 +36437,11 @@
"T3W1_fr_test_msg_backup_device.py::test_backup_slip39_single": "c2fb0052124bb7ac8e41afd1423c48abf23400991716455518892737165be453",
"T3W1_fr_test_msg_backup_device.py::test_interrupt_backup_fails": "6e5f44d5d0cfcb425661210c082c7304d58978d113b5742525c8d5625f8971cd",
"T3W1_fr_test_msg_backup_device.py::test_no_backup_fails": "3ca3d8dcf5e57671e92ae1dca97e7766dfbd9e3ffaf9343731d4f06580235fc9",
-"T3W1_fr_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "43de1478bad823079cb27c68a327e9de8d1f22525788f5daa37c85ad258278dc",
+"T3W1_fr_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "0bd9365d25c62ba2fac0d8674e71ea9a3206e40a2a2bad5f2b7980ea3b1e74d0",
"T3W1_fr_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "f08d933c2670d8e0ee987088fd10b3f243f7e9db56114163047d3ddca48b148e",
-"T3W1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "fd4ec57c510c61e87cac925df684377a6907a8709904a21d30d2b0d5c7b946da",
+"T3W1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "266e06c79069599983ddeb0d4ac5d11cca7c22bc4d38a2aa56a7457645e583fc",
"T3W1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "25dcc654556f008f637be753cf480eb43755cf1a5e6bb339add284cd42ee2018",
+"T3W1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "dacbe9e56e5669df9d637ceec52b504eedcb154f8b0a47ae2988536caa2b8600",
"T3W1_fr_test_msg_changepin_t2.py::test_change_failed": "ba6d60625a040852d4eed06018f5284eb6718adcfa19ce2d4cb95532bde732bf",
"T3W1_fr_test_msg_changepin_t2.py::test_change_invalid_current": "5cadc3a48fe3c9bcf2f935381458c37e25b4d9b01b08f9b075002447b6c4e5e2",
"T3W1_fr_test_msg_changepin_t2.py::test_change_pin": "4ae8d6a4a5d5c5feff69df7c78b052d195c1d9ad3c1ec3156a472124393024cf",
@@ -37922,10 +37921,11 @@
"T3W1_pt_test_msg_backup_device.py::test_backup_slip39_single": "03d59f422474c6f9f062617d4c688cdbaa2b3096e3da1d79793477a9ae5bde33",
"T3W1_pt_test_msg_backup_device.py::test_interrupt_backup_fails": "e1c378b58b827d44e32939660e6510a9eb3c16472f459f927a4e51be6da80850",
"T3W1_pt_test_msg_backup_device.py::test_no_backup_fails": "3ed92e9990189e2e2ca4614e55e9abee6f5373778f3501a53cd4074f3d07d02b",
-"T3W1_pt_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "365d30d6ecbab4abe08b9bf831248a4460fc8a52b304e5d027a9635b52b1ec01",
+"T3W1_pt_test_msg_change_wipe_code_t2.py::test_set_remove_pin_without_removing_wipe_code": "1fcea1bf99159b198d2e9094f37830aad9ec4ecf4a8822137608c19a0cb89227",
"T3W1_pt_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "452fec6b2cad3d6e3495e38ae1e7ee2721f311f2b6bad5c4a94ca5c70f60c79c",
-"T3W1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "dea55171aadfbe7e41ec8872f176b86064400c02fe58593916575e67a0d76afe",
+"T3W1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "bd58a12ba933d2614feb70792e66bb15922248646df23b6cb17554b6b2a270c3",
"T3W1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "b3859a42d670262d89738ee9e8e1e5e6f42bc509945c4c0bd7abf9be76754ef9",
+"T3W1_pt_test_msg_change_wipe_code_t2.py::test_set_wipe_code_without_pin": "503e44ee38460c1d947b763e514e835639740267dbeea2ca802e1ecb71d1de1f",
"T3W1_pt_test_msg_changepin_t2.py::test_change_failed": "d45d894b7b3c6f62128a8adb4ff8320cee2b7a2f06b2f789550405c888910a81",
"T3W1_pt_test_msg_changepin_t2.py::test_change_invalid_current": "ff82d6441fa290e3e94717071d7d8a8a8776ded9180bde8bdc63a4d1c8a89e10",
"T3W1_pt_test_msg_changepin_t2.py::test_change_pin": "27d1ad6a6b66d52d7c6a5ee77791ef891f5be287cf369aee855499923398cc6d",
Why this scored 47/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.