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:
parent
25ce4e3fc9
commit
566f82ccd8
@ -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 \
|
||||
|
@ -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 \
|
||||
|
@ -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 \
|
||||
|
@ -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 \
|
||||
|
@ -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", \
|
||||
|
@ -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", \
|
||||
|
@ -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", \
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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")
|
||||
|
@ -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)
|
||||
|
||||
|
@ -3,6 +3,7 @@ import sys
|
||||
from trezorutils import ( # noqa: F401
|
||||
BITCOIN_ONLY,
|
||||
EMULATOR,
|
||||
HOMESCREEN_MAXSIZE,
|
||||
INTERNAL_MODEL,
|
||||
MODEL,
|
||||
MODEL_FULL_NAME,
|
||||
|
Loading…
Reference in New Issue
Block a user