1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-02-07 13:12:41 +00:00

refactor(core): make homescreen max size model dependent

[no changelog]
This commit is contained in:
tychovrahe 2025-01-23 16:32:59 +01:00 committed by TychoVrahe
parent 25ce4e3fc9
commit 566f82ccd8
12 changed files with 17 additions and 6 deletions

View File

@ -10,6 +10,7 @@
#define MODEL_INTERNAL_NAME_QSTR MP_QSTR_D001
#define MODEL_USB_MANUFACTURER "Trezor DIY"
#define MODEL_USB_PRODUCT MODEL_FULL_NAME
#define MODEL_HOMESCREEN_MAXSIZE 16384
/*** Discovery uses DEV keys in any build variant ***/
#define MODEL_BOARDLOADER_KEYS \

View File

@ -12,6 +12,7 @@
#define MODEL_INTERNAL_NAME_QSTR MP_QSTR_D001
#define MODEL_USB_MANUFACTURER "Trezor DIY"
#define MODEL_USB_PRODUCT MODEL_FULL_NAME
#define MODEL_HOMESCREEN_MAXSIZE 65536
/*** Discovery uses DEV keys in any build variant ***/
#define MODEL_BOARDLOADER_KEYS \

View File

@ -10,6 +10,7 @@
#define MODEL_INTERNAL_NAME_QSTR MP_QSTR_T2B1
#define MODEL_USB_MANUFACTURER "SatoshiLabs"
#define MODEL_USB_PRODUCT "TREZOR"
#define MODEL_HOMESCREEN_MAXSIZE 16384
/*** PRODUCTION KEYS ***/
#define MODEL_BOARDLOADER_KEYS \

View File

@ -10,6 +10,7 @@
#define MODEL_INTERNAL_NAME_QSTR MP_QSTR_T2T1
#define MODEL_USB_MANUFACTURER "SatoshiLabs"
#define MODEL_USB_PRODUCT "TREZOR"
#define MODEL_HOMESCREEN_MAXSIZE 16384
/*** PRODUCTION KEYS ***/
#define MODEL_BOARDLOADER_KEYS \

View File

@ -12,6 +12,7 @@
#define MODEL_INTERNAL_NAME_QSTR MP_QSTR_T3B1
#define MODEL_USB_MANUFACTURER "Trezor Company"
#define MODEL_USB_PRODUCT MODEL_FULL_NAME
#define MODEL_HOMESCREEN_MAXSIZE 16384
#define MODEL_BOARDLOADER_KEYS \
(const uint8_t *)"\xbb\xc2\x1a\xdb\xc1\xb4\x4d\x6b\xfe\x10\xc5\x22\x3d\xe3\x3c\x28\x42\x9e\x52\x68\x07\x07\xd3\x24\x90\x07\xed\x42\xdc\xc5\xbe\x13", \

View File

@ -12,6 +12,7 @@
#define MODEL_INTERNAL_NAME_QSTR MP_QSTR_T3T1
#define MODEL_USB_MANUFACTURER "Trezor Company"
#define MODEL_USB_PRODUCT MODEL_FULL_NAME
#define MODEL_HOMESCREEN_MAXSIZE 16384
#define MODEL_BOARDLOADER_KEYS \
(const uint8_t *)"\x76\xaf\x42\x6e\x61\x40\x6b\xad\x7c\x07\x7b\x40\x9c\x66\xfd\xe3\x9f\xb8\x17\x91\x93\x13\xae\x1e\x4c\x02\x53\x5c\x80\xbe\xed\x96", \

View File

@ -12,6 +12,7 @@
#define MODEL_INTERNAL_NAME_QSTR MP_QSTR_T3W1
#define MODEL_USB_MANUFACTURER "Trezor Company"
#define MODEL_USB_PRODUCT MODEL_FULL_NAME
#define MODEL_HOMESCREEN_MAXSIZE 65536
#define MODEL_BOARDLOADER_KEYS \
(const uint8_t *)"\xe8\x91\x2f\x81\xb3\xe7\x80\xee\x65\x0e\xd3\x85\x6d\xb5\x32\x6e\x0b\x9e\xff\x10\x36\x4b\x33\x91\x93\xe7\xa8\xf1\x0f\x76\x21\xb9", \

View File

@ -405,6 +405,8 @@ STATIC mp_obj_tuple_t mod_trezorutils_version_obj = {
/// """USB Product name."""
/// INTERNAL_MODEL: str
/// """Internal model code."""
/// HOMESCREEN_MAXSIZE: int
/// """Maximum size of user-uploaded homescreen in bytes."""
/// EMULATOR: bool
/// """Whether the firmware is running in the emulator."""
/// BITCOIN_ONLY: bool
@ -488,6 +490,8 @@ STATIC const mp_rom_map_elem_t mp_module_trezorutils_globals_table[] = {
MP_ROM_PTR(&mod_trezorutils_model_usb_product_obj)},
{MP_ROM_QSTR(MP_QSTR_INTERNAL_MODEL),
MP_ROM_QSTR(MODEL_INTERNAL_NAME_QSTR)},
{MP_ROM_QSTR(MP_QSTR_HOMESCREEN_MAXSIZE),
MP_ROM_INT(MODEL_HOMESCREEN_MAXSIZE)},
#ifdef TREZOR_EMULATOR
{MP_ROM_QSTR(MP_QSTR_EMULATOR), mp_const_true},
MEMINFO_DICT_ENTRIES

View File

@ -146,6 +146,8 @@ MODEL_USB_PRODUCT: str
"""USB Product name."""
INTERNAL_MODEL: str
"""Internal model code."""
HOMESCREEN_MAXSIZE: int
"""Maximum size of user-uploaded homescreen in bytes."""
EMULATOR: bool
"""Whether the firmware is running in the emulator."""
BITCOIN_ONLY: bool

View File

@ -16,14 +16,12 @@ BRT_PROTECT_CALL = ButtonRequestType.ProtectCall # CACHE
def _validate_homescreen(homescreen: bytes) -> None:
import storage.device as storage_device
if homescreen == b"":
return
if len(homescreen) > storage_device.HOMESCREEN_MAXSIZE:
if len(homescreen) > utils.HOMESCREEN_MAXSIZE:
raise DataError(
f"Homescreen is too large, maximum size is {storage_device.HOMESCREEN_MAXSIZE} bytes"
f"Homescreen is too large, maximum size is {utils.HOMESCREEN_MAXSIZE} bytes"
)
if not trezorui_api.check_homescreen_format(homescreen):
raise DataError("Wrong homescreen format")

View File

@ -50,7 +50,6 @@ if TYPE_CHECKING:
StorageSafetyCheckLevel = Literal[0, 1]
# fmt: on
HOMESCREEN_MAXSIZE = const(16384)
LABEL_MAXLENGTH = const(32)
if __debug__:
@ -171,7 +170,7 @@ def set_passphrase_enabled(enable: bool) -> None:
def set_homescreen(homescreen: bytes) -> None:
if len(homescreen) > HOMESCREEN_MAXSIZE:
if len(homescreen) > utils.HOMESCREEN_MAXSIZE:
raise ValueError # homescreen too large
common.set(_NAMESPACE, _HOMESCREEN, homescreen, public=True)

View File

@ -3,6 +3,7 @@ import sys
from trezorutils import ( # noqa: F401
BITCOIN_ONLY,
EMULATOR,
HOMESCREEN_MAXSIZE,
INTERNAL_MODEL,
MODEL,
MODEL_FULL_NAME,