Extended commands and standard commands do not share the same internal processing logic or execution flow. By defining them with identical timing constants, the driver enforces an inaccurate model of the device's state machine.
❯ cat services/stsafea/stsafea_timings.c -r 25 -r 90:121 -r 155 -r 218:249
─────┬───────────────────────────────────────────────────
│ File: services/stsafea/stsafea_timings.c
... │ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ 8< ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
25 │ const PLAT_UI16 stsafea_cmd_timings[STSAFEA_PRODUCT_COUNT][STSAFEA_MAX_CMD_COUNT] = {
... │ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ 8< ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
90 │ /* STSAFE_A120 */
91 │ {
92 │ 50, /* Echo */
93 │ 22, /* Reset */
94 │ 26, /* Generate Random */
95 │ 22, /* Start Session */
96 │ 23, /* Decrement zone counter */
97 │ 23, /* Read zone */
98 │ 22, /* Update zone */
99 │ 26, /* Increment zone counter */
100 │ STSAFEA_EXEC_TIME_DEFAULT, /* Derive LORA key (Not applicable) */
101 │ 23, /* Generate MAC */
102 │ 23, /* Verify MAC */
103 │ STSAFEA_EXEC_TIME_DEFAULT, /* Unwrap issuer envelope (Not applicable)*/
104 │ STSAFEA_EXEC_TIME_DEFAULT, /* Delete MAC (Not applicable)*/
105 │ STSAFEA_EXEC_TIME_DEFAULT, /* Hibernate, (Not applicable)*/
106 │ 25, /* Wrap Local Envelope */
107 │ 24, /* Unwrap Local Envelope */
108 │ STSAFEA_EXEC_TIME_DEFAULT, /* Put attribute(Not applicable) */
109 │ 80, /* Generate key */
110 │ STSAFEA_EXEC_TIME_DEFAULT, /* Put key (Not applicable)*/
111 │ STSAFEA_EXEC_TIME_DEFAULT, /* Configure */
112 │ 10, /* Query */
113 │ STSAFEA_EXEC_TIME_DEFAULT, /* Get Signature */
114 │ 96, /* Generate Signature */
115 │ 156, /* Verify Signature */
116 │ 34, /* Establish Key */
117 │ STSAFEA_EXEC_TIME_DEFAULT, /* Standby (Not applicable)*/
118 │ STSAFEA_EXEC_TIME_DEFAULT, /* Verify Password (Not applicable)*/
119 │ 25, /* Encrypt */
120 │ 26 /* Decrypt */
121 │ },
... │ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ 8< ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
155 │ const PLAT_UI16 stsafea_extended_cmd_timings[STSAFEA_PRODUCT_COUNT][STSAFEA_MAX_EXT_CMD_COUNT] = {
... │ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ 8< ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
218 │ /* STSAFE_A120 */
219 │ {
220 │ 50, /* Echo */
221 │ 22, /* Reset */
222 │ 26, /* Generate Random */
223 │ 22, /* Start Session */
224 │ 23, /* Decrement zone counter */
225 │ 23, /* Read zone */
226 │ 22, /* Update zone */
227 │ 26, /* Increment zone counter */
228 │ STSAFEA_EXEC_TIME_DEFAULT, /* Derive LORA key (Not applicable) */
229 │ 23, /* Generate MAC */
230 │ 23, /* Verify MAC */
231 │ STSAFEA_EXEC_TIME_DEFAULT, /* Unwrap issuer envelope (Not applicable)*/
232 │ STSAFEA_EXEC_TIME_DEFAULT, /* Delete MAC (Not applicable)*/
233 │ STSAFEA_EXEC_TIME_DEFAULT, /* Hibernate, (Not applicable)*/
234 │ 25, /* Wrap Local Envelope */
235 │ 24, /* Unwrap Local Envelope */
236 │ STSAFEA_EXEC_TIME_DEFAULT, /* Put attribute(Not applicable) */
237 │ 80, /* Generate key */
238 │ STSAFEA_EXEC_TIME_DEFAULT, /* Put key (Not applicable)*/
239 │ STSAFEA_EXEC_TIME_DEFAULT, /* Configure */
240 │ 10, /* Query */
241 │ STSAFEA_EXEC_TIME_DEFAULT, /* Get Signature (Not applicable)*/
242 │ 96, /* Generate Signature */
243 │ 156, /* Verify Signature */
244 │ 34, /* Establish Key */
245 │ STSAFEA_EXEC_TIME_DEFAULT, /* Standby (Not applicable)*/
246 │ STSAFEA_EXEC_TIME_DEFAULT, /* Verify Password (Not applicable)*/
247 │ 25, /* Encrypt */
248 │ 26 /* Decrypt */
249 │ },
─────┴────────────────────────────────────────────
The implementation of
stsafea_extended_cmd_timings[218:259] for the STSAFE-A120 inservices/stsafea/stsafea_timings.cappears to be a direct copy-paste from the standard command timings (stsafea_cmd_timings[91:212]).Extended commands and standard commands do not share the same internal processing logic or execution flow. By defining them with identical timing constants, the driver enforces an inaccurate model of the device's state machine.