mirror of
https://github.com/polhenarejos/pico-keys-sdk
synced 2026-05-28 17:11:23 +02:00
Fix secure otp build for non rp2350.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
@@ -168,8 +168,10 @@ int otp_enable_secure_boot(uint8_t bootkey, bool secure_lock) {
|
|||||||
uint8_t flagsp2[] = { page2v, page2v, page2v, 0x00 };
|
uint8_t flagsp2[] = { page2v, page2v, page2v, 0x00 };
|
||||||
PICOKEY_CHECK(otp_write_data_raw(OTP_DATA_PAGE2_LOCK1_ROW, flagsp2, sizeof(flagsp2)));
|
PICOKEY_CHECK(otp_write_data_raw(OTP_DATA_PAGE2_LOCK1_ROW, flagsp2, sizeof(flagsp2)));
|
||||||
}
|
}
|
||||||
|
#elif defined(ESP_PLATFORM)
|
||||||
|
// TODO: Implement secure boot for ESP32-S3
|
||||||
#endif // PICO_RP2350
|
#endif // PICO_RP2350
|
||||||
|
goto err;
|
||||||
err:
|
err:
|
||||||
if (ret != PICOKEY_OK) {
|
if (ret != PICOKEY_OK) {
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
@@ -32,8 +32,6 @@ extern uint8_t* otp_buffer_raw(uint16_t row);
|
|||||||
extern bool is_empty_otp_buffer(uint16_t row, uint16_t len);
|
extern bool is_empty_otp_buffer(uint16_t row, uint16_t len);
|
||||||
extern int otp_write_data(uint16_t row, uint8_t *data, uint16_t len);
|
extern int otp_write_data(uint16_t row, uint8_t *data, uint16_t len);
|
||||||
extern int otp_write_data_raw(uint16_t row, uint8_t *data, uint16_t len);
|
extern int otp_write_data_raw(uint16_t row, uint8_t *data, uint16_t len);
|
||||||
extern int otp_enable_secure_boot(uint8_t bootkey, bool secure_lock);
|
|
||||||
extern void init_otp_files();
|
|
||||||
|
|
||||||
#elif defined(ESP_PLATFORM)
|
#elif defined(ESP_PLATFORM)
|
||||||
|
|
||||||
@@ -44,6 +42,9 @@ extern void init_otp_files();
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern int otp_enable_secure_boot(uint8_t bootkey, bool secure_lock);
|
||||||
|
extern void init_otp_files();
|
||||||
|
|
||||||
extern const uint8_t *otp_key_1;
|
extern const uint8_t *otp_key_1;
|
||||||
extern const uint8_t *otp_key_2;
|
extern const uint8_t *otp_key_2;
|
||||||
|
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ int cmd_write() {
|
|||||||
return SW_OK();
|
return SW_OK();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(PICO_RP2350) || defined(ESP_PLATFORM)
|
||||||
int cmd_secure() {
|
int cmd_secure() {
|
||||||
if (apdu.nc != 0) {
|
if (apdu.nc != 0) {
|
||||||
return SW_WRONG_LENGTH();
|
return SW_WRONG_LENGTH();
|
||||||
@@ -92,13 +93,16 @@ int cmd_secure() {
|
|||||||
}
|
}
|
||||||
return SW_OK();
|
return SW_OK();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#define INS_WRITE 0x1C
|
#define INS_WRITE 0x1C
|
||||||
#define INS_SECURE 0x1D
|
#define INS_SECURE 0x1D
|
||||||
|
|
||||||
static const cmd_t cmds[] = {
|
static const cmd_t cmds[] = {
|
||||||
{ INS_WRITE, cmd_write },
|
{ INS_WRITE, cmd_write },
|
||||||
|
#if defined(PICO_RP2350) || defined(ESP_PLATFORM)
|
||||||
{ INS_SECURE, cmd_secure },
|
{ INS_SECURE, cmd_secure },
|
||||||
|
#endif
|
||||||
{ 0x00, 0x0 }
|
{ 0x00, 0x0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user