Skip to content

Commit 2f43ace

Browse files
authored
fix(legacy):configure se at device test stage (#313)
1 parent 29aee7c commit 2f43ace

File tree

4 files changed

+30
-1
lines changed

4 files changed

+30
-1
lines changed

legacy/atca/atca_api.c

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,10 @@ void atca_config_check(void) {
300300
memcpy(serial_no + ATECC608_SN1_SIZE, atca_configuration.sn2,
301301
ATECC608_SN2_SIZE);
302302

303+
if (!flash_otp_is_locked(FLASH_OTP_BLOCK_608_SERIAL)) {
304+
atca_assert(ATCA_BAD_PARAM, "OTP data err");
305+
}
306+
303307
if (check_all_ones(pair_info->serial, sizeof(pair_info->serial))) {
304308
atca_assert(ATCA_BAD_PARAM, "OTP data err");
305309
} else {
@@ -308,9 +312,29 @@ void atca_config_check(void) {
308312
}
309313
}
310314

315+
if (!flash_otp_is_locked(FLASH_OTP_BLOCK_608_PROTECT_KEY)) {
316+
atca_assert(ATCA_BAD_PARAM, "OTP data err");
317+
}
318+
311319
if (check_all_ones(pair_info->protect_key, sizeof(pair_info->protect_key))) {
312320
atca_assert(ATCA_BAD_PARAM, "OTP data err");
313321
}
322+
323+
if (!flash_otp_is_locked(FLASH_OTP_BLOCK_608_INIT_PIN)) {
324+
atca_assert(ATCA_BAD_PARAM, "OTP data err");
325+
}
326+
327+
if (check_all_ones(pair_info->init_pin, sizeof(pair_info->init_pin))) {
328+
atca_assert(ATCA_BAD_PARAM, "OTP data err");
329+
}
330+
331+
if (!flash_otp_is_locked(FLASH_OTP_BLOCK_608_MIX_PIN)) {
332+
atca_assert(ATCA_BAD_PARAM, "OTP data err");
333+
}
334+
335+
if (check_all_ones(pair_info->hash_mix, sizeof(pair_info->hash_mix))) {
336+
atca_assert(ATCA_BAD_PARAM, "OTP data err");
337+
}
314338
}
315339

316340
ATCA_STATUS atca_nonce_tempkey(uint8_t *temp_key) {

legacy/atca/atca_api.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ ATCA_STATUS atca_sha_hmac(const uint8_t *data, size_t data_size,
2828
uint16_t key_slot, uint8_t *digest);
2929
void atca_pair_unlock(void);
3030
void atca_config_init(void);
31+
void atca_config_check(void);
3132
void atca_read_slot_data(uint16_t key_id, uint8_t data[32]);
3233
void atca_update_counter(void);
3334
uint32_t atca_get_failed_counter(void);

legacy/firmware/device2.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "common.h"
66
#include "layout2.h"
77
#include "otp.h"
8+
#include "se_atca.h"
89
#include "util.h"
910
#include "w25qxx.h"
1011

@@ -24,6 +25,8 @@ void device_test(void) {
2425
if (flash_otp_is_locked(FLASH_OTP_FACTORY_TEST)) {
2526
return;
2627
}
28+
// configure se
29+
se_init();
2730
}
2831

2932
// LCD TEST

legacy/firmware/trezor.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
#if ONEKEY_MINI
4040
#include <libopencm3/stm32/rcc.h>
4141
#include <libopencm3/stm32/timer.h>
42+
#include "atca_api.h"
4243
#include "atca_hal.h"
4344
#include "device.h"
4445
#include "device2.h"
@@ -207,7 +208,7 @@ int main(void) {
207208
w25qxx_init();
208209
flash_enc_init();
209210
font_init();
210-
se_init();
211+
atca_config_check();
211212

212213
uint32_t idcode = *(uint32_t *)DBGMCU_IDCODE & 0xFFF;
213214
if (idcode == 0x411) {

0 commit comments

Comments
 (0)