>Since only a hash of the private key set is fused to the SRK
>registers, how are the public keys and signature from in the loaded
>image used to validate it?
>
[Platon] Fuses store a hash of the _public_ key, not the private key.
The private key is used only in signature creation, not signature
validation. SRK hash value protects the public key stored in CSF
from being modified by an attacker. Refer to LS1043RM, Sections 34.5.2 and
3.6 for details.
An explanation of RSA cryptosystem, including methods of signing documents/files and
subsequent signature verification, can be found here:
RSA (cryptosystem) - Wikipedia, the free encyclopedia
>** What is the next step here after generating the U-boot header?
>Where do the headers go? Do we just flash the new RCW and U-boot
>(with header)?
>
[Platon] All images, including CSFs, are programmed into the Flash at
the specified addresses.
>** Some parts of the documentation seem to reference them being
>prepended to the respective image (pg 799 of the reference manual):
>
[Platon] Headers and images they refer do not need to be adjacent.
CSF headers include pointers to the images they belong to.
>Further, the reference manual shows contradicting images for the
>partitioning of flash. The below image (pg 99 of the reference manual)
>shows the kernel being placed at 0x61100000 while the above shows 0x60A00000
>
[Platon] There is no contradiction. Flash maps for non-secure and secure
boot are different. If you are working with secure boot, use the map
specified in the Secure Boot ENablement chapter.
>I have also found references in this community that you must defined
>CONFIG_SECURE_BOOT in U-boot as well. Is this a requirement?
>
[Platon] Yes. Make ls1043ardb_nor_SECURE_BOOT_defconfig or add
ls1043ardb_nor_SECURE_BOOT to your UBOOT_MACHINES. See your
SDK Manual, Section 2.2.1 for details. This will build u-Boot with
all necessary configuration macro definitions for secure boot.
>If I am incorrect above in my summary, how can one evaluate secure
>boot without permanently modifying the SRK registers with the key
>hashes? What steps have I missed?
>
[Platon] There is no way to do secure boot with no SRK and OTPMK programmed.
Note that you can't program fuse mirror registers with PBI because
they are blocked in secure boot mode, see LS1043ARM, Section 27.4.2.1
>Are the required PBI commands implicit in the generated RCW or is
>this an additional step? If so, where can I find information on this?
>
[Platon] See LS1043ARM, Section 31.4.13. Unpack Yocto package called
rcw and inspect *sben*.rcw files to see what is added for secure boot.
Have a great day,
Platon
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------