Skip to content

Commit df9b97e

Browse files
committed
Add test case for early returns from test_wolfTPM2_EncryptSecret
1 parent d97d95d commit df9b97e

4 files changed

Lines changed: 75 additions & 1 deletion

File tree

tests/unit.log

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
wolfSSL Entering wolfCrypt_Init
2+
wolfSSL Entering wc_PubKeyPemToDer
3+
wolfSSL Entering PemToDer
4+
RNG_HEALTH_TEST_CHECK_SIZE = 128
5+
sizeof(seedB_data) = 128
6+
Test TPM Wrapper: Init: Passed
7+
Test TPM Wrapper: Open Existing: Passed
8+
Test TPM Wrapper: Get Capabilities: Passed
9+
Test TPM Wrapper: Get Random: Passed
10+
Test TPM Wrapper: PCR Select Array: Passed
11+
Test TPM2: Policy NULL Args: Passed
12+
Test TPM Wrapper: KDFa: Passed
13+
Test TPM Wrapper: Read Public Key: Passed
14+
Test TPM Wrapper: EncryptSecret: Passed
15+
Test TPM Wrapper: KeyBlob RSA: Passed
16+
Test TPM Wrapper: KeyBlob ECC: Passed
17+
Test TPM Wrapper: Sign/Verify (DigSz=20, CurveSz=32, Hash=SHA256, Flags=): Passed
18+
Test TPM Wrapper: Sign/Verify (DigSz=32, CurveSz=32, Hash=SHA256, Flags=): Passed
19+
Test TPM Wrapper: Sign/Verify (DigSz=48, CurveSz=32, Hash=SHA256, Flags=): Passed
20+
Test TPM Wrapper: Sign/Verify (DigSz=64, CurveSz=32, Hash=SHA256, Flags=): Passed
21+
Test TPM Wrapper: Sign/Verify (DigSz=20, CurveSz=48, Hash=SHA384, Flags=): Passed
22+
Test TPM Wrapper: Sign/Verify (DigSz=32, CurveSz=48, Hash=SHA384, Flags=): Passed
23+
Test TPM Wrapper: Sign/Verify (DigSz=48, CurveSz=48, Hash=SHA384, Flags=): Passed
24+
Test TPM Wrapper: Sign/Verify (DigSz=64, CurveSz=48, Hash=SHA384, Flags=): Passed
25+
Test TPM Wrapper: Sign/Verify (DigSz=20, CurveSz=66, Hash=SHA512, Flags=): Passed
26+
Test TPM Wrapper: Sign/Verify (DigSz=32, CurveSz=66, Hash=SHA512, Flags=): Passed
27+
Test TPM Wrapper: Sign/Verify (DigSz=48, CurveSz=66, Hash=SHA512, Flags=): Passed
28+
Test TPM Wrapper: Sign/Verify (DigSz=64, CurveSz=66, Hash=SHA512, Flags=): Passed
29+
Test ST33 Firmware Upgrade: API Availability: Passed
30+
Test TPM Wrapper: Cleanup: Passed
31+
Test TPM Wrapper: Thread Local Storage Passed
32+
PASS tests/unit.test (exit status: 0)

tests/unit.trs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
:test-result: PASS
2+
:global-test-result: PASS
3+
:recheck: no
4+
:copy-in-global-log: no

tests/unit_tests.c

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,43 @@ static void test_TPM2_Policy_NULL_Args(void)
429429
printf("Test TPM2:\t\tPolicy NULL Args:\tPassed\n");
430430
}
431431

432+
static void test_wolfTPM2_EncryptSecret(void)
433+
{
434+
int rc;
435+
WOLFTPM2_DEV dev;
436+
WOLFTPM2_KEY tpmKey;
437+
TPM2B_DATA data;
438+
TPM2B_ENCRYPTED_SECRET secret;
439+
440+
XMEMSET(&tpmKey, 0, sizeof(tpmKey));
441+
XMEMSET(&data, 0, sizeof(data));
442+
XMEMSET(&secret, 0, sizeof(secret));
443+
444+
rc = wolfTPM2_Init(&dev, TPM2_IoCb, NULL);
445+
AssertIntEQ(rc, 0);
446+
447+
/* Test NULL tpmKey returns success (unsalted session) */
448+
rc = wolfTPM2_EncryptSecret(&dev, NULL, &data, &secret, "SECRET");
449+
AssertIntEQ(rc, TPM_RC_SUCCESS);
450+
451+
/* Test NULL dev returns BAD_FUNC_ARG */
452+
rc = wolfTPM2_EncryptSecret(NULL, &tpmKey, &data, &secret, "SECRET");
453+
AssertIntEQ(rc, BAD_FUNC_ARG);
454+
455+
/* Test NULL data returns BAD_FUNC_ARG */
456+
rc = wolfTPM2_EncryptSecret(&dev, &tpmKey, NULL, &secret, "SECRET");
457+
AssertIntEQ(rc, BAD_FUNC_ARG);
458+
459+
/* Test NULL secret returns BAD_FUNC_ARG */
460+
rc = wolfTPM2_EncryptSecret(&dev, &tpmKey, &data, NULL, "SECRET");
461+
AssertIntEQ(rc, BAD_FUNC_ARG);
462+
463+
wolfTPM2_Cleanup(&dev);
464+
465+
printf("Test TPM Wrapper:\tEncryptSecret:\t%s\n",
466+
rc == BAD_FUNC_ARG ? "Passed" : "Failed");
467+
}
468+
432469
static void test_wolfTPM2_Cleanup(void)
433470
{
434471
int rc;
@@ -1047,6 +1084,7 @@ int unit_tests(int argc, char *argv[])
10471084
test_wolfTPM_ImportPublicKey();
10481085
test_wolfTPM2_PCRPolicy();
10491086
#endif
1087+
test_wolfTPM2_EncryptSecret();
10501088
test_wolfTPM2_KeyBlob(TPM_ALG_RSA);
10511089
test_wolfTPM2_KeyBlob(TPM_ALG_ECC);
10521090
#if !defined(WOLFTPM2_NO_WOLFCRYPT) && defined(HAVE_ECC) && \

wolftpm/tpm2_wrap.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3402,7 +3402,7 @@ WOLFTPM_API int wolfTPM2_ChangeHierarchyAuth(WOLFTPM2_DEV* dev, WOLFTPM2_SESSION
34023402
#define wolfTPM2_GetCurveSize TPM2_GetCurveSize
34033403

34043404
/* for encrypting secrets (like salt) used in auth sessions and external key import */
3405-
WOLFTPM_LOCAL int wolfTPM2_EncryptSecret(WOLFTPM2_DEV* dev, const WOLFTPM2_KEY* tpmKey,
3405+
WOLFTPM_API int wolfTPM2_EncryptSecret(WOLFTPM2_DEV* dev, const WOLFTPM2_KEY* tpmKey,
34063406
TPM2B_DATA *secret, TPM2B_ENCRYPTED_SECRET *encSecret, const char* label);
34073407

34083408

0 commit comments

Comments
 (0)