summaryrefslogtreecommitdiff
path: root/src/security/tpm/tspi/tspi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/security/tpm/tspi/tspi.c')
-rw-r--r--src/security/tpm/tspi/tspi.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/security/tpm/tspi/tspi.c b/src/security/tpm/tspi/tspi.c
index 966b8b7c77..795016e725 100644
--- a/src/security/tpm/tspi/tspi.c
+++ b/src/security/tpm/tspi/tspi.c
@@ -210,11 +210,28 @@ uint32_t tpm_extend_pcr(int pcr, enum vb2_hash_algorithm digest_algo,
uint8_t *digest, size_t digest_len, const char *name)
{
uint32_t result;
+ uint16_t algorithm = 0;
if (!digest)
return TPM_E_IOERROR;
- result = tlcl_extend(pcr, digest, NULL);
+#if CONFIG(TPM2)
+ switch (digest_algo) {
+ case VB2_HASH_SHA1:
+ algorithm = TPM_ALG_SHA1;
+ break;
+ case VB2_HASH_SHA256:
+ algorithm = TPM_ALG_SHA256;
+ break;
+ case VB2_HASH_SHA512:
+ algorithm = TPM_ALG_SHA512;
+ break;
+ default:
+ return TPM_E_HASH_ERROR;
+ }
+#endif
+
+ result = tlcl_extend(pcr, algorithm, digest, digest_len, NULL);
if (result != TPM_SUCCESS)
return result;