@@ -72,6 +72,41 @@ static const uint8_t
7272 {0x19 , 0x0a , 0x1f , 0x0f , 0x2c }, {0x19 , 0x0c , 0x03 , 0x0d , 0x38 },
7373};
7474
75+ // clang-format off
76+ // Address table for all 27 I/R-config objects, ordered to match lt_config_t.obj[].
77+ // Using a local const table (flash/.rodata) instead of cfg_desc_table from
78+ // libtropic which is a non-const global (RAM/.data).
79+ static const enum lt_config_obj_addr_t TROPIC_CONFIG_ADDRS [LT_CONFIG_OBJ_CNT ] = {
80+ TR01_CFG_START_UP_ADDR ,
81+ TR01_CFG_SENSORS_ADDR ,
82+ TR01_CFG_DEBUG_ADDR ,
83+ TR01_CFG_GPO_ADDR ,
84+ TR01_CFG_SLEEP_MODE_ADDR ,
85+ TR01_CFG_UAP_PAIRING_KEY_WRITE_ADDR ,
86+ TR01_CFG_UAP_PAIRING_KEY_READ_ADDR ,
87+ TR01_CFG_UAP_PAIRING_KEY_INVALIDATE_ADDR ,
88+ TR01_CFG_UAP_R_CONFIG_WRITE_ERASE_ADDR ,
89+ TR01_CFG_UAP_R_CONFIG_READ_ADDR ,
90+ TR01_CFG_UAP_I_CONFIG_WRITE_ADDR ,
91+ TR01_CFG_UAP_I_CONFIG_READ_ADDR ,
92+ TR01_CFG_UAP_PING_ADDR ,
93+ TR01_CFG_UAP_R_MEM_DATA_WRITE_ADDR ,
94+ TR01_CFG_UAP_R_MEM_DATA_READ_ADDR ,
95+ TR01_CFG_UAP_R_MEM_DATA_ERASE_ADDR ,
96+ TR01_CFG_UAP_RANDOM_VALUE_GET_ADDR ,
97+ TR01_CFG_UAP_ECC_KEY_GENERATE_ADDR ,
98+ TR01_CFG_UAP_ECC_KEY_STORE_ADDR ,
99+ TR01_CFG_UAP_ECC_KEY_READ_ADDR ,
100+ TR01_CFG_UAP_ECC_KEY_ERASE_ADDR ,
101+ TR01_CFG_UAP_ECDSA_SIGN_ADDR ,
102+ TR01_CFG_UAP_EDDSA_SIGN_ADDR ,
103+ TR01_CFG_UAP_MCOUNTER_INIT_ADDR ,
104+ TR01_CFG_UAP_MCOUNTER_GET_ADDR ,
105+ TR01_CFG_UAP_MCOUNTER_UPDATE_ADDR ,
106+ TR01_CFG_UAP_MAC_AND_DESTROY_ADDR ,
107+ };
108+ // clang-format on
109+
75110#ifdef TREZOR_EMULATOR
76111#define TROPIC_RETRY_COMMAND (command ) command
77112#else
@@ -376,41 +411,6 @@ void tropic_session_start_time(uint32_t *time_ms) {
376411 }
377412}
378413
379- // clang-format off
380- // Address table for all 27 I/R-config objects, ordered to match lt_config_t.obj[].
381- // Using a local const table (flash/.rodata) instead of cfg_desc_table from
382- // libtropic which is a non-const global (RAM/.data).
383- static const enum lt_config_obj_addr_t TROPIC_CONFIG_ADDRS [LT_CONFIG_OBJ_CNT ] = {
384- TR01_CFG_START_UP_ADDR ,
385- TR01_CFG_SENSORS_ADDR ,
386- TR01_CFG_DEBUG_ADDR ,
387- TR01_CFG_GPO_ADDR ,
388- TR01_CFG_SLEEP_MODE_ADDR ,
389- TR01_CFG_UAP_PAIRING_KEY_WRITE_ADDR ,
390- TR01_CFG_UAP_PAIRING_KEY_READ_ADDR ,
391- TR01_CFG_UAP_PAIRING_KEY_INVALIDATE_ADDR ,
392- TR01_CFG_UAP_R_CONFIG_WRITE_ERASE_ADDR ,
393- TR01_CFG_UAP_R_CONFIG_READ_ADDR ,
394- TR01_CFG_UAP_I_CONFIG_WRITE_ADDR ,
395- TR01_CFG_UAP_I_CONFIG_READ_ADDR ,
396- TR01_CFG_UAP_PING_ADDR ,
397- TR01_CFG_UAP_R_MEM_DATA_WRITE_ADDR ,
398- TR01_CFG_UAP_R_MEM_DATA_READ_ADDR ,
399- TR01_CFG_UAP_R_MEM_DATA_ERASE_ADDR ,
400- TR01_CFG_UAP_RANDOM_VALUE_GET_ADDR ,
401- TR01_CFG_UAP_ECC_KEY_GENERATE_ADDR ,
402- TR01_CFG_UAP_ECC_KEY_STORE_ADDR ,
403- TR01_CFG_UAP_ECC_KEY_READ_ADDR ,
404- TR01_CFG_UAP_ECC_KEY_ERASE_ADDR ,
405- TR01_CFG_UAP_ECDSA_SIGN_ADDR ,
406- TR01_CFG_UAP_EDDSA_SIGN_ADDR ,
407- TR01_CFG_UAP_MCOUNTER_INIT_ADDR ,
408- TR01_CFG_UAP_MCOUNTER_GET_ADDR ,
409- TR01_CFG_UAP_MCOUNTER_UPDATE_ADDR ,
410- TR01_CFG_UAP_MAC_AND_DESTROY_ADDR ,
411- };
412- // clang-format on
413-
414414lt_ret_t lt_ecc_key_erase_retry (lt_handle_t * tropic_handle ,
415415 const lt_ecc_slot_t ecc_slot ) {
416416 return TROPIC_RETRY_COMMAND (lt_ecc_key_erase (tropic_handle , ecc_slot ));
0 commit comments