Browse Source

CryptoPkg/Test/UnitTest/Library/BaseCryptLib: Unit test fixes

* Update ImageTimeStampTest to return UNIT_TEST_PASSED instead of
  Status.  On success Status is TRUE(1), which was returning a unit
  test status of UNIT_TEST_ERROR_PREREQUISITE_NOT_MET.
* Update HmacTests to use the *Free() service from the HMAC family
  instead of FreePool().  Using FreePool() generates ASSERT() because
  the context being freed was not allocated using AllocatePool().

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Xiaoyu Lu <xiaoyu1.lu@intel.com>
Cc: Guomin Jiang <guomin.jiang@intel.com>
Cc: Christopher Zurcher <christopher.zurcher@microsoft.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Michael D Kinney 1 year ago
parent
commit
961fadf60c

+ 12 - 5
CryptoPkg/Test/UnitTest/Library/BaseCryptLib/HmacTests.c

@@ -87,6 +87,12 @@ VOID *
   VOID
   );
 
+typedef
+VOID
+(EFIAPI *EFI_HMAC_FREE)(
+  IN VOID  *HashContext
+  );
+
 typedef
 BOOLEAN
 (EFIAPI *EFI_HMAC_INIT)(
@@ -113,6 +119,7 @@ BOOLEAN
 typedef struct {
   UINT32             DigestSize;
   EFI_HMAC_NEW       HmacNew;
+  EFI_HMAC_FREE      HmacFree;
   EFI_HMAC_INIT      HmacInit;
   EFI_HMAC_UPDATE    HmacUpdate;
   EFI_HMAC_FINAL     HmacFinal;
@@ -123,10 +130,10 @@ typedef struct {
 } HMAC_TEST_CONTEXT;
 
 // These functions have been deprecated but they've been left commented out for future reference
-// HMAC_TEST_CONTEXT       mHmacMd5TestCtx    = {MD5_DIGEST_SIZE,    HmacMd5New,    HmacMd5SetKey,    HmacMd5Update,    HmacMd5Final,    HmacMd5Key,    sizeof(HmacMd5Key),    HmacMd5Digest};
-// HMAC_TEST_CONTEXT       mHmacSha1TestCtx   = {SHA1_DIGEST_SIZE,   HmacSha1New,   HmacSha1SetKey,   HmacSha1Update,   HmacSha1Final,   HmacSha1Key,   sizeof(HmacSha1Key),   HmacSha1Digest};
-HMAC_TEST_CONTEXT  mHmacSha256TestCtx = { SHA256_DIGEST_SIZE, HmacSha256New, HmacSha256SetKey, HmacSha256Update, HmacSha256Final, HmacSha256Key, sizeof (HmacSha256Key), HmacSha256Digest };
-HMAC_TEST_CONTEXT  mHmacSha384TestCtx = { SHA384_DIGEST_SIZE, HmacSha384New, HmacSha384SetKey, HmacSha384Update, HmacSha384Final, HmacSha384Key, sizeof (HmacSha384Key), HmacSha384Digest };
+// HMAC_TEST_CONTEXT       mHmacMd5TestCtx    = {MD5_DIGEST_SIZE,    HmacMd5New,    HmacMd5Free,  HmacMd5SetKey,    HmacMd5Update,    HmacMd5Final,    HmacMd5Key,    sizeof(HmacMd5Key),    HmacMd5Digest};
+// HMAC_TEST_CONTEXT       mHmacSha1TestCtx   = {SHA1_DIGEST_SIZE,   HmacSha1New,   HmacSha1Free, HmacSha1SetKey,   HmacSha1Update,   HmacSha1Final,   HmacSha1Key,   sizeof(HmacSha1Key),   HmacSha1Digest};
+HMAC_TEST_CONTEXT  mHmacSha256TestCtx = { SHA256_DIGEST_SIZE, HmacSha256New, HmacSha256Free, HmacSha256SetKey, HmacSha256Update, HmacSha256Final, HmacSha256Key, sizeof (HmacSha256Key), HmacSha256Digest };
+HMAC_TEST_CONTEXT  mHmacSha384TestCtx = { SHA384_DIGEST_SIZE, HmacSha384New, HmacSha384Free, HmacSha384SetKey, HmacSha384Update, HmacSha384Final, HmacSha384Key, sizeof (HmacSha384Key), HmacSha384Digest };
 
 UNIT_TEST_STATUS
 EFIAPI
@@ -155,7 +162,7 @@ TestVerifyHmacCleanUp (
 
   HmacTestContext = Context;
   if (HmacTestContext->HmacCtx != NULL) {
-    FreePool (HmacTestContext->HmacCtx);
+    HmacTestContext->HmacFree (HmacTestContext->HmacCtx);
   }
 }
 

+ 1 - 1
CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TSTests.c

@@ -322,7 +322,7 @@ TestVerifyImageTimestampVerify (
   UT_ASSERT_EQUAL (SigningTime.Minute, 50);
   UT_ASSERT_EQUAL (SigningTime.Second, 3);
 
-  return Status;
+  return UNIT_TEST_PASSED;
 }
 
 TEST_DESC  mImageTimestampTest[] = {