On Mon, 23 Dec 2024 at 16:49, Raymond Mao <[email protected]> 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 <[email protected]> > --- > 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 <[email protected]>

