+ TF-A ML (for the benefit of other trying to use firmware encryption feature)

Hi Promod,

On Fri, 8 Oct 2021 at 00:09, pramod kumar <pramod.jnumca04@gmail.com> wrote:
Hi Sumit,

This is Pramod, Presently working in Amazon Lab126. I'm working in ATF and was going through your patch which provides f/w image encryption/decryption support.

commit 7cda17bb0f92db39d123a4f2a1732c9978556453
Author: Sumit Garg <sumit.garg@linaro.org>
Date:   Fri Nov 15 10:43:00 2019 +0530

    drivers: crypto: Add authenticated decryption framework
   
    Add framework for autheticated decryption of data. Currently this
    patch optionally imports mbedtls library as a backend if build option
    "DECRYPTION_SUPPORT = aes_gcm" is set to perform authenticated decryption
    using AES-GCM algorithm.
   
    Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
    Change-Id: I2966f0e79033151012bf4ffc66f484cd949e7271

I see that this support comes under DECRYPTION_SUPPORT macro hence can't be used dynamically.  I see the TBBR spec provides a flag for this which could be used to exercise this feature dynamically-
image.png


Just wanted to understand that did you see any limitation to use this flag for making this feature support dynamically? Or do you have any plan to push follow up patches for this?


Actually there are security concerns associated if we use an unsigned encryption flag in the header (see earlier discussions [1]).
 
If this feature is made available, with the help of "disable_auth" flag, BL1 would be able to boot plane images even when TRUSTED_BOARD_BOOT is enabled in development mode.

I agree here that it would be useful to have such a flag in development mode. For TRUSTED_BOARD_BOOT in development mode, I guess you are referring to DYN_DISABLE_AUTH. If yes then I think such a macro makes sense for encryption as well in order to disable decryption at runtime in development mode, patches are very much welcome.

[1] https://lists.trustedfirmware.org/pipermail/tf-a/2020-February/000288.html

-Sumit
 
Regards,
Pramod