Good day experts,
My question is with regards to creating a secure secondary bootloader for the secure version of the C6748 DSP.
I have a pretty good understanding of the whole binding process with a secure C6748, i.e. the user selects the CEK (with which the application image is encrypted), puts it in an unencrypted software header, gives it to the secure kernel, which then encrypts it with the KEK (unique to every secure C6748 and unknown to the outside world). At boot time, the secure kernel then decrypts the software header with the KEK, extracts the user defined CEK and uses it to decrypt the application and then boots the application. In this process neither the KEK nor the CEK is revealed and this therefore binds the application to a specific secure C6748 for as long as the CEK is not revealed through some other channel.
However, for a secondary bootloader this process is less clear to me. I need to use the secondary bootloader to boot the main application. I can bind the secondary bootloader application to a specific secure C6748 using the process described above, but how do I bind the actual main application to a specific secure C6748?
I can't simply embed a chosen main application CEK in the secondary bootloader, since it will be revealed in RAM when the secondary bootloader has booted.
Is it possible to encrypt both the secondary bootloader and the main application image with the same CEK and then use the secure kernel APIs from the secondary bootloader to decrypt the main application image?
Your advice would be greatly appreciated!