We're exploring Secure Boot capabilities in ESP32-C5. We've checked guidelines at
https://docs.espressif.com/projects/esp ... ot-v2.html
Following workflow at:
https://docs.espressif.com/projects/esp ... flows.html
We're trying to enable secure boot. For doing that we flashed following parameters using espefuse.py
There are several flashed blocks but we're right now testing BLOCK4 (BLOCK_KEY0)Run "summary" command
EFUSE_NAME (Block) Description
=
[Meaningful Value] [Readable/Writeable] (Hex Value)
Security fuses:
SECURE_BOOT_EN (BLOCK)
Represents whether secure boot is enabled or disab = True R/W (@b1) led.\\ 1: enabled\\ 0: disabled\\
BLOCK_KEY (BLOCK4)
Purpose: SECURE_BOOT_DIGESTO
Key or user data
= 47 7e a3 73 be 9f f1 a8 b9 7c be 31 4d 3c ec bc a7 24 25 cf 5c cb d2 78 3d d6 do 21 c4 05 fØ 5d R/W
BLOCK KEY1 (BLOCKS)
Purpose: SECURE_BOOT_DIGEST1
Key1 or user data
3b
77
= 77 7f f7 73 f7 df f1 b8 bb 7d bf b7 ef fe ed fc ff a7 77 cf dc eb fe fb bf d7 fc 3b dd af ff dd R/W BLOCK_KEY2 (BLOCK6)
Purpose: SECURE_BOOT_DIGEST2
Key2 or user data
= 35 79 55 11 e7 ca 80 b8 b2 35 35 96 a7 ca 21 4c 7a a3 52 83 cc 61 fc c3 87 d1 6c la 9d aa ff 89 R/W
After that we have signed the bootloader binary and our app binary with the same key as the block key 0:
And we have flashed the espressif-c5 with the signed binaries. But when we check the output, we have seen that it gets stuck before jumping to second bootloader: After that some questions arise.
1. If we have different keys, should we sign our binaries with all keys? (e.g. in the example before we have 3 ECDSA keys on secure blocks, so should we sign the binaries three times?)
2. On the output of the espressif-c5, we can see that are checking RSA, should we sign the bootloader with RSA algorithms ? Does the first bootloader only check RSA keys ? Can first bootloader check ECDSA signs ?
3. Which should be the states of the following EFUSE? (ECDSA_DISABLE_P192, DIS_DIRECT_BOOT, SECURE_BOOT_DISABLE_FAST_WAKE)
4. On menu config we can see that the secure boot version depends on the espressif SoC, using espressif esp32c5 we understand that we should use v2. Is that right ?
5. Is the configuration we have on menu config is correct? Should miss something?
