+ return (UINTN) HMAC_MD5_CTX_SIZE;\r
+}\r
+\r
+/**\r
+ Allocates and initializes one HMAC_CTX context for subsequent HMAC-MD5 use.\r
+\r
+ @return Pointer to the HMAC_CTX context that has been initialized.\r
+ If the allocations fails, HmacMd5New() returns NULL.\r
+\r
+**/\r
+VOID *\r
+EFIAPI\r
+HmacMd5New (\r
+ VOID\r
+ )\r
+{\r
+ //\r
+ // Allocates & Initializes HMAC_CTX Context by OpenSSL HMAC_CTX_new()\r
+ //\r
+ return (VOID *) HMAC_CTX_new ();\r
+}\r
+\r
+/**\r
+ Release the specified HMAC_CTX context.\r
+\r
+ @param[in] HmacMd5Ctx Pointer to the HMAC_CTX context to be released.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+HmacMd5Free (\r
+ IN VOID *HmacMd5Ctx\r
+ )\r
+{\r
+ //\r
+ // Free OpenSSL HMAC_CTX Context\r
+ //\r
+ HMAC_CTX_free ((HMAC_CTX *)HmacMd5Ctx);\r