aboutsummaryrefslogtreecommitdiff
path: root/src/security/tpm/tss/tcg-2.0/tss_structures.h
diff options
context:
space:
mode:
authorFrans Hendriks <fhendriks@eltan.com>2019-09-04 10:57:30 +0200
committerPatrick Georgi <pgeorgi@google.com>2019-09-05 14:54:52 +0000
commitfdb9805d6884090fd7bf62dbdf9c858692e55fb4 (patch)
tree79231a394e2e5004baae39617efb6b81599b9b0b /src/security/tpm/tss/tcg-2.0/tss_structures.h
parent563b8694d247b718f6288b54f0d4055cefec40a8 (diff)
security/tpm/tss/tcg-2.0: Add multi digits support to tlcl_extend()
To support multi digists the tlcl_extend() for TPM2 expects TPML_DIGEST_VALUE pointer as input argument. BUG=N/A TEST=Build binary and verified logging on Facebook FBG-1701 Change-Id: I8d86c41c23e4e93a84e0527d7cddcfd30d5d8394 Signed-off-by: Frans Hendriks <fhendriks@eltan.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/33252 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lance Zhao <lance.zhao@gmail.com>
Diffstat (limited to 'src/security/tpm/tss/tcg-2.0/tss_structures.h')
-rw-r--r--src/security/tpm/tss/tcg-2.0/tss_structures.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/security/tpm/tss/tcg-2.0/tss_structures.h b/src/security/tpm/tss/tcg-2.0/tss_structures.h
index 6a017bbb9d..1530613226 100644
--- a/src/security/tpm/tss/tcg-2.0/tss_structures.h
+++ b/src/security/tpm/tss/tcg-2.0/tss_structures.h
@@ -97,6 +97,12 @@ struct tpm_header {
space is defined by the lower 16 bits. */
#define TPM_CC_VENDOR_BIT_MASK 0x20000000
+/* Table 15 - TPM_RC Constants (Actions) */
+#define RC_FMT1 (TPM_RC)(0x080)
+#define TPM_RC_HASH (TPM_RC)(RC_FMT1 + 0x003)
+#define TPM_RC_P (TPM_RC)(0x040)
+#define TPM_RC_N_MASK (TPM_RC)(0xF00)
+
/* Startup values. */
#define TPM_SU_CLEAR 0
#define TPM_SU_STATE 1
@@ -311,12 +317,13 @@ typedef union {
TPM2B b;
} TPM2B_MAX_NV_BUFFER;
-/*
- * This is a union, but as of now we support just one digest - sha256, so
- * there is just one element.
- */
+/* Table 66 - TPMU_HA Union */
typedef union {
- uint8_t sha256[SHA256_DIGEST_SIZE];
+ uint8_t sha1[SHA1_DIGEST_SIZE];
+ uint8_t sha256[SHA256_DIGEST_SIZE];
+ uint8_t sm3_256[SM3_256_DIGEST_SIZE];
+ uint8_t sha384[SHA384_DIGEST_SIZE];
+ uint8_t sha512[SHA512_DIGEST_SIZE];
} TPMU_HA;
typedef struct {
@@ -324,9 +331,10 @@ typedef struct {
TPMU_HA digest;
} TPMT_HA;
+/* Table 96 -- TPML_DIGEST_VALUES Structure <I/O> */
typedef struct {
uint32_t count;
- TPMT_HA digests[1]; /* Limit max number of hashes to 1. */
+ TPMT_HA digests[HASH_COUNT];
} TPML_DIGEST_VALUES;
struct nv_read_response {