[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