Skip to content

Commit e84f990

Browse files
committed
Improve the detection of maximum HASH_COUNT. ZD 20193.
1 parent dcaf96b commit e84f990

3 files changed

Lines changed: 44 additions & 1 deletion

File tree

tests/unit_tests.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,12 @@ static void test_TPM2_PCRSel(void)
294294
TPM2_SetupPCRSelArray(&pcr, TPM_ALG_SHA384, pcrArray, 1);
295295
pcrArray[0] = 4;
296296
TPM2_SetupPCRSelArray(&pcr, TPM_ALG_SHA512, pcrArray, 1);
297+
pcrArray[0] = 5;
298+
TPM2_SetupPCRSelArray(&pcr, TPM_ALG_SHA3_256, pcrArray, 1);
299+
pcrArray[0] = 6;
300+
TPM2_SetupPCRSelArray(&pcr, TPM_ALG_SHA3_384, pcrArray, 1);
301+
pcrArray[0] = 7;
302+
TPM2_SetupPCRSelArray(&pcr, TPM_ALG_SHA3_512, pcrArray, 1);
297303
if (pcr.count != HASH_COUNT) {
298304
rc = BAD_FUNC_ARG;
299305
}

wolftpm/tpm2.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,11 @@ typedef enum {
107107
TPM_ALG_ECC = 0x0023,
108108
TPM_ALG_SYMCIPHER = 0x0025,
109109
TPM_ALG_CAMELLIA = 0x0026,
110+
TPM_ALG_SHA3_256 = 0x0027,
111+
TPM_ALG_SHA3_384 = 0x0028,
112+
TPM_ALG_SHA3_512 = 0x0029,
113+
TPM_ALG_SHAKE128 = 0x002A,
114+
TPM_ALG_SHAKE256 = 0x002B,
110115
TPM_ALG_CTR = 0x0040,
111116
TPM_ALG_OFB = 0x0041,
112117
TPM_ALG_CBC = 0x0042,

wolftpm/tpm2_types.h

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -654,7 +654,39 @@ typedef int64_t INT64;
654654
#define MAX_CAP_HANDLES (MAX_CAP_DATA / sizeof(TPM_HANDLE))
655655
#endif
656656
#ifndef HASH_COUNT
657-
#define HASH_COUNT (2) /* SHA1 and SHA256 */
657+
/* Calculate hash count based on wolfCrypt enables */
658+
#ifndef NO_SHA
659+
#define HASH_COUNT_SHA1 1
660+
#else
661+
#define HASH_COUNT_SHA1 0
662+
#endif
663+
664+
#ifndef NO_SHA256
665+
#define HASH_COUNT_SHA256 1
666+
#else
667+
#define HASH_COUNT_SHA256 0
668+
#endif
669+
670+
#ifdef WOLFSSL_SHA384
671+
#define HASH_COUNT_SHA384 1
672+
#else
673+
#define HASH_COUNT_SHA384 0
674+
#endif
675+
676+
#ifdef WOLFSSL_SHA512
677+
#define HASH_COUNT_SHA512 1
678+
#else
679+
#define HASH_COUNT_SHA512 0
680+
#endif
681+
682+
#ifdef WOLFSSL_SHA3
683+
#define HASH_COUNT_SHA3 1
684+
#else
685+
#define HASH_COUNT_SHA3 0
686+
#endif
687+
688+
#define HASH_COUNT (HASH_COUNT_SHA1 + HASH_COUNT_SHA256 + \
689+
HASH_COUNT_SHA384 + HASH_COUNT_SHA512 + HASH_COUNT_SHA3)
658690
#endif
659691
#ifndef MAX_CAP_ALGS
660692
#define MAX_CAP_ALGS (MAX_CAP_DATA / sizeof(TPMS_ALG_PROPERTY))

0 commit comments

Comments
 (0)