[PATCH 11/11] tpm: add kconfig control in tcg2_create_digest()

Ilias Apalodimas ilias.apalodimas at linaro.org
Tue Dec 24 07:57:29 CET 2024


On Mon, 23 Dec 2024 at 16:49, Raymond Mao <raymond.mao at linaro.org> wrote:
>
> To allow disabling algorithms for tcg2, in function
> tcg2_create_digest(), each hash algorithm operations should under
> the hash kconfig control to avoid building errors when the algorithm
> is disabled.
>
> Signed-off-by: Raymond Mao <raymond.mao at linaro.org>
> ---
>  lib/tpm_tcg2.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
>
> diff --git a/lib/tpm_tcg2.c b/lib/tpm_tcg2.c
> index 64563d7871..85f9d3c9c5 100644
> --- a/lib/tpm_tcg2.c
> +++ b/lib/tpm_tcg2.c
> @@ -96,9 +96,15 @@ int tcg2_create_digest(struct udevice *dev, const u8 *input, u32 length,
>  {
>         struct tpm_chip_priv *priv = dev_get_uclass_priv(dev);
>         u8 final[sizeof(union tpmu_ha)];
> +#if IS_ENABLED(CONFIG_SHA256)
>         sha256_context ctx_256;
> +#endif
> +#if IS_ENABLED(CONFIG_SHA512)
>         sha512_context ctx_512;
> +#endif
> +#if IS_ENABLED(CONFIG_SHA1)
>         sha1_context ctx;
> +#endif
>         size_t i;
>         u32 len;
>
> @@ -106,30 +112,38 @@ int tcg2_create_digest(struct udevice *dev, const u8 *input, u32 length,
>         for (i = 0; i < priv->active_bank_count; i++) {
>
>                 switch (priv->active_banks[i]) {
> +#if IS_ENABLED(CONFIG_SHA1)
>                 case TPM2_ALG_SHA1:
>                         sha1_starts(&ctx);
>                         sha1_update(&ctx, input, length);
>                         sha1_finish(&ctx, final);
>                         len = TPM2_SHA1_DIGEST_SIZE;
>                         break;
> +#endif
> +#if IS_ENABLED(CONFIG_SHA256)
>                 case TPM2_ALG_SHA256:
>                         sha256_starts(&ctx_256);
>                         sha256_update(&ctx_256, input, length);
>                         sha256_finish(&ctx_256, final);
>                         len = TPM2_SHA256_DIGEST_SIZE;
>                         break;
> +#endif
> +#if IS_ENABLED(CONFIG_SHA384)
>                 case TPM2_ALG_SHA384:
>                         sha384_starts(&ctx_512);
>                         sha384_update(&ctx_512, input, length);
>                         sha384_finish(&ctx_512, final);
>                         len = TPM2_SHA384_DIGEST_SIZE;
>                         break;
> +#endif
> +#if IS_ENABLED(CONFIG_SHA512)
>                 case TPM2_ALG_SHA512:
>                         sha512_starts(&ctx_512);
>                         sha512_update(&ctx_512, input, length);
>                         sha512_finish(&ctx_512, final);
>                         len = TPM2_SHA512_DIGEST_SIZE;
>                         break;
> +#endif
>                 default:
>                         printf("%s: unsupported algorithm %x\n", __func__,
>                                priv->active_banks[i]);
> --
> 2.25.1
>

Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>


More information about the U-Boot mailing list