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

feat: Remove display_random feature.

This commit is contained in:
Andrew Kozlik 2024-08-22 18:49:48 +02:00 committed by Andrew Kozlik
parent 0a0c1004c8
commit 2a567f3a0c
38 changed files with 117 additions and 390 deletions

View File

@ -404,7 +404,7 @@ message LoadDevice {
* @next Failure
*/
message ResetDevice {
optional bool display_random = 1; // display entropy generated by the device before asking for additional entropy
reserved 1; // unused display_random
optional uint32 strength = 2 [default=256]; // strength of seed in bits
optional bool passphrase_protection = 3; // enable master node encryption using passphrase
optional bool pin_protection = 4; // enable PIN protection

View File

@ -0,0 +1 @@
Removed display_random feature.

View File

@ -361,7 +361,7 @@ pub enum TranslatedString {
device_name__change_template = 226, // "Change device name to {0}?"
device_name__title = 227, // "Device name"
entropy__send = 228, // "Do you really want to send entropy?"
entropy__title = 229, // "Internal entropy"
entropy__title = 229, // "\"\""
entropy__title_confirm = 230, // "Confirm entropy"
#[cfg(feature = "universal_fw")]
eos__about_to_sign_template = 231, // "You are about to sign {0}."
@ -1713,7 +1713,7 @@ impl TranslatedString {
Self::device_name__change_template => "Change device name to {0}?",
Self::device_name__title => "Device name",
Self::entropy__send => "Do you really want to send entropy?",
Self::entropy__title => "Internal entropy",
Self::entropy__title => "\"\"",
Self::entropy__title_confirm => "Confirm entropy",
#[cfg(feature = "universal_fw")]
Self::eos__about_to_sign_template => "You are about to sign {0}.",

View File

@ -253,7 +253,6 @@ class TR:
device_name__change_template: str = "Change device name to {0}?"
device_name__title: str = "Device name"
entropy__send: str = "Do you really want to send entropy?"
entropy__title: str = "Internal entropy"
entropy__title_confirm: str = "Confirm entropy"
eos__about_to_sign_template: str = "You are about to sign {0}."
eos__action_name: str = "Action Name:"

View File

@ -73,8 +73,6 @@ async def reset_device(msg: ResetDevice) -> Success:
int_entropy = random.bytes(32, True)
if __debug__:
storage.debug.reset_internal_entropy = int_entropy
if msg.display_random:
await layout.show_internal_entropy(int_entropy)
# request external entropy and compute the master secret
entropy_ack = await call(EntropyRequest(), EntropyAck)
@ -269,8 +267,6 @@ def _validate_reset_device(msg: ResetDevice) -> None:
else:
raise ProcessError("Backup type not implemented")
if msg.display_random and (msg.skip_backup or msg.no_backup):
raise ProcessError("Can't show internal entropy when backup is skipped")
if storage_device.is_initialized():
raise UnexpectedMessage("Already initialized")

View File

@ -1,8 +1,6 @@
from micropython import const
from typing import Sequence
from trezor import TR
from trezor.enums import ButtonRequestType
from trezor.ui.layouts.reset import ( # noqa: F401
show_share_words,
slip39_advanced_prompt_group_threshold,
@ -15,17 +13,6 @@ from trezor.ui.layouts.reset import ( # noqa: F401
_NUM_OF_CHOICES = const(3)
async def show_internal_entropy(entropy: bytes) -> None:
from trezor.ui.layouts import confirm_blob
await confirm_blob(
"entropy",
TR.entropy__title,
entropy,
br_code=ButtonRequestType.ResetDevice,
)
async def _confirm_word(
share_index: int | None,
share_words: Sequence[str],

View File

@ -2472,7 +2472,6 @@ if TYPE_CHECKING:
return isinstance(msg, cls)
class ResetDevice(protobuf.MessageType):
display_random: "bool | None"
strength: "int"
passphrase_protection: "bool | None"
pin_protection: "bool | None"
@ -2485,7 +2484,6 @@ if TYPE_CHECKING:
def __init__(
self,
*,
display_random: "bool | None" = None,
strength: "int | None" = None,
passphrase_protection: "bool | None" = None,
pin_protection: "bool | None" = None,

View File

@ -228,7 +228,6 @@
"device_name__change_template": "text,3",
"device_name__title": "title,1",
"entropy__send": "text,2",
"entropy__title": "title,1",
"entropy__title_confirm": "title,1",
"eos__about_to_sign_template": "text,2",
"eos__action_name": "text,1",

View File

@ -285,7 +285,6 @@
"device_name__change_template": "Změnit název zařízení na {0}?",
"device_name__title": "Název zařízení",
"entropy__send": "Opravdu chcete odeslat entropii?",
"entropy__title": "Interní entropie",
"entropy__title_confirm": "Potvrdit entropii",
"eos__about_to_sign_template": "Chystáte se podepsat {0}.",
"eos__action_name": "Název akce:",

View File

@ -285,7 +285,6 @@
"device_name__change_template": "Gerätename in {0} ändern?",
"device_name__title": "Gerätename",
"entropy__send": "Entropie wirklich senden?",
"entropy__title": "Interne entropie",
"entropy__title_confirm": "Entropie bestätigen",
"eos__about_to_sign_template": "Du bist dabei, {0} zu signieren.",
"eos__action_name": "Aktionsname:",

View File

@ -255,7 +255,6 @@
"device_name__change_template": "Change device name to {0}?",
"device_name__title": "Device name",
"entropy__send": "Do you really want to send entropy?",
"entropy__title": "Internal entropy",
"entropy__title_confirm": "Confirm entropy",
"eos__about_to_sign_template": "You are about to sign {0}.",
"eos__action_name": "Action Name:",

View File

@ -285,7 +285,6 @@
"device_name__change_template": "¿Cambiar el nombre del dispositivo a {0}?",
"device_name__title": "Nombre dispositivo",
"entropy__send": "¿Quieres enviar la entropía?",
"entropy__title": "Entropía interna",
"entropy__title_confirm": "Validar entropía",
"eos__about_to_sign_template": "Estás a punto de firmar {0}.",
"eos__action_name": "Nombre de acción:",

View File

@ -285,7 +285,6 @@
"device_name__change_template": "Modifier le nom du disp. pour {0} ?",
"device_name__title": "Nom du disp.",
"entropy__send": "Voulez-vous vraiment envoyer l'entropie ?",
"entropy__title": "Entropie interne",
"entropy__title_confirm": "Conf. entropie",
"eos__about_to_sign_template": "Vous êtes sur le point de signer {0}.",
"eos__action_name": "Nom de l'action :",

View File

@ -1,8 +1,8 @@
{
"current": {
"merkle_root": "96fd6399d7631ec16b02f8794aa75ddc5e42152ffcf5acf528206298e9998bb3",
"datetime": "2024-08-26T11:18:49.662110",
"commit": "26436ef6aa930f019e85acf0d0b48e22838b91b3"
"merkle_root": "6803ea2d1eb1555ae32a5b32689cdf40d7626a8b3717f6ae9418e0948f9da746",
"datetime": "2024-08-27T15:18:26.530958",
"commit": "6ebe850fe24f5ec894328d82eec97aacccb3d3f5"
},
"history": [
{

View File

@ -0,0 +1 @@
Removed display_random feature.

View File

@ -321,8 +321,7 @@ void fsm_msgResetDevice(const ResetDevice *msg) {
msg->strength == 192 || msg->strength == 256,
_("Invalid seed strength"));
reset_init(msg->has_display_random && msg->display_random,
msg->has_strength ? msg->strength : 128,
reset_init(msg->has_strength ? msg->strength : 128,
msg->has_passphrase_protection && msg->passphrase_protection,
msg->has_pin_protection && msg->pin_protection,
msg->has_language ? msg->language : 0,

View File

@ -38,23 +38,15 @@ static bool awaiting_entropy = false;
static bool skip_backup = false;
static bool no_backup = false;
void reset_init(bool display_random, uint32_t _strength,
bool passphrase_protection, bool pin_protection,
const char *language, const char *label, uint32_t u2f_counter,
bool _skip_backup, bool _no_backup) {
void reset_init(uint32_t _strength, bool passphrase_protection,
bool pin_protection, const char *language, const char *label,
uint32_t u2f_counter, bool _skip_backup, bool _no_backup) {
if (_strength != 128 && _strength != 192 && _strength != 256) return;
strength = _strength;
skip_backup = _skip_backup;
no_backup = _no_backup;
if (display_random && (skip_backup || no_backup)) {
fsm_sendFailure(FailureType_Failure_ProcessError,
"Can't show internal entropy when backup is skipped");
layoutHome();
return;
}
layoutDialogSwipe(&bmp_icon_question, _("Cancel"), _("Confirm"), NULL,
_("Do you really want to"), _("create a new wallet?"), NULL,
_("By continuing you"), _("agree to trezor.io/tos"), NULL);
@ -66,39 +58,6 @@ void reset_init(bool display_random, uint32_t _strength,
random_buffer(int_entropy, 32);
if (display_random) {
for (int start = 0; start < 2; start++) {
char ent_str[4][17] = {0};
char desc[] = "Internal entropy _/2:";
data2hex(int_entropy + start * 16, 4, ent_str[0]);
data2hex(int_entropy + start * 16 + 4, 4, ent_str[1]);
data2hex(int_entropy + start * 16 + 8, 4, ent_str[2]);
data2hex(int_entropy + start * 16 + 12, 4, ent_str[3]);
layoutLast = layoutDialogSwipe;
layoutSwipe();
desc[17] = '1' + start;
oledDrawStringCenter(OLED_WIDTH / 2, 0, desc, FONT_STANDARD);
oledDrawStringCenter(OLED_WIDTH / 2, 2 + 1 * 9, ent_str[0], FONT_FIXED);
oledDrawStringCenter(OLED_WIDTH / 2, 2 + 2 * 9, ent_str[1], FONT_FIXED);
oledDrawStringCenter(OLED_WIDTH / 2, 2 + 3 * 9, ent_str[2], FONT_FIXED);
oledDrawStringCenter(OLED_WIDTH / 2, 2 + 4 * 9, ent_str[3], FONT_FIXED);
oledHLine(OLED_HEIGHT - 13);
layoutButtonNo(_("Cancel"), &bmp_btn_cancel);
layoutButtonYes(_("Continue"), &bmp_btn_confirm);
// 40 is the maximum pixels used for a row
oledSCA(2 + 1 * 9, 2 + 1 * 9 + 6, 40);
oledSCA(2 + 2 * 9, 2 + 2 * 9 + 6, 40);
oledSCA(2 + 3 * 9, 2 + 3 * 9 + 6, 40);
oledSCA(2 + 4 * 9, 2 + 4 * 9 + 6, 40);
oledRefresh();
if (!protectButton(ButtonRequestType_ButtonRequest_ResetDevice, false)) {
fsm_sendFailure(FailureType_Failure_ActionCancelled, NULL);
layoutHome();
return;
}
}
}
if (pin_protection && !protectChangePin(false)) {
layoutHome();
return;

View File

@ -23,10 +23,9 @@
#include <stdbool.h>
#include <stdint.h>
void reset_init(bool display_random, uint32_t _strength,
bool passphrase_protection, bool pin_protection,
const char *language, const char *label, uint32_t u2f_counter,
bool _skip_backup, bool _no_backup);
void reset_init(uint32_t _strength, bool passphrase_protection,
bool pin_protection, const char *language, const char *label,
uint32_t u2f_counter, bool _skip_backup, bool _no_backup);
void reset_entropy(const uint8_t *ext_entropy, uint32_t len);
void reset_backup(bool separated, const char *mnemonic);
uint32_t reset_get_int_entropy(uint8_t *entropy);

View File

@ -0,0 +1 @@
Removed display_random feature.

View File

@ -206,7 +206,6 @@ def recover(
@cli.command()
@click.option("-e", "--show-entropy", is_flag=True)
@click.option("-t", "--strength", type=click.Choice(["128", "192", "256"]))
@click.option("-r", "--passphrase-protection", is_flag=True)
@click.option("-p", "--pin-protection", is_flag=True)
@ -218,7 +217,6 @@ def recover(
@with_client
def setup(
client: "TrezorClient",
show_entropy: bool,
strength: int | None,
passphrase_protection: bool,
pin_protection: bool,
@ -257,7 +255,6 @@ def setup(
return device.reset(
client,
display_random=show_entropy,
strength=strength,
passphrase_protection=passphrase_protection,
pin_protection=pin_protection,

View File

@ -244,6 +244,12 @@ def reset(
no_backup: bool = False,
backup_type: messages.BackupType = messages.BackupType.Bip39,
) -> "MessageType":
if display_random:
warnings.warn(
"display_random ignored. The feature is deprecated.",
DeprecationWarning,
)
if language is not None:
warnings.warn(
"language ignored. Use change_language() to set device language.",
@ -263,7 +269,6 @@ def reset(
# Begin with device reset workflow
msg = messages.ResetDevice(
display_random=bool(display_random),
strength=strength,
passphrase_protection=bool(passphrase_protection),
pin_protection=bool(pin_protection),

View File

@ -3652,7 +3652,6 @@ class LoadDevice(protobuf.MessageType):
class ResetDevice(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 14
FIELDS = {
1: protobuf.Field("display_random", "bool", repeated=False, required=False, default=None),
2: protobuf.Field("strength", "uint32", repeated=False, required=False, default=256),
3: protobuf.Field("passphrase_protection", "bool", repeated=False, required=False, default=None),
4: protobuf.Field("pin_protection", "bool", repeated=False, required=False, default=None),
@ -3667,7 +3666,6 @@ class ResetDevice(protobuf.MessageType):
def __init__(
self,
*,
display_random: Optional["bool"] = None,
strength: Optional["int"] = 256,
passphrase_protection: Optional["bool"] = None,
pin_protection: Optional["bool"] = None,
@ -3678,7 +3676,6 @@ class ResetDevice(protobuf.MessageType):
no_backup: Optional["bool"] = None,
backup_type: Optional["BackupType"] = BackupType.Bip39,
) -> None:
self.display_random = display_random
self.strength = strength
self.passphrase_protection = passphrase_protection
self.pin_protection = pin_protection

View File

@ -1,95 +0,0 @@
#!/usr/bin/env python3
# This file is part of the Trezor project.
#
# Copyright (C) 2012-2022 SatoshiLabs and contributors
#
# This library is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License version 3
# as published by the Free Software Foundation.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the License along with this library.
# If not, see <https://www.gnu.org/licenses/lgpl-3.0.html>.
import hashlib
import mnemonic
__doc__ = """
Use this script to cross-check that Trezor generated valid
mnemonic sentence for given internal (Trezor-generated)
and external (computer-generated) entropy.
Keep in mind that you're entering secret information to this script.
Leaking of these information may lead to stealing your bitcoins
from your wallet! We strongly recommend to run this script only on
highly secured computer (ideally live linux distribution
without an internet connection).
"""
def generate_entropy(
strength: int, internal_entropy: bytes, external_entropy: bytes
) -> bytes:
"""
strength - length of produced seed. One of 128, 192, 256
random - binary stream of random data from external HRNG
"""
if strength not in (128, 192, 256):
raise ValueError("Invalid strength")
if not internal_entropy:
raise ValueError("Internal entropy is not provided")
if len(internal_entropy) < 32:
raise ValueError("Internal entropy too short")
if not external_entropy:
raise ValueError("External entropy is not provided")
if len(external_entropy) < 32:
raise ValueError("External entropy too short")
entropy = hashlib.sha256(internal_entropy + external_entropy).digest()
entropy_stripped = entropy[: strength // 8]
if len(entropy_stripped) * 8 != strength:
raise ValueError("Entropy length mismatch")
return entropy_stripped
def main() -> None:
print(__doc__)
comp = bytes.fromhex(
input("Please enter computer-generated entropy (in hex): ").strip()
)
trzr = bytes.fromhex(
input("Please enter Trezor-generated entropy (in hex): ").strip()
)
word_count = int(input("How many words your mnemonic has? "))
strength = word_count * 32 // 3
entropy = generate_entropy(strength, trzr, comp)
words = mnemonic.Mnemonic("english").to_mnemonic(entropy)
if not mnemonic.Mnemonic("english").check(words):
print("Mnemonic is invalid")
return
if len(words.split(" ")) != word_count:
print("Mnemonic length mismatch!")
return
print("Generated mnemonic is:", words)
if __name__ == "__main__":
main()

View File

@ -183,7 +183,6 @@ impl Trezor {
#[allow(clippy::too_many_arguments)]
pub fn reset_device(
&mut self,
display_random: bool,
strength: usize,
passphrase_protection: bool,
pin_protection: bool,
@ -192,7 +191,6 @@ impl Trezor {
no_backup: bool,
) -> Result<TrezorResponse<'_, EntropyRequest<'_>, protos::EntropyRequest>> {
let mut req = protos::ResetDevice::new();
req.set_display_random(display_random);
req.set_strength(strength as u32);
req.set_passphrase_protection(passphrase_protection);
req.set_pin_protection(pin_protection);

View File

@ -6842,8 +6842,6 @@ impl ::protobuf::reflect::ProtobufValue for LoadDevice {
#[derive(PartialEq,Clone,Default,Debug)]
pub struct ResetDevice {
// message fields
// @@protoc_insertion_point(field:hw.trezor.messages.management.ResetDevice.display_random)
pub display_random: ::std::option::Option<bool>,
// @@protoc_insertion_point(field:hw.trezor.messages.management.ResetDevice.strength)
pub strength: ::std::option::Option<u32>,
// @@protoc_insertion_point(field:hw.trezor.messages.management.ResetDevice.passphrase_protection)
@ -6878,25 +6876,6 @@ impl ResetDevice {
::std::default::Default::default()
}
// optional bool display_random = 1;
pub fn display_random(&self) -> bool {
self.display_random.unwrap_or(false)
}
pub fn clear_display_random(&mut self) {
self.display_random = ::std::option::Option::None;
}
pub fn has_display_random(&self) -> bool {
self.display_random.is_some()
}
// Param is passed by value, moved
pub fn set_display_random(&mut self, v: bool) {
self.display_random = ::std::option::Option::Some(v);
}
// optional uint32 strength = 2;
pub fn strength(&self) -> u32 {
@ -7106,13 +7085,8 @@ impl ResetDevice {
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(10);
let mut fields = ::std::vec::Vec::with_capacity(9);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"display_random",
|m: &ResetDevice| { &m.display_random },
|m: &mut ResetDevice| { &mut m.display_random },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"strength",
|m: &ResetDevice| { &m.strength },
@ -7176,9 +7150,6 @@ impl ::protobuf::Message for ResetDevice {
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
8 => {
self.display_random = ::std::option::Option::Some(is.read_bool()?);
},
16 => {
self.strength = ::std::option::Option::Some(is.read_uint32()?);
},
@ -7218,9 +7189,6 @@ impl ::protobuf::Message for ResetDevice {
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if let Some(v) = self.display_random {
my_size += 1 + 1;
}
if let Some(v) = self.strength {
my_size += ::protobuf::rt::uint32_size(2, v);
}
@ -7254,9 +7222,6 @@ impl ::protobuf::Message for ResetDevice {
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if let Some(v) = self.display_random {
os.write_bool(1, v)?;
}
if let Some(v) = self.strength {
os.write_uint32(2, v)?;
}
@ -7301,7 +7266,6 @@ impl ::protobuf::Message for ResetDevice {
}
fn clear(&mut self) {
self.display_random = ::std::option::Option::None;
self.strength = ::std::option::Option::None;
self.passphrase_protection = ::std::option::Option::None;
self.pin_protection = ::std::option::Option::None;
@ -7316,7 +7280,6 @@ impl ::protobuf::Message for ResetDevice {
fn default_instance() -> &'static ResetDevice {
static instance: ResetDevice = ResetDevice {
display_random: ::std::option::Option::None,
strength: ::std::option::Option::None,
passphrase_protection: ::std::option::Option::None,
pin_protection: ::std::option::Option::None,
@ -11238,64 +11201,64 @@ static file_descriptor_proto_data: &'static [u8] = b"\
ecksum\x18\x07\x20\x01(\x08R\x0cskipChecksum\x12\x1f\n\x0bu2f_counter\
\x18\x08\x20\x01(\rR\nu2fCounter\x12!\n\x0cneeds_backup\x18\t\x20\x01(\
\x08R\x0bneedsBackup\x12\x1b\n\tno_backup\x18\n\x20\x01(\x08R\x08noBacku\
p\"\x99\x03\n\x0bResetDevice\x12%\n\x0edisplay_random\x18\x01\x20\x01(\
\x08R\rdisplayRandom\x12\x1f\n\x08strength\x18\x02\x20\x01(\r:\x03256R\
\x08strength\x123\n\x15passphrase_protection\x18\x03\x20\x01(\x08R\x14pa\
ssphraseProtection\x12%\n\x0epin_protection\x18\x04\x20\x01(\x08R\rpinPr\
otection\x12\x1e\n\x08language\x18\x05\x20\x01(\tR\x08languageB\x02\x18\
\x01\x12\x14\n\x05label\x18\x06\x20\x01(\tR\x05label\x12\x1f\n\x0bu2f_co\
unter\x18\x07\x20\x01(\rR\nu2fCounter\x12\x1f\n\x0bskip_backup\x18\x08\
\x20\x01(\x08R\nskipBackup\x12\x1b\n\tno_backup\x18\t\x20\x01(\x08R\x08n\
oBackup\x12Q\n\x0bbackup_type\x18\n\x20\x01(\x0e2).hw.trezor.messages.ma\
nagement.BackupType:\x05Bip39R\nbackupType\"\xe5\x01\n\x0cBackupDevice\
\x12'\n\x0fgroup_threshold\x18\x01\x20\x01(\rR\x0egroupThreshold\x12O\n\
\x06groups\x18\x02\x20\x03(\x0b27.hw.trezor.messages.management.BackupDe\
vice.Slip39GroupR\x06groups\x1a[\n\x0bSlip39Group\x12)\n\x10member_thres\
hold\x18\x01\x20\x02(\rR\x0fmemberThreshold\x12!\n\x0cmember_count\x18\
\x02\x20\x02(\rR\x0bmemberCount\"\x10\n\x0eEntropyRequest\"&\n\nEntropyA\
ck\x12\x18\n\x07entropy\x18\x01\x20\x02(\x0cR\x07entropy\"\x8d\x04\n\x0e\
RecoveryDevice\x12\x1d\n\nword_count\x18\x01\x20\x01(\rR\twordCount\x123\
\n\x15passphrase_protection\x18\x02\x20\x01(\x08R\x14passphraseProtectio\
n\x12%\n\x0epin_protection\x18\x03\x20\x01(\x08R\rpinProtection\x12\x1e\
\n\x08language\x18\x04\x20\x01(\tR\x08languageB\x02\x18\x01\x12\x14\n\
\x05label\x18\x05\x20\x01(\tR\x05label\x12)\n\x10enforce_wordlist\x18\
\x06\x20\x01(\x08R\x0fenforceWordlist\x12j\n\x0cinput_method\x18\x08\x20\
\x01(\x0e2G.hw.trezor.messages.management.RecoveryDevice.RecoveryDeviceI\
nputMethodR\x0binputMethod\x12\x1f\n\x0bu2f_counter\x18\t\x20\x01(\rR\nu\
2fCounter\x12O\n\x04type\x18\n\x20\x01(\x0e2+.hw.trezor.messages.managem\
ent.RecoveryType:\x0eNormalRecoveryR\x04type\";\n\x19RecoveryDeviceInput\
Method\x12\x12\n\x0eScrambledWords\x10\0\x12\n\n\x06Matrix\x10\x01J\x04\
\x08\x07\x10\x08\"\xc5\x01\n\x0bWordRequest\x12N\n\x04type\x18\x01\x20\
\x02(\x0e2:.hw.trezor.messages.management.WordRequest.WordRequestTypeR\
\x04type\"f\n\x0fWordRequestType\x12\x19\n\x15WordRequestType_Plain\x10\
\0\x12\x1b\n\x17WordRequestType_Matrix9\x10\x01\x12\x1b\n\x17WordRequest\
Type_Matrix6\x10\x02\"\x1d\n\x07WordAck\x12\x12\n\x04word\x18\x01\x20\
\x02(\tR\x04word\"0\n\rSetU2FCounter\x12\x1f\n\x0bu2f_counter\x18\x01\
\x20\x02(\rR\nu2fCounter\"\x13\n\x11GetNextU2FCounter\"1\n\x0eNextU2FCou\
nter\x12\x1f\n\x0bu2f_counter\x18\x01\x20\x02(\rR\nu2fCounter\"\x11\n\
\x0fDoPreauthorized\"\x16\n\x14PreauthorizedRequest\"\x15\n\x13CancelAut\
horization\"\x9a\x02\n\x12RebootToBootloader\x12o\n\x0cboot_command\x18\
\x01\x20\x01(\x0e2=.hw.trezor.messages.management.RebootToBootloader.Boo\
tCommand:\rSTOP_AND_WAITR\x0bbootCommand\x12'\n\x0ffirmware_header\x18\
\x02\x20\x01(\x0cR\x0efirmwareHeader\x123\n\x14language_data_length\x18\
\x03\x20\x01(\r:\x010R\x12languageDataLength\"5\n\x0bBootCommand\x12\x11\
\n\rSTOP_AND_WAIT\x10\0\x12\x13\n\x0fINSTALL_UPGRADE\x10\x01\"\x10\n\x08\
GetNonce:\x04\x88\xb2\x19\x01\"#\n\x05Nonce\x12\x14\n\x05nonce\x18\x01\
\x20\x02(\x0cR\x05nonce:\x04\x88\xb2\x19\x01\";\n\nUnlockPath\x12\x1b\n\
\taddress_n\x18\x01\x20\x03(\rR\x08addressN\x12\x10\n\x03mac\x18\x02\x20\
\x01(\x0cR\x03mac\"'\n\x13UnlockedPathRequest\x12\x10\n\x03mac\x18\x01\
\x20\x01(\x0cR\x03mac\"\x14\n\x12ShowDeviceTutorial\"\x12\n\x10UnlockBoo\
tloader\"%\n\rSetBrightness\x12\x14\n\x05value\x18\x01\x20\x01(\rR\x05va\
lue*\x99\x01\n\nBackupType\x12\t\n\x05Bip39\x10\0\x12\x10\n\x0cSlip39_Ba\
sic\x10\x01\x12\x13\n\x0fSlip39_Advanced\x10\x02\x12\x1c\n\x18Slip39_Sin\
gle_Extendable\x10\x03\x12\x1b\n\x17Slip39_Basic_Extendable\x10\x04\x12\
\x1e\n\x1aSlip39_Advanced_Extendable\x10\x05*G\n\x10SafetyCheckLevel\x12\
\n\n\x06Strict\x10\0\x12\x10\n\x0cPromptAlways\x10\x01\x12\x15\n\x11Prom\
ptTemporarily\x10\x02*0\n\x10HomescreenFormat\x12\x08\n\x04Toif\x10\x01\
\x12\x08\n\x04Jpeg\x10\x02\x12\x08\n\x04ToiG\x10\x03*H\n\x0cRecoveryType\
\x12\x12\n\x0eNormalRecovery\x10\0\x12\n\n\x06DryRun\x10\x01\x12\x18\n\
\x14UnlockRepeatedBackup\x10\x02BB\n#com.satoshilabs.trezor.lib.protobuf\
B\x17TrezorMessageManagement\x80\xa6\x1d\x01\
p\"\xf8\x02\n\x0bResetDevice\x12\x1f\n\x08strength\x18\x02\x20\x01(\r:\
\x03256R\x08strength\x123\n\x15passphrase_protection\x18\x03\x20\x01(\
\x08R\x14passphraseProtection\x12%\n\x0epin_protection\x18\x04\x20\x01(\
\x08R\rpinProtection\x12\x1e\n\x08language\x18\x05\x20\x01(\tR\x08langua\
geB\x02\x18\x01\x12\x14\n\x05label\x18\x06\x20\x01(\tR\x05label\x12\x1f\
\n\x0bu2f_counter\x18\x07\x20\x01(\rR\nu2fCounter\x12\x1f\n\x0bskip_back\
up\x18\x08\x20\x01(\x08R\nskipBackup\x12\x1b\n\tno_backup\x18\t\x20\x01(\
\x08R\x08noBackup\x12Q\n\x0bbackup_type\x18\n\x20\x01(\x0e2).hw.trezor.m\
essages.management.BackupType:\x05Bip39R\nbackupTypeJ\x04\x08\x01\x10\
\x02\"\xe5\x01\n\x0cBackupDevice\x12'\n\x0fgroup_threshold\x18\x01\x20\
\x01(\rR\x0egroupThreshold\x12O\n\x06groups\x18\x02\x20\x03(\x0b27.hw.tr\
ezor.messages.management.BackupDevice.Slip39GroupR\x06groups\x1a[\n\x0bS\
lip39Group\x12)\n\x10member_threshold\x18\x01\x20\x02(\rR\x0fmemberThres\
hold\x12!\n\x0cmember_count\x18\x02\x20\x02(\rR\x0bmemberCount\"\x10\n\
\x0eEntropyRequest\"&\n\nEntropyAck\x12\x18\n\x07entropy\x18\x01\x20\x02\
(\x0cR\x07entropy\"\x8d\x04\n\x0eRecoveryDevice\x12\x1d\n\nword_count\
\x18\x01\x20\x01(\rR\twordCount\x123\n\x15passphrase_protection\x18\x02\
\x20\x01(\x08R\x14passphraseProtection\x12%\n\x0epin_protection\x18\x03\
\x20\x01(\x08R\rpinProtection\x12\x1e\n\x08language\x18\x04\x20\x01(\tR\
\x08languageB\x02\x18\x01\x12\x14\n\x05label\x18\x05\x20\x01(\tR\x05labe\
l\x12)\n\x10enforce_wordlist\x18\x06\x20\x01(\x08R\x0fenforceWordlist\
\x12j\n\x0cinput_method\x18\x08\x20\x01(\x0e2G.hw.trezor.messages.manage\
ment.RecoveryDevice.RecoveryDeviceInputMethodR\x0binputMethod\x12\x1f\n\
\x0bu2f_counter\x18\t\x20\x01(\rR\nu2fCounter\x12O\n\x04type\x18\n\x20\
\x01(\x0e2+.hw.trezor.messages.management.RecoveryType:\x0eNormalRecover\
yR\x04type\";\n\x19RecoveryDeviceInputMethod\x12\x12\n\x0eScrambledWords\
\x10\0\x12\n\n\x06Matrix\x10\x01J\x04\x08\x07\x10\x08\"\xc5\x01\n\x0bWor\
dRequest\x12N\n\x04type\x18\x01\x20\x02(\x0e2:.hw.trezor.messages.manage\
ment.WordRequest.WordRequestTypeR\x04type\"f\n\x0fWordRequestType\x12\
\x19\n\x15WordRequestType_Plain\x10\0\x12\x1b\n\x17WordRequestType_Matri\
x9\x10\x01\x12\x1b\n\x17WordRequestType_Matrix6\x10\x02\"\x1d\n\x07WordA\
ck\x12\x12\n\x04word\x18\x01\x20\x02(\tR\x04word\"0\n\rSetU2FCounter\x12\
\x1f\n\x0bu2f_counter\x18\x01\x20\x02(\rR\nu2fCounter\"\x13\n\x11GetNext\
U2FCounter\"1\n\x0eNextU2FCounter\x12\x1f\n\x0bu2f_counter\x18\x01\x20\
\x02(\rR\nu2fCounter\"\x11\n\x0fDoPreauthorized\"\x16\n\x14Preauthorized\
Request\"\x15\n\x13CancelAuthorization\"\x9a\x02\n\x12RebootToBootloader\
\x12o\n\x0cboot_command\x18\x01\x20\x01(\x0e2=.hw.trezor.messages.manage\
ment.RebootToBootloader.BootCommand:\rSTOP_AND_WAITR\x0bbootCommand\x12'\
\n\x0ffirmware_header\x18\x02\x20\x01(\x0cR\x0efirmwareHeader\x123\n\x14\
language_data_length\x18\x03\x20\x01(\r:\x010R\x12languageDataLength\"5\
\n\x0bBootCommand\x12\x11\n\rSTOP_AND_WAIT\x10\0\x12\x13\n\x0fINSTALL_UP\
GRADE\x10\x01\"\x10\n\x08GetNonce:\x04\x88\xb2\x19\x01\"#\n\x05Nonce\x12\
\x14\n\x05nonce\x18\x01\x20\x02(\x0cR\x05nonce:\x04\x88\xb2\x19\x01\";\n\
\nUnlockPath\x12\x1b\n\taddress_n\x18\x01\x20\x03(\rR\x08addressN\x12\
\x10\n\x03mac\x18\x02\x20\x01(\x0cR\x03mac\"'\n\x13UnlockedPathRequest\
\x12\x10\n\x03mac\x18\x01\x20\x01(\x0cR\x03mac\"\x14\n\x12ShowDeviceTuto\
rial\"\x12\n\x10UnlockBootloader\"%\n\rSetBrightness\x12\x14\n\x05value\
\x18\x01\x20\x01(\rR\x05value*\x99\x01\n\nBackupType\x12\t\n\x05Bip39\
\x10\0\x12\x10\n\x0cSlip39_Basic\x10\x01\x12\x13\n\x0fSlip39_Advanced\
\x10\x02\x12\x1c\n\x18Slip39_Single_Extendable\x10\x03\x12\x1b\n\x17Slip\
39_Basic_Extendable\x10\x04\x12\x1e\n\x1aSlip39_Advanced_Extendable\x10\
\x05*G\n\x10SafetyCheckLevel\x12\n\n\x06Strict\x10\0\x12\x10\n\x0cPrompt\
Always\x10\x01\x12\x15\n\x11PromptTemporarily\x10\x02*0\n\x10HomescreenF\
ormat\x12\x08\n\x04Toif\x10\x01\x12\x08\n\x04Jpeg\x10\x02\x12\x08\n\x04T\
oiG\x10\x03*H\n\x0cRecoveryType\x12\x12\n\x0eNormalRecovery\x10\0\x12\n\
\n\x06DryRun\x10\x01\x12\x18\n\x14UnlockRepeatedBackup\x10\x02BB\n#com.s\
atoshilabs.trezor.lib.protobufB\x17TrezorMessageManagement\x80\xa6\x1d\
\x01\
";
/// `FileDescriptorProto` object which was a source for this generated file

View File

@ -31,7 +31,6 @@ STRENGTH = 128
def test_reset_device_skip_backup(client: Client):
ret = client.call_raw(
messages.ResetDevice(
display_random=False,
strength=STRENGTH,
passphrase_protection=False,
pin_protection=False,
@ -99,7 +98,6 @@ def test_reset_device_skip_backup(client: Client):
def test_reset_device_skip_backup_break(client: Client):
ret = client.call_raw(
messages.ResetDevice(
display_random=False,
strength=STRENGTH,
passphrase_protection=False,
pin_protection=False,
@ -151,18 +149,3 @@ def test_reset_device_skip_backup_break(client: Client):
def test_initialized_device_backup_fail(client: Client):
ret = client.call_raw(messages.BackupDevice())
assert isinstance(ret, messages.Failure)
@pytest.mark.setup_client(uninitialized=True)
def test_reset_device_skip_backup_show_entropy_fail(client: Client):
ret = client.call_raw(
messages.ResetDevice(
display_random=True,
strength=STRENGTH,
passphrase_protection=False,
pin_protection=False,
label="test",
skip_backup=True,
)
)
assert isinstance(ret, messages.Failure)

View File

@ -30,7 +30,6 @@ def reset_device(client: Client, strength: int):
# No PIN, no passphrase
ret = client.call_raw(
messages.ResetDevice(
display_random=False,
strength=strength,
passphrase_protection=False,
pin_protection=False,
@ -105,7 +104,6 @@ def test_reset_device_256_pin(client: Client):
ret = client.call_raw(
messages.ResetDevice(
display_random=True,
strength=strength,
passphrase_protection=True,
pin_protection=True,
@ -118,16 +116,6 @@ def test_reset_device_256_pin(client: Client):
client.debug.press_yes()
ret = client.call_raw(messages.ButtonAck())
# Entropy screen #1
assert isinstance(ret, messages.ButtonRequest)
client.debug.press_yes()
ret = client.call_raw(messages.ButtonAck())
# Entropy screen #2
assert isinstance(ret, messages.ButtonRequest)
client.debug.press_yes()
ret = client.call_raw(messages.ButtonAck())
assert isinstance(ret, messages.PinMatrixRequest)
# Enter PIN for first time
@ -193,7 +181,6 @@ def test_failed_pin(client: Client):
ret = client.call_raw(
messages.ResetDevice(
display_random=True,
strength=strength,
passphrase_protection=True,
pin_protection=True,
@ -206,16 +193,6 @@ def test_failed_pin(client: Client):
client.debug.press_yes()
ret = client.call_raw(messages.ButtonAck())
# Entropy screen #1
assert isinstance(ret, messages.ButtonRequest)
client.debug.press_yes()
ret = client.call_raw(messages.ButtonAck())
# Entropy screen #2
assert isinstance(ret, messages.ButtonRequest)
client.debug.press_yes()
ret = client.call_raw(messages.ButtonAck())
assert isinstance(ret, messages.PinMatrixRequest)
# Enter PIN for first time
@ -232,4 +209,10 @@ def test_failed_pin(client: Client):
def test_already_initialized(client: Client):
with pytest.raises(Exception):
device.reset(client, False, 128, True, True, "label")
device.reset(
client,
strength=128,
passphrase_protection=True,
pin_protection=True,
label="label",
)

View File

@ -39,7 +39,6 @@ def reset_device(client: Client, strength: int):
# No PIN, no passphrase, don't display random
device.reset(
client,
display_random=False,
strength=strength,
passphrase_protection=False,
pin_protection=False,
@ -88,7 +87,6 @@ def test_reset_device_pin(client: Client):
# PIN, passphrase, display random
device.reset(
client,
display_random=True,
strength=strength,
passphrase_protection=True,
pin_protection=True,
@ -122,7 +120,6 @@ def test_reset_failed_check(client: Client):
# PIN, passphrase, display random
device.reset(
client,
display_random=False,
strength=strength,
passphrase_protection=False,
pin_protection=False,
@ -185,4 +182,10 @@ def test_failed_pin(client: Client):
@pytest.mark.setup_client(mnemonic=MNEMONIC12)
def test_already_initialized(client: Client):
with pytest.raises(Exception):
device.reset(client, False, 128, True, True, "label")
device.reset(
client,
strength=128,
passphrase_protection=True,
pin_protection=True,
label="label",
)

View File

@ -45,7 +45,6 @@ def reset(client: Client, strength: int = 128, skip_backup: bool = False) -> str
# No PIN, no passphrase, don't display random
device.reset(
client,
display_random=False,
strength=strength,
passphrase_protection=False,
pin_protection=False,

View File

@ -65,7 +65,6 @@ def reset(client: Client, strength: int = 128) -> list[str]:
# No PIN, no passphrase, don't display random
device.reset(
client,
display_random=False,
strength=strength,
passphrase_protection=False,
pin_protection=False,

View File

@ -55,7 +55,6 @@ def reset(client: Client, strength: int = 128) -> list[str]:
# No PIN, no passphrase, don't display random
device.reset(
client,
display_random=False,
strength=strength,
passphrase_protection=False,
pin_protection=False,

View File

@ -41,7 +41,6 @@ def test_reset_device_slip39_advanced(client: Client):
# No PIN, no passphrase, don't display random
device.reset(
client,
display_random=False,
strength=strength,
passphrase_protection=False,
pin_protection=False,

View File

@ -40,7 +40,6 @@ def reset_device(client: Client, strength: int):
# No PIN, no passphrase, don't display random
device.reset(
client,
display_random=False,
strength=strength,
passphrase_protection=False,
pin_protection=False,

View File

@ -193,20 +193,3 @@ def test_interrupt_backup_fails(client: Client):
# Second attempt at backup should fail
with pytest.raises(TrezorFailure, match=r".*Seed already backed up"):
device.backup(client)
# we only test this with bip39 because the code path is always the same
@pytest.mark.setup_client(uninitialized=True)
def test_no_backup_show_entropy_fails(client: Client):
with pytest.raises(
TrezorFailure, match=r".*Can't show internal entropy when backup is skipped"
):
device.reset(
client,
display_random=True,
strength=128,
passphrase_protection=False,
pin_protection=False,
label="test",
no_backup=True,
)

View File

@ -224,14 +224,19 @@ def test_reset_device(client: Client):
+ [messages.ButtonRequest] * 24
+ [messages.Success, messages.Features]
)
device.reset(client, False, 128, True, False, "label")
device.reset(
client,
strength=128,
passphrase_protection=True,
pin_protection=False,
label="label",
)
with pytest.raises(TrezorFailure):
# This must fail, because device is already initialized
# Using direct call because `device.reset` has its own check
client.call(
messages.ResetDevice(
display_random=False,
strength=128,
passphrase_protection=True,
pin_protection=False,

View File

@ -1333,10 +1333,6 @@ class InputFlowBip39ResetPIN(InputFlowBase):
yield from self.PIN.setup_new_pin("654")
br = yield # Confirm entropy
assert br.code == B.ResetDevice
self.debug.press_yes()
if self.debug.model is models.T3T1:
br = yield # Wallet created
assert br.code == B.ResetDevice

View File

@ -569,7 +569,6 @@
"T1B1_en_reset_recovery-test_reset_bip39_skipbackup.py::test_initialized_device_backup_fail": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"T1B1_en_reset_recovery-test_reset_bip39_skipbackup.py::test_reset_device_skip_backup": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"T1B1_en_reset_recovery-test_reset_bip39_skipbackup.py::test_reset_device_skip_backup_break": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"T1B1_en_reset_recovery-test_reset_bip39_skipbackup.py::test_reset_device_skip_backup_show_entropy_fail": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"T1B1_en_reset_recovery-test_reset_bip39_t1.py::test_already_initialized": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"T1B1_en_reset_recovery-test_reset_bip39_t1.py::test_failed_pin": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"T1B1_en_reset_recovery-test_reset_bip39_t1.py::test_reset_device_128": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
@ -656,7 +655,6 @@
"T1B1_en_test_msg_applysettings.py::test_safety_checks": "f69025c134e99a8d390d01fd29a8373d8cbd8c47819d97ec351bedf55187441d",
"T1B1_en_test_msg_backup_device.py::test_interrupt_backup_fails": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"T1B1_en_test_msg_backup_device.py::test_no_backup_fails": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"T1B1_en_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"T1B1_en_test_msg_change_wipe_code_t1.py::test_set_pin_to_wipe_code": "5e5b3aab138a323a90e75db03e70d2c40e4e56fdc8a1b393b9f38d6501ed8589",
"T1B1_en_test_msg_change_wipe_code_t1.py::test_set_remove_wipe_code": "6a14202a03bd09b55edfe56bca02f6a1ab03fbbcd25983dc4c4a83e34f05c9da",
"T1B1_en_test_msg_change_wipe_code_t1.py::test_set_wipe_code_invalid[1204]": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
@ -2008,7 +2006,7 @@
"T2B1_cs_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "dad50802915de6f0c59b24ec5d9b111c1094674fdb80f26847683d333e13a20f",
"T2B1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "01007597009a130457cdc28bde5af309c0caf57867524cd48f6a41954c292c57",
"T2B1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "c5af512bca98a5b29240db3bed0150fb4335174a0308c64c951c083a76b81897",
"T2B1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "d4be2da08a9efbf3f8860e6381136129b7ba9759670c8177b0904b45115c8141",
"T2B1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "6537e500a30132b156ca44ba634551075801fb7d16ea4c76a861dc979300a0e7",
"T2B1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "e8b1dd1ab01b58f5706f704311f12692b4093961032aa3d1bd4e9ddaa14b406c",
"T2B1_cs_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "25f56d53555c7055b1dbf580ac5ea4179fc40efc08ccda4d773bf99023d3e4bb",
"T2B1_cs_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "fb4150a9ef686dd18767d2a12a4140a7bec10510519789fd010d1b6c5ac8e244",
@ -2233,7 +2231,6 @@
"T2B1_cs_test_msg_backup_device.py::test_backup_slip39_custom[3_of_5]": "9bdf9f49f613a7cc622ff29045f1506622b11bb958bfc7d662e138054b95cd18",
"T2B1_cs_test_msg_backup_device.py::test_interrupt_backup_fails": "c21b710669bc26f0795e7d425c3365b6146e95da720075a32e941a92fc1e2ae5",
"T2B1_cs_test_msg_backup_device.py::test_no_backup_fails": "d35575bf9cb36b3628a5795f1e8c4407e8a5cd15a6a3e832aad6d9612e8a08ce",
"T2B1_cs_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "345ab360936150d9853d9d2d871d3730786f9b78220f9b9a8205f2071c465339",
"T2B1_cs_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "2d1ae52522952895deb80c526f031419d6f7b68b2ddbfe40c892bcb71660677d",
"T2B1_cs_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "904dd45fd64f9ff4d9e67a9669e0922f5a4cb5b60fed32f43ee5db8cfc7bcf0d",
"T2B1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "1d56ba8d29b61fc3d41c197093da2fb465d1f0ff87622df2ceb599420f8cb78f",
@ -3377,7 +3374,7 @@
"T2B1_de_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "9ecd4c00fc84e6fe6617cef2aa0d258ae1c332133b1df33df7a1f6feea30e465",
"T2B1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "06d6a6cace3c49d8a621b949cbb3369911a9b600957f5daab68330f6cce50332",
"T2B1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "b017a195135d9863a2a7eab808bc3101aee726653e936a55ff39d94b583b8fe3",
"T2B1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "84933db744530b8a169b246d4460538047cb191a12f8b0a4f3a12b265895c478",
"T2B1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "75e232300b41d02788bfe7942637a66519b7e67f00129eaa35af5585d4021247",
"T2B1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "3e2513cd2012fab7ae8e420f128d761f0db892126a5868f83ebf2fbe0c968710",
"T2B1_de_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "37cbee54132b02bb1db42c5606b6df9c7f76983abcc4ac19ca00d3ebc9ffa958",
"T2B1_de_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "9342e12335ace2245c604b120efa7c877266fc772321396f4c8323ce3a630464",
@ -3602,7 +3599,6 @@
"T2B1_de_test_msg_backup_device.py::test_backup_slip39_custom[3_of_5]": "331e67d7e99409f48516a400926c853cc47369951d0f489af36a4566d1651e45",
"T2B1_de_test_msg_backup_device.py::test_interrupt_backup_fails": "c925fcea96ab652c5cba68ecf4c6cfeb069da7eed29037211d72301b0e34fbb0",
"T2B1_de_test_msg_backup_device.py::test_no_backup_fails": "710285b402ecd439aa2dd8838a707f3df9e0353bdd78ccdceffa7edd808930fb",
"T2B1_de_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "345ab360936150d9853d9d2d871d3730786f9b78220f9b9a8205f2071c465339",
"T2B1_de_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "29c78026d1760c76b4015d8b125780f78818756b70acb7ef43419908dd188570",
"T2B1_de_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "10d97ce1dd72142822b63218a3aa4eacd3b16bba3809f0eda4234fb95bcbcc2b",
"T2B1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "5ed7a9edbef7af20347d0d89bfd78e877c19e28c59a0460d61c9a30b4efe2eca",
@ -4746,7 +4742,7 @@
"T2B1_en_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "061927456f5d16fcaa71d68793f7440d16f9f208d430a62f83e8388b69ab7dd7",
"T2B1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "8efd6bdb4186a209c8ee6b3989d19b8cbab00de69faabd82785fafdb519cb178",
"T2B1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "1b882977322631d60dda1d7500a3cc070d0e0b1c407db1533d676a93dc20d9cc",
"T2B1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "09272fa08921ca6761ab8adb78558f643a0d447130af93cf163e63c1cb9c1c8c",
"T2B1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "89d8d57c57933248ba2a8d4ce0c83fb80043d05d83cf5ad58ba4adafe536ca15",
"T2B1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "10c8a8c9e19f6171ec14cddd9f93731a79a75cd8649a87fdb700cf7e57f7a285",
"T2B1_en_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "787c9dd005bc2a80e79f777e5c0397d57f0eca685c1cf5bed44d4800c82a7fe7",
"T2B1_en_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "7307234c817ddc4815b705f3128a9c7d5793b437546a2718af8b6ff30bb5a33a",
@ -4971,7 +4967,6 @@
"T2B1_en_test_msg_backup_device.py::test_backup_slip39_custom[3_of_5]": "81d5804eb846dd513b42b684ca6477841a673e81dd8a30dabf8c55affea216ca",
"T2B1_en_test_msg_backup_device.py::test_interrupt_backup_fails": "1139f673473fbf725b2ee52d4965917c6a72676e69b073707f40b556a48f4b79",
"T2B1_en_test_msg_backup_device.py::test_no_backup_fails": "60c13acb4f8e40ee32f9d01415cbcbd75ffcd6a4015003d93562e84c3901a62f",
"T2B1_en_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "345ab360936150d9853d9d2d871d3730786f9b78220f9b9a8205f2071c465339",
"T2B1_en_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "ad9871bad4a93df7cbf27bffd1709e539a3408c1b5e3c5bf458e9946a6b43ad0",
"T2B1_en_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "e7dbd89723a50e0b5ac4810ab681044f6ae3cf6c203beb346281bd5d8677dff7",
"T2B1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "d9304c9e8f08c28b5d34e4e3575850febe0b6540e526a4a6056a6af16f5c9ec8",
@ -6115,7 +6110,7 @@
"T2B1_es_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "766d59d9a5f4a38a71dc0306c423b71d53d33379f35cc5480ccfd7ccf0a7f8bd",
"T2B1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "3e0a31545ebe0804d48d8a86b15666c427e467ed1083dd22a775f93f13d8556d",
"T2B1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "eb3d1c0d8ba5376e897389a03029338594d5b338576550ae2e9b61121ff4fdea",
"T2B1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "5c7637d69a9a5d0e52cc6404eb5c200612e2ec1f0647077a2d7c61e3dbd09f7c",
"T2B1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "22e066960263cf8df7c639ced82b53cf24a67c0d78c9f27b299975c8df7ce30f",
"T2B1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "82791fd125ef07d442d303fcb762dd48d9287520574e3f478eba44ae9c55dca5",
"T2B1_es_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "d80529a3e79b0c0e340c84653d34d2f6b403b313be9b6015c0bcd3f2313b73b4",
"T2B1_es_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "2f27db5c24e695bd72e2870cfc9c59906473abd99839233c31e8634487db1b1c",
@ -6340,7 +6335,6 @@
"T2B1_es_test_msg_backup_device.py::test_backup_slip39_custom[3_of_5]": "6c500423247daf99b0be5964a3b9a8508429eadf315a049228ba7822a448a162",
"T2B1_es_test_msg_backup_device.py::test_interrupt_backup_fails": "b1408c4e113ffec85f27ad94b860e73e486f904bc560c25ba50587c87e4a32d7",
"T2B1_es_test_msg_backup_device.py::test_no_backup_fails": "5f447ca95e4075dd0dc442db6e24711f9f625ef87613c82c0ab10a07ac9b7610",
"T2B1_es_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "345ab360936150d9853d9d2d871d3730786f9b78220f9b9a8205f2071c465339",
"T2B1_es_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "685a78596477a49013be94ac8dcd0f8e9b3c500fe201a5eacef08581fc614866",
"T2B1_es_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "237438f415979801f1dcac7ce52a27a52d90cd7355bc1e58447882f8673a873a",
"T2B1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "22ae79c8dc2b0d32a5d9bacddd9be52b6bf8ce8216aa69360270e746e5d7a2a3",
@ -7484,7 +7478,7 @@
"T2B1_fr_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "3a29d01a969e8c7110ebb4ddb147435221d9d2821a1908d4d2a3fc079c90a029",
"T2B1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "6593a8c0283de0d2c9947a35ee356d1770a48e19857cca06b70bf8bf1b0e220f",
"T2B1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "86fe0dfd373e5e7f0f0bdef6ca7a31bc365083847f8c0e0ee43cda55e4239d38",
"T2B1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "c2d4229ea89338cbf74ab0719f28b2914f637f30903183378328b5520137fea6",
"T2B1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "7f8ffc9101bf19997c9fb773ef95ab7ff40e710b0feb1ddda9ce177e5705ae64",
"T2B1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "86f99abd1ed1abf04e04d12683bb143690255e235cb904ad33c5bd4e1b76fe6a",
"T2B1_fr_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "d5ef9c3dc71dd4b2f847c1615c32788fc8d3e948bf53fdbb785facec8b107eb0",
"T2B1_fr_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "ed34bd9e171947035b322b9ead6bc1ca5abb1b2c4b3dd18bc7339c3e17734f10",
@ -7709,7 +7703,6 @@
"T2B1_fr_test_msg_backup_device.py::test_backup_slip39_custom[3_of_5]": "cc19a3138911543f7dbb65762dbd5217f48bc35ab9559505f4991461e8cef1c1",
"T2B1_fr_test_msg_backup_device.py::test_interrupt_backup_fails": "05271bea33cb7e7760fe2ef99cc855a3b24412442e31e43f78f3c365e929dac5",
"T2B1_fr_test_msg_backup_device.py::test_no_backup_fails": "0d04829c9f4cd50c12c590fb59edb2d35e64f332359b5fe127b2fff9bc86b90a",
"T2B1_fr_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "345ab360936150d9853d9d2d871d3730786f9b78220f9b9a8205f2071c465339",
"T2B1_fr_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "a65fedb9eebf9b75fc75df51391b2fcea739a657a7a949aadae3b335600ebf90",
"T2B1_fr_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "6e6361deaa470d441e69a61a294a203e9aea3cf114b8919b5aef9b1ee66fb90a",
"T2B1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "5364e98bc3e6941907557b4d563bd51b1dea6c6c2b789acd75cf81ea3b1f2b44",
@ -9184,7 +9177,7 @@
"T2T1_cs_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "9825a0641aa5ea58ce49ab160abe1933303eb77522475bedc0855e3520ac129a",
"T2T1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "3ad8cc7922034fc1ddf47448daf84fc743d068ad2a95c4bf0d04bb7d77bb79d3",
"T2T1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "460a5a40be89fb31b68193e242e48206740a5c04001f97ee32129877205c50ab",
"T2T1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "14cb6127b54213ad1aae348d49a85bb913033e482357c4d5258e09ed344b949c",
"T2T1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "1d3ae0782fa7d502e73fe505cd258769f6ca238389288e68f11393321792507c",
"T2T1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "1d3766d2412b01485389d90e77505cccb4eba59f6525d243e4293f10bda08a00",
"T2T1_cs_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "1d7db2600a834f7ea4589fd60718246c09fd6f5b60d8a31e11fe2969e028ff70",
"T2T1_cs_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "8a16b2eb55eb3c494e4d055ad005e1ce01cfb77f7367ce5acb2bdb3613362a2f",
@ -9403,7 +9396,6 @@
"T2T1_cs_test_msg_backup_device.py::test_backup_slip39_custom[3_of_5]": "d5ff212f9789ab6e5c6b7de5211262b11724ef7761435a095acf8809b8128c42",
"T2T1_cs_test_msg_backup_device.py::test_interrupt_backup_fails": "3e97ecace94b8c8e86675faff159f3b7acce1b88db8c46a6337c721c3af3649d",
"T2T1_cs_test_msg_backup_device.py::test_no_backup_fails": "8bfd76717067ea75a3d818a7804d1c2f95b75fbbc51bbf96eff07c24fae8aece",
"T2T1_cs_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "001377ce61dcd189e6a9d17e20dcd71130e951dc3314b40ff26f816bd9355bdd",
"T2T1_cs_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "599756b95fbc5065407afe20241573e02d5b9206e58f55e3af42b2c5f1e857f2",
"T2T1_cs_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "2a27c997825ba311dbd6f018a711a8d713e05e33d54bda25a0627ffe97aa8469",
"T2T1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "3e893170b1e80dc53617b5707b94f9a486f9fbf6f7d42fe05dd7d6c1d0c3d497",
@ -10633,7 +10625,7 @@
"T2T1_de_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "45ff384626da22d4dfe63cb9ce67e5dc57be7ff904fc4a06fbb7b06a4a76d0fd",
"T2T1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "a5bbc468b3620560e5f8cf29c4b6cca6afc8e9e6cca66063b2d221b7bb34c5b5",
"T2T1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "ae10a81f33d927f3dbe15b2c8413462d169c8cfa73d2616fc7f73b292538d5b9",
"T2T1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "42dfaa2c365df2e9be0bc434afeb224bac64fe1a4454052786d56510f746efa1",
"T2T1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "3e48df32f115c0924a4586c72690299c1f17202f497c6b08c3792b9df8c08a4f",
"T2T1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "b42ff5e1408793e57d4440be2164c8c283a605793b0ce61f303ae1f60fb237a5",
"T2T1_de_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "2981aea95a67badd130d7526f5c4c46a44bc5aa80c0a74b89034a266c21511fe",
"T2T1_de_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "41191a8c1620276c01f6db89c1d011417a797a6a226087ca2ec9cd7bdff969d3",
@ -10852,7 +10844,6 @@
"T2T1_de_test_msg_backup_device.py::test_backup_slip39_custom[3_of_5]": "370ba430452bf181ebfe18376104ba5356fc8686c17ae7a196064c6f92834bf9",
"T2T1_de_test_msg_backup_device.py::test_interrupt_backup_fails": "7ed1f824ee883fc377b218a21141650f4eaa860ab37742e0e38f48a1152cf151",
"T2T1_de_test_msg_backup_device.py::test_no_backup_fails": "6cdb796622c4019fcfa131a746866e7b5d5bd39f02f08352ba42e7ad7389c8c9",
"T2T1_de_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "001377ce61dcd189e6a9d17e20dcd71130e951dc3314b40ff26f816bd9355bdd",
"T2T1_de_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "b1cfdeb0468d312fdd3521cb7641aad1538bda28e073adf8a069d0709c670685",
"T2T1_de_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "5ee8787d1dcce995ae781e4ed9b8d4bde31d483835d58813b37caa8f6a871e7d",
"T2T1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "294aca06fb27eccda67897470412979142bde2e7bf363f19035c20c31277e486",
@ -12082,7 +12073,7 @@
"T2T1_en_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "6a8509d7f082af7f66b79b9924235baba636705b2079e19b8719a8032ae63a8d",
"T2T1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "0a3f82c22b5294aa3b2dfa80038e8c7b6b421c2ba2218feebf624b736b2f4935",
"T2T1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "30c820e4864c26d1c8c49a411caac082c294402681d230ca3005dd9bd5a033bf",
"T2T1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "1667bf812fc1c0298428919d30564d8edb4ee0d2fbc84a5e01e993ac05363e45",
"T2T1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "a8ec11db8ceeba459788492254f765d5b1b90d11b8a06bbf70f6d8c130a5f3a8",
"T2T1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "26aac7d580bc5016915c58fe1683d4277f9f13a9f3262093045657fb0f3dd820",
"T2T1_en_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "987b8e2a6274c23b8365ed3076c016e5560ef190e47fff2e13c2cd498716ddfb",
"T2T1_en_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "d8fa65e5938e8c29f89c96b32e2ee705e820de527bfff87ea9ab5917f29f26ad",
@ -12301,7 +12292,6 @@
"T2T1_en_test_msg_backup_device.py::test_backup_slip39_custom[3_of_5]": "078d24fc71ed83d0d474a8aa9356bc66cba883c709f0e63b6db8405a244214bf",
"T2T1_en_test_msg_backup_device.py::test_interrupt_backup_fails": "ae147498028d68aa71c7337544e4a5049c4c943897f905c6fe29e88e5c3ab056",
"T2T1_en_test_msg_backup_device.py::test_no_backup_fails": "fada9d38ec099b3c6a4fd8bf994bb1f3431e40085128b4e0cd9deb8344dec53e",
"T2T1_en_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "001377ce61dcd189e6a9d17e20dcd71130e951dc3314b40ff26f816bd9355bdd",
"T2T1_en_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "16cd07db386059bdc79dcfd404aa464fc1876ca831c317de9f1851afb7dbbc36",
"T2T1_en_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "6369901e32c214102a0ed60ceb71318009bbe2e3675bbe54bc00e8597a9a5033",
"T2T1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "96a18ef7ba92b18fd9d6d3856f737e8b1418df79221d6750723109c90b2d5807",
@ -13549,7 +13539,7 @@
"T2T1_es_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "09de554c06d4ac935bd92fd5b4948c4c1901811fdbc535e58db3cfcff381f00c",
"T2T1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "2215ef3feecc0b5779aa8152b33a4b63bf31ce867d0bfdd0df0e660d7257c027",
"T2T1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "9529294daa4d778155a91982b8651040d2ebb00857fbc9d0bf5c165eebfface3",
"T2T1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "f457adacc76760a2d98e18a39b6bad2f98459901598f2452c3e1be26ae5e1eaf",
"T2T1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "5f4271fb4c11d94e5f2e5190814a1169c3a34af7ea7c89e4b094580f9c85b4dd",
"T2T1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "55cadd14cec29cb7139a978f9bdd90dd4a53e5f37735fed0c82b3422e738f046",
"T2T1_es_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "43a6eb6652519e5ec2404b9932bd4cb7033f2ee158c40deb432644957ab68736",
"T2T1_es_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "ddccf0ba5b9d3fb402104f11b0a789831169503888335be13fc16cb91fc87c90",
@ -13768,7 +13758,6 @@
"T2T1_es_test_msg_backup_device.py::test_backup_slip39_custom[3_of_5]": "ccd42cd88af5803b23f2fa07312bb6c09ce51b945eb95571e28baa54b0ae2afa",
"T2T1_es_test_msg_backup_device.py::test_interrupt_backup_fails": "5bd2c1de8e56bfccbb9d072783b919d660210d49370ddf0aab4d67572887b845",
"T2T1_es_test_msg_backup_device.py::test_no_backup_fails": "84751f6b38fd85d1be38335b1310a45a10fc6ea80d11b8e0ad3cf8d43853d102",
"T2T1_es_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "001377ce61dcd189e6a9d17e20dcd71130e951dc3314b40ff26f816bd9355bdd",
"T2T1_es_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "aad9bb08b00fec27de32dc6efea71cf432db28e8d5b6113436506122405341a6",
"T2T1_es_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "154818fd12bb019fd2f864f60d435621e95705f2d42d7636833c3b6bda0e5aba",
"T2T1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "6b9bce5a9ffc79f57f0d9f2856c65c708a0f82ddc6ffbfa84b6746421788a00d",
@ -14998,7 +14987,7 @@
"T2T1_fr_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "2133ea17fa2ac057a8cee0e430996451514eb9803e64a09ae00da090d32f5a19",
"T2T1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "cba1131d14a682f0cbfb938216a1f0d6f8dca053eb67880e780d66eedb905121",
"T2T1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "dc605279dc25be4e7e6681c45055389fe6ede4a2315f30d1b9de8b9be80ac098",
"T2T1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "cc94347a31b87e9761096574bb1981ded3923943c6ae234e033c797867cf6e45",
"T2T1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "0f6d341271f6d54bb4b4a882d6be75c1f09ce7fc826e17e2a5f29d75e3596858",
"T2T1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "2982de2a83a18442cbaf47b3443e0d0048f5487bade58359c4bbced56fba9dfd",
"T2T1_fr_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "e6ff58950fcbdbcb00253ebdf26ad83691e4c6ed4479764363dcd7a8f626cfe4",
"T2T1_fr_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "b868d87e13f85f85601a1cccdab55e1384cc29da10a6ff137bfe27e8982aa72b",
@ -15217,7 +15206,6 @@
"T2T1_fr_test_msg_backup_device.py::test_backup_slip39_custom[3_of_5]": "0c40701baa20aff63e32f42f4f16e346e098b8b414eb4d62db53c4a5ece0bf14",
"T2T1_fr_test_msg_backup_device.py::test_interrupt_backup_fails": "f58eff59f22fd51c8e01f2115c8e84c7de88efafb4ceb88e3210ed4feba3f485",
"T2T1_fr_test_msg_backup_device.py::test_no_backup_fails": "005c1b631d2632fa7f4c36edfd243a90448c05c9d70c90dce341031e89b197a4",
"T2T1_fr_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "001377ce61dcd189e6a9d17e20dcd71130e951dc3314b40ff26f816bd9355bdd",
"T2T1_fr_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "91ac0ba60dc650dbacf552acb9623353fc6e7b10ffcc285e7005638f6310313e",
"T2T1_fr_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "d70109e3af6e64276af88ee4b1352e6d96bda4ec4c3e7f3964607b5a62cb5eac",
"T2T1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "c7c79c893280efdcfa43925b3e559eb5e00bc7615817ecc08920bb60f0096b6c",
@ -16599,7 +16587,7 @@
"T3T1_cs_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "f32467ad7e6835d555511902977d25c3482af29a4021a6a0ee79ef5c5c3d42f1",
"T3T1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "87c8836b5a24e5db265381d68e9607fc490f604c541a4718129bc9a8bbebffdb",
"T3T1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "0a9f6f8c22e31c0efaa840060755279d4f9c00fd8661ccd276acc1b125764970",
"T3T1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "dfa5f9b295d645a5f0c61990f5630e16df92bece6a096db0605f4796edc9c6b4",
"T3T1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "52275843923bd3cf4c6abdec9328c5c12668b990f6f60a8f706eee7006e41069",
"T3T1_cs_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "01b00ea17ca93683b6e9b4a78af4053388305fff71597e67cd7277a22776bf3b",
"T3T1_cs_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "249158de2df0162d5f7caf23b486c893285d3b747c2744f1ede27c1bd62ff977",
"T3T1_cs_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "bc095b9784c70a73630f5bc0a66e0e8fda6d49e7e5da750bf9cfc9d208b03902",
@ -16822,7 +16810,6 @@
"T3T1_cs_test_msg_backup_device.py::test_backup_slip39_custom[3_of_5]": "f8488e40c2ef12caa4e44b6a2d43864e02636462d0de215a553aeab24fa1d61e",
"T3T1_cs_test_msg_backup_device.py::test_interrupt_backup_fails": "6ec2771f7959b0d0a6e7beaa83fd5be2c1c3eed51f103c72d3ae97b7e0bda66f",
"T3T1_cs_test_msg_backup_device.py::test_no_backup_fails": "c9ca005679502266318da239e432a9661bb71967c41455abc9a78ab14ab16588",
"T3T1_cs_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "1a5d5ef3d81710c7a0a113514ac287b37d6ab66f284bfe34353dddf634714ea5",
"T3T1_cs_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "78a223276aab0b863f2b77d200ce0760acc786dfe83577df6a4642ae5fade030",
"T3T1_cs_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "c32615dade60555fccd939eb3d919ec2ae976ae927ae604b8831bf0725e94f7a",
"T3T1_cs_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "885c23004db682853f559eb07a382f99064fca941decb96ca6978a665f7a5f08",
@ -17946,7 +17933,7 @@
"T3T1_de_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "66fc33cd2f5978acd01b8cb4a7bc911c8dfb3c80a757c120f43fd20a2b6da22d",
"T3T1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "a9a8b6ad1187e39044b9a9be38dd37025a450599ff7cc27e80db2c091aa68933",
"T3T1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "bd093e21edacca6aaee4e4191ec199749d957b393a932e92bb85f8f34979512f",
"T3T1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "30e1be92c8f217f23a9e3cb396b41513e3405543957615eccc04d6db48be66c1",
"T3T1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "8dbaed3a7dcebb1fafd579d8e895f9bbb80fe9fae7556f97217a06077f755eb7",
"T3T1_de_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "ce8ee7157dcd5af873ae9f41260296c1045479fc18787e4e18b7dbcceb6d7ca8",
"T3T1_de_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "03a3b751d14f7dc633cdab13c94b93b436027c083d09a2f72147cd90f6bf21a6",
"T3T1_de_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "efb1c6218e53909031325ab2954dd3d5ac14664f5824c434796d3aa223e79717",
@ -18169,7 +18156,6 @@
"T3T1_de_test_msg_backup_device.py::test_backup_slip39_custom[3_of_5]": "c2011cf42c3860a2cd5517dd8604a970f0d31e53e51940376a5711102888f51b",
"T3T1_de_test_msg_backup_device.py::test_interrupt_backup_fails": "46a0aaa1de9d5768ec769aa75c050cc6c3f7f037b54d191336ccdb52b12d716a",
"T3T1_de_test_msg_backup_device.py::test_no_backup_fails": "3c27d51b28767f7ef347d31c482c4cb1a3a0e857f45d2e249ba59767d8622d9a",
"T3T1_de_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "1a5d5ef3d81710c7a0a113514ac287b37d6ab66f284bfe34353dddf634714ea5",
"T3T1_de_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "e6a54d638aa25f453abdf38010d281a1efbe36703913272e4af582d94981e0ba",
"T3T1_de_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "199caf405a161784c815eb88880517bc50087990926fa5a798b1dfed46165577",
"T3T1_de_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "c322136ccd06eabb0414a9dcd53b83c816850ac1e41accee72a04a804735a917",
@ -19293,7 +19279,7 @@
"T3T1_en_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "954abdea6bd7631bffdfa93d1129409adedb07cc9069d42198ec74ca617b6bb9",
"T3T1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "8fc050d6fdd2d3b37d07c46c884605b875fd0f0a7a6ff9dd9ba0fcaa56a18ee9",
"T3T1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "ec64c8c0cde4aafdb1d5b83232c47e33620f45bd232a9cc44df4b50f3777936f",
"T3T1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "2322c88f05f19d2faa0dff594fd574fbe0a90260d498116edfbb5c282d2e101e",
"T3T1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "1a49c5a41c127c9ffd2a5c597b2d29e338c2b6d8bae8658fb2e2793894327716",
"T3T1_en_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "6fe22a11fec54327631a72dbb77a50b4752f6bf25c520d4d5e34365d4e0dd1c6",
"T3T1_en_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "1a691412647be159cc262fb4b0b6cecc47b57d159d4aa8eba4e219a8b4054774",
"T3T1_en_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "8608496c6815f89998b2668f042276b40ebde3715a496ed83103e68fff7fb6f4",
@ -19516,7 +19502,6 @@
"T3T1_en_test_msg_backup_device.py::test_backup_slip39_custom[3_of_5]": "00e79d25f914d8fcdf173e1b8f00c92eb254d6f1ee7db38cb7449b8b07eeb714",
"T3T1_en_test_msg_backup_device.py::test_interrupt_backup_fails": "6867b3fefe40bbdf848693ad940eb096c9974e57e476f1efa9201c30502ff621",
"T3T1_en_test_msg_backup_device.py::test_no_backup_fails": "0f627c7252e7e3517a74008a431f83dde710750b7b43914183de5685b4a7ce4b",
"T3T1_en_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "1a5d5ef3d81710c7a0a113514ac287b37d6ab66f284bfe34353dddf634714ea5",
"T3T1_en_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "9ad354ff1eae2748d7900efd602466909ae2bb0895aa83cfa8a61f68e9f2565c",
"T3T1_en_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "c1e5b58f031f5951b18ce78d8498822698a3dc123036b3df8e0319400ea90d3d",
"T3T1_en_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "0177323dd22623f82836638798699157b31749d63ebb0e1c160d0f8b31a23b18",
@ -20640,7 +20625,7 @@
"T3T1_es_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "5c493480c2be8018b01844522d0adc6307006d94359f641147dcfe9bf5ed7a81",
"T3T1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "dc53105a6b05fcd2d6ceb4531ccf15a8617a3450db89b203bc827365ef2e14f7",
"T3T1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "b2b3f5d920906e794b491568af6103b8b1a6fbf57ce89f325f892e3d113e3833",
"T3T1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "085c58e64c751a36643acf9bde37af20f99a99d1fadbf870003e5a291ed2e87d",
"T3T1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "d14e7406abeff6b48c9674b9ef2c51528b76b419d6ec1688240fddd21cc04051",
"T3T1_es_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "2b8712dce67fe3dea95754aee775c651cd40cbd184221f440e9ca41da4eabce1",
"T3T1_es_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "8923a59ab4531fc987c8965592f2a3fd8fac4b4b60846d1a8e3c08bc13cd2bd5",
"T3T1_es_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "f69c838933730806c344c51da6a0fa372168a215395672f79f8f0ea6ab09eef4",
@ -20863,7 +20848,6 @@
"T3T1_es_test_msg_backup_device.py::test_backup_slip39_custom[3_of_5]": "b8fea1e47b5e46937e6d6583d1644734e4ccf62726d6a29cee635b9903926040",
"T3T1_es_test_msg_backup_device.py::test_interrupt_backup_fails": "f89b255bb5ba23a89d5e0eb1109901ba35ac67624e3c9d587be6d19b0ffb3a72",
"T3T1_es_test_msg_backup_device.py::test_no_backup_fails": "991c8240e658e84a358bb3297f2bd59c5cadfb58b57aa0da592e919ac77c5f80",
"T3T1_es_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "1a5d5ef3d81710c7a0a113514ac287b37d6ab66f284bfe34353dddf634714ea5",
"T3T1_es_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "3d6fa73765854729d7a2d51197b4bcf0797ca1233946d24958d26fa355bb0b9c",
"T3T1_es_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "a455376f20c3072a7d2941e9881acbdc910aed9148f2e4d7b72ed8da2cf5ff97",
"T3T1_es_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "f38dc739b870fd271bb0df1876aebad20a1f655a04eb61ca9049bd266aae4404",
@ -21987,7 +21971,7 @@
"T3T1_fr_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "d3f130732cd2837913cb832fc92b4c7db31942fcc85b9158121c8378ec1e3f85",
"T3T1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "f7dc4fc7a8e30e86a4a647b1dd53debbe90d4ad27f4866ea28ef7a215b235484",
"T3T1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "36e70439f852096a324127a5198d6f22fd27588df99181ec9ba3616b04f311ae",
"T3T1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "0ee1d255cba202c089e106724293a930252ef84abb1990c260249a3b328bdcc0",
"T3T1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "aef67a18b4b49ca74299a0c1ab5d5206246d8bf4325e0269ee952f03709bac01",
"T3T1_fr_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "b4756695193a1502c00d78e0add614a61485c8fba37047b37a19c57e342542e7",
"T3T1_fr_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "cf00b387e6505d133b0a246efe235424b0ed84d4ded82177e46946149f9282f5",
"T3T1_fr_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "0cdb03c086c8a45c0ac80aaaacbe8fb68a443b942e1ebca354a02594a58b5b99",
@ -22210,7 +22194,6 @@
"T3T1_fr_test_msg_backup_device.py::test_backup_slip39_custom[3_of_5]": "144f3ce0b7f2a24a4b45d3d6673fdb7ccc66555e25d0c82368a4be68b44f84a9",
"T3T1_fr_test_msg_backup_device.py::test_interrupt_backup_fails": "629a12e180fc45421731cacf9dfd3d33ef97715ccafd9370b86a1f967f9dd45d",
"T3T1_fr_test_msg_backup_device.py::test_no_backup_fails": "520ee2d956be93f1d869cd353a8fe2b5628a1f8587076604e85b33d8f66c5907",
"T3T1_fr_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "1a5d5ef3d81710c7a0a113514ac287b37d6ab66f284bfe34353dddf634714ea5",
"T3T1_fr_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "19ecf4aea55615df4f40c367daee7bf0e9f812576b6bacb90fab5f2e14ddd730",
"T3T1_fr_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "ea00bde3dc79e88ea9ea3c626c3394c71652b4e0f6847ee9531f11ea3c8c01ba",
"T3T1_fr_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "a3117342e89012ede2cb9f59d3058f4b899c4a04a4e685f1e60f1d358d62cd6c",

View File

@ -210,7 +210,6 @@ def test_upgrade_reset(gen: str, tag: str):
with EmulatorWrapper(gen, tag) as emu:
device.reset(
emu.client,
display_random=False,
strength=STRENGTH,
passphrase_protection=False,
pin_protection=False,
@ -241,7 +240,6 @@ def test_upgrade_reset_skip_backup(gen: str, tag: str):
with EmulatorWrapper(gen, tag) as emu:
device.reset(
emu.client,
display_random=False,
strength=STRENGTH,
passphrase_protection=False,
pin_protection=False,
@ -273,7 +271,6 @@ def test_upgrade_reset_no_backup(gen: str, tag: str):
with EmulatorWrapper(gen, tag) as emu:
device.reset(
emu.client,
display_random=False,
strength=STRENGTH,
passphrase_protection=False,
pin_protection=False,