aboutsummaryrefslogtreecommitdiff
path: root/src/security/tpm/tss/tcg-2.0/tss.c
diff options
context:
space:
mode:
authorFrans Hendriks <fhendriks@eltan.com>2019-06-28 10:18:22 +0200
committerFelix Held <felix-coreboot@felixheld.de>2019-09-03 23:48:58 +0000
commit7e220cac2d9a7065442ea0d757e424b17cd06961 (patch)
tree2aac622ab2f97f44b85d0afbf54126b43885b940 /src/security/tpm/tss/tcg-2.0/tss.c
parent63f73f2a60ab6ed8b45c0e8d3ad985f8fa4184ab (diff)
security/tpm/tss/tcg-2.0: Use tlcl_get_hash_size_from_algo() for hash size
mashal_TPMT_HA() uses size of SHA-256 hash. Use tlcll_get_hash_size_from_algo() to determince the hash size. BUG=N/A TEST=Build binary and verified logging on Facebook FBG-1701 Change-Id: I739260e13e9cd10a61d52e13e8741b12ec868d7f Signed-off-by: Frans Hendriks <fhendriks@eltan.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/33251 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lance Zhao <lance.zhao@gmail.com> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Diffstat (limited to 'src/security/tpm/tss/tcg-2.0/tss.c')
-rw-r--r--src/security/tpm/tss/tcg-2.0/tss.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/security/tpm/tss/tcg-2.0/tss.c b/src/security/tpm/tss/tcg-2.0/tss.c
index 08a7caa1a9..16e40fe569 100644
--- a/src/security/tpm/tss/tcg-2.0/tss.c
+++ b/src/security/tpm/tss/tcg-2.0/tss.c
@@ -352,6 +352,38 @@ uint32_t tlcl_define_space(uint32_t space_index, size_t space_size,
}
}
+uint16_t tlcl_get_hash_size_from_algo(TPMI_ALG_HASH hash_algo)
+{
+ uint16_t value;
+
+ switch (hash_algo) {
+ case TPM_ALG_ERROR:
+ value = 1;
+ break;
+ case TPM_ALG_SHA1:
+ value = SHA1_DIGEST_SIZE;
+ break;
+ case TPM_ALG_SHA256:
+ value = SHA256_DIGEST_SIZE;
+ break;
+ case TPM_ALG_SHA384:
+ value = SHA384_DIGEST_SIZE;
+ break;
+ case TPM_ALG_SHA512:
+ value = SHA512_DIGEST_SIZE;
+ break;
+ case TPM_ALG_SM3_256:
+ value = SM3_256_DIGEST_SIZE;
+ break;
+ default:
+ printk(BIOS_SPEW, "%s: unknown hash algorithm %d\n", __func__,
+ hash_algo);
+ value = 0;
+ };
+
+ return value;
+}
+
uint32_t tlcl_disable_platform_hierarchy(void)
{
struct tpm2_response *response;