Hi Sean,

On Fri, Aug 04, 2023 at 04:33:56PM -0700, [email protected] wrote:
> From: Dhananjay Phadke <[email protected]>
>
> Add support for KASLR seed from TPM device. Invokes tpm_get_random()
> API to read 8-bytes of random bytes for KASLR.

Can you elaborate a bit more why you specifically need an RNG from the TPM?

>
> Signed-off-by: Dhananjay Phadke <[email protected]>
> Signed-off-by: Drew Kluemke <[email protected]>
> Signed-off-by: Sean Edmond <[email protected]>
> ---
>  boot/image-fdt.c      |  3 +++
>  common/fdt_support.c  | 39 ++++++++++++++++++++++++++++++++++++++-
>  include/fdt_support.h |  1 +
>  lib/Kconfig           |  9 +++++++++
>  4 files changed, 51 insertions(+), 1 deletion(-)
>
> diff --git a/boot/image-fdt.c b/boot/image-fdt.c
> index f10200f647..127443963e 100644
> --- a/boot/image-fdt.c
> +++ b/boot/image-fdt.c
> @@ -624,6 +624,9 @@ int image_setup_libfdt(struct bootm_headers *images, void 
> *blob,
>               goto err;
>       }
>
> +     if (IS_ENABLED(CONFIG_KASLR_TPM_SEED))
> +             fdt_tpm_kaslr_seed(blob);

So, why can't we just add entropy from any available RNG? In Arm world we
could have TF-A, OP-TEE, an RNG hardware or a TPM capable of doing that (or
all of them).

Can't we just do
platform_get_rng_device(&dev);
dm_rng_read(....);

And even if we specifically need an RNG from a TPM, I think it's better to
find a way and teach platform_get_rng_device() to return a list of devices
in priority instead of hardcoding that.

[...]

Thanks
/Ilias

Reply via email to