1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-07-04 13:52:35 +00:00

feat(core/sdbackup): pystyle checks

This commit is contained in:
obrusvit 2023-12-06 13:08:29 +01:00
parent 9df4b5e24f
commit 4a69393d59
7 changed files with 33 additions and 32 deletions

View File

@ -21,10 +21,7 @@ async def recovery_device(msg: RecoveryDevice) -> Success:
import storage.recovery as storage_recovery import storage.recovery as storage_recovery
from trezor import config, wire, workflow from trezor import config, wire, workflow
from trezor.enums import ButtonRequestType from trezor.enums import ButtonRequestType
from trezor.ui.layouts import ( from trezor.ui.layouts import confirm_action, confirm_reset_device
confirm_action,
confirm_reset_device,
)
from apps.common.request_pin import ( from apps.common.request_pin import (
error_pin_invalid, error_pin_invalid,

View File

@ -58,10 +58,8 @@ async def _continue_recovery_process() -> Success:
from trezor import utils from trezor import utils
from trezor.errors import MnemonicError from trezor.errors import MnemonicError
if utils.USE_SD_CARD: # if utils.USE_SD_CARD:
from apps.management.sd_backup import ( from apps.management.sd_backup import sdcard_recover_seed
sdcard_recover_seed,
)
# gather the current recovery state from storage # gather the current recovery state from storage
dry_run = storage_recovery.is_dry_run() dry_run = storage_recovery.is_dry_run()
@ -79,17 +77,21 @@ async def _continue_recovery_process() -> Success:
await _request_share_first_screen(word_count) await _request_share_first_screen(word_count)
secret = None secret = None
words = None
backup_medium = "words"
while secret is None: while secret is None:
if is_first_step: if is_first_step:
backup_medium: str = await _choose_backup_medium() backup_medium: str = await _choose_backup_medium()
if backup_medium == "sdcard": if utils.USE_SD_CARD and backup_medium == "sdcard":
# attempt to recover words from sd card # attempt to recover words from sd card
words = await sdcard_recover_seed() words = await sdcard_recover_seed()
if words is None: if words is None:
continue continue
word_count = len(words.split()) word_count = len(words.split())
if word_count not in (12, 24): if word_count not in (12, 24):
await show_warning("Shamir not yet supported for SD") await layout.show_recovery_warning(
"recovery", "Shamir not yet supported for SD"
)
raise wire.ProcessError("Attempt to recover Shamir from SD card.") raise wire.ProcessError("Attempt to recover Shamir from SD card.")
else: else:
# If we are starting recovery, ask for word count first... # If we are starting recovery, ask for word count first...

View File

@ -213,7 +213,7 @@ def _compute_secret_from_entropy(
return secret return secret
async def _backup_bip39_sdcard(mnemonic: str) -> None: async def _backup_bip39_sdcard(mnemonic: bytes) -> None:
from apps.management.sd_backup import sdcard_backup_seed from apps.management.sd_backup import sdcard_backup_seed
backup_success: bool = await sdcard_backup_seed(mnemonic) backup_success: bool = await sdcard_backup_seed(mnemonic)

View File

@ -1,10 +1,10 @@
from storage.sd_seed_backup import recover_seed_from_sdcard, store_seed_on_sdcard
from trezor import io, utils from trezor import io, utils
from storage.sd_seed_backup import store_seed_on_sdcard, recover_seed_from_sdcard
if utils.USE_SD_CARD: if utils.USE_SD_CARD:
fatfs = io.fatfs # global_import_cache fatfs = io.fatfs # global_import_cache
async def bip39_choose_backup_medium(recovery: bool = False) -> str: async def bip39_choose_backup_medium(recovery: bool = False) -> str:
# TODO this will be general, not only for BIP39 # TODO this will be general, not only for BIP39
from trezor.ui.layouts import choose_backup_medium from trezor.ui.layouts import choose_backup_medium

View File

@ -1,10 +1,10 @@
from micropython import const from micropython import const
from typing import TYPE_CHECKING from trezorcrypto import crc
from typing import Generator
import storage.device
from trezor import io, utils from trezor import io, utils
from trezor.sdcard import with_filesystem, with_sdcard from trezor.sdcard import with_filesystem, with_sdcard
from trezorcrypto import crc from trezor.wire import ProcessError
if utils.USE_SD_CARD: if utils.USE_SD_CARD:
fatfs = io.fatfs # global_import_cache fatfs = io.fatfs # global_import_cache
@ -55,6 +55,7 @@ def _write_seed_unalloc(mnemonic_secret: bytes) -> None:
def _read_seed_unalloc() -> str | None: def _read_seed_unalloc() -> str | None:
block_buffer = bytearray(SDCARD_BLOCK_SIZE_B) block_buffer = bytearray(SDCARD_BLOCK_SIZE_B)
mnemonic_read = None
for block_idx in _storage_blocks_gen(): for block_idx in _storage_blocks_gen():
try: try:
sdcard.read(block_idx, block_buffer) sdcard.read(block_idx, block_buffer)
@ -73,18 +74,19 @@ def _storage_blocks_gen() -> Generator:
return _storage_blocks_gen_by_n() return _storage_blocks_gen_by_n()
def _storage_blocks_gen_by_offset() -> Generator: def _storage_blocks_gen_by_offset() -> Generator[int, None, None]:
cap = sdcard.capacity() cap = sdcard.capacity()
if cap == 0: if cap == 0:
raise ProcessError raise ProcessError("SD card operation failed")
BLOCK_END = cap // SDCARD_BLOCK_SIZE_B - 1 BLOCK_END = cap // SDCARD_BLOCK_SIZE_B - 1
return range(SDBACKUP_BLOCK_START, BLOCK_END, SDBACKUP_BLOCK_OFFSET) for i in range(SDBACKUP_BLOCK_START, BLOCK_END, SDBACKUP_BLOCK_OFFSET):
yield i
def _storage_blocks_gen_by_n() -> Generator: def _storage_blocks_gen_by_n() -> Generator[int, None, None]:
cap = sdcard.capacity() cap = sdcard.capacity()
if cap == 0: if cap == 0:
raise ProcessError raise ProcessError("SD card operation failed")
BLOCK_END = cap // SDCARD_BLOCK_SIZE_B - 1 BLOCK_END = cap // SDCARD_BLOCK_SIZE_B - 1
return ( return (
SDBACKUP_BLOCK_START SDBACKUP_BLOCK_START
@ -111,14 +113,14 @@ Backup Memory Block Layout:
The total size of the block is defined by SDCARD_BLOCK_SIZE_B. The total size of the block is defined by SDCARD_BLOCK_SIZE_B.
""" """
# Constants for offsets and lengths # Constants for offsets and lengths
MAGIC_OFFSET = 0 MAGIC_OFFSET = const(0)
MAGIC_LENGTH = 4 MAGIC_LENGTH = const(4)
VERSION_OFFSET = MAGIC_OFFSET + MAGIC_LENGTH VERSION_OFFSET = const(MAGIC_OFFSET + MAGIC_LENGTH)
VERSION_LENGTH = 2 VERSION_LENGTH = const(2)
SEED_LEN_OFFSET = VERSION_OFFSET + VERSION_LENGTH SEED_LEN_OFFSET = const(VERSION_OFFSET + VERSION_LENGTH)
SEED_LEN_LENGTH = 4 SEED_LEN_LENGTH = const(4)
MNEMONIC_OFFSET = SEED_LEN_OFFSET + SEED_LEN_LENGTH MNEMONIC_OFFSET = const(SEED_LEN_OFFSET + SEED_LEN_LENGTH)
CHECKSUM_LENGTH = 4 CHECKSUM_LENGTH = const(4)
def _encode_mnemonic_to_backup_block(mnemonic: bytes) -> bytes: def _encode_mnemonic_to_backup_block(mnemonic: bytes) -> bytes:
@ -161,7 +163,7 @@ def _decode_mnemonic_from_backup_block(block: bytes) -> bytes | None:
def _write_readme() -> None: def _write_readme() -> None:
with fatfs.open("README.txt", "w") as f: with fatfs.open("README.txt", "w") as f:
f.write("This is a Trezor backup SD card.") f.write(b"This is a Trezor backup SD card.")
def _write_seed_plain_text(mnemonic_secret: bytes) -> None: def _write_seed_plain_text(mnemonic_secret: bytes) -> None:

View File

@ -588,7 +588,7 @@ async def choose_backup_medium(recovery: bool = False) -> str:
result = await interact( result = await interact(
RustLayout( RustLayout(
trezorui2.confirm_action( trezorui2.confirm_action(
title="Backup medium", # TODO naming convention (backup medium?) title="Backup medium", # TODO naming convention (backup medium?)
action="Choose backup medium.", action="Choose backup medium.",
description=description, description=description,
verb="SD card", verb="SD card",

View File

@ -914,7 +914,7 @@ class InputFlowBip39Backup(InputFlowBase):
def input_flow_common(self) -> BRGeneratorType: def input_flow_common(self) -> BRGeneratorType:
# choose Words # choose Words
received = yield yield
self.debug.press_no() self.debug.press_no()
# 1. Confirm Reset # 1. Confirm Reset