@@ -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+
432469static 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 ) && \
0 commit comments