// MAC (Message Authentication Code) Primitive\r
//=====================================================================================\r
\r
-/**\r
- Allocates and initializes one HMAC_CTX context for subsequent HMAC-MD5 use.\r
-\r
- If this interface is not supported, then return NULL.\r
-\r
- @return Pointer to the HMAC_CTX context that has been initialized.\r
- If the allocations fails, HmacMd5New() returns NULL.\r
- @retval NULL This interface is not supported.\r
-\r
-**/\r
-VOID *\r
-EFIAPI\r
-HmacMd5New (\r
- VOID\r
- )\r
-{\r
- CALL_CRYPTO_SERVICE (HmacMd5New, (), NULL);\r
-}\r
-\r
-/**\r
- Release the specified HMAC_CTX context.\r
-\r
- If this interface is not supported, then do nothing.\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
- CALL_VOID_CRYPTO_SERVICE (HmacMd5Free, (HmacMd5Ctx));\r
-}\r
-\r
-/**\r
- Set user-supplied key for subsequent use. It must be done before any\r
- calling to HmacMd5Update().\r
-\r
- If HmacMd5Context is NULL, then return FALSE.\r
- If this interface is not supported, then return FALSE.\r
-\r
- @param[out] HmacMd5Context Pointer to HMAC-MD5 context.\r
- @param[in] Key Pointer to the user-supplied key.\r
- @param[in] KeySize Key size in bytes.\r
-\r
- @retval TRUE Key is set successfully.\r
- @retval FALSE Key is set unsuccessfully.\r
- @retval FALSE This interface is not supported.\r
-\r
-**/\r
-BOOLEAN\r
-EFIAPI\r
-HmacMd5SetKey (\r
- OUT VOID *HmacMd5Context,\r
- IN CONST UINT8 *Key,\r
- IN UINTN KeySize\r
- )\r
-{\r
- CALL_CRYPTO_SERVICE (HmacMd5SetKey, (HmacMd5Context, Key, KeySize), FALSE);\r
-}\r
-\r
-/**\r
- Makes a copy of an existing HMAC-MD5 context.\r
-\r
- If HmacMd5Context is NULL, then return FALSE.\r
- If NewHmacMd5Context is NULL, then return FALSE.\r
- If this interface is not supported, then return FALSE.\r
-\r
- @param[in] HmacMd5Context Pointer to HMAC-MD5 context being copied.\r
- @param[out] NewHmacMd5Context Pointer to new HMAC-MD5 context.\r
-\r
- @retval TRUE HMAC-MD5 context copy succeeded.\r
- @retval FALSE HMAC-MD5 context copy failed.\r
- @retval FALSE This interface is not supported.\r
-\r
-**/\r
-BOOLEAN\r
-EFIAPI\r
-HmacMd5Duplicate (\r
- IN CONST VOID *HmacMd5Context,\r
- OUT VOID *NewHmacMd5Context\r
- )\r
-{\r
- CALL_CRYPTO_SERVICE (HmacMd5Duplicate, (HmacMd5Context, NewHmacMd5Context), FALSE);\r
-}\r
-\r
-/**\r
- Digests the input data and updates HMAC-MD5 context.\r
-\r
- This function performs HMAC-MD5 digest on a data buffer of the specified size.\r
- It can be called multiple times to compute the digest of long or discontinuous data streams.\r
- HMAC-MD5 context should be initialized by HmacMd5New(), and should not be finalized by\r
- HmacMd5Final(). Behavior with invalid context is undefined.\r
-\r
- If HmacMd5Context is NULL, then return FALSE.\r
- If this interface is not supported, then return FALSE.\r
-\r
- @param[in, out] HmacMd5Context Pointer to the HMAC-MD5 context.\r
- @param[in] Data Pointer to the buffer containing the data to be digested.\r
- @param[in] DataSize Size of Data buffer in bytes.\r
-\r
- @retval TRUE HMAC-MD5 data digest succeeded.\r
- @retval FALSE HMAC-MD5 data digest failed.\r
- @retval FALSE This interface is not supported.\r
-\r
-**/\r
-BOOLEAN\r
-EFIAPI\r
-HmacMd5Update (\r
- IN OUT VOID *HmacMd5Context,\r
- IN CONST VOID *Data,\r
- IN UINTN DataSize\r
- )\r
-{\r
- CALL_CRYPTO_SERVICE (HmacMd5Update, (HmacMd5Context, Data, DataSize), FALSE);\r
-}\r
-\r
-/**\r
- Completes computation of the HMAC-MD5 digest value.\r
-\r
- This function completes HMAC-MD5 hash computation and retrieves the digest value into\r
- the specified memory. After this function has been called, the HMAC-MD5 context cannot\r
- be used again.\r
- HMAC-MD5 context should be initialized by HmacMd5New(), and should not be finalized by\r
- HmacMd5Final(). Behavior with invalid HMAC-MD5 context is undefined.\r
-\r
- If HmacMd5Context is NULL, then return FALSE.\r
- If HmacValue is NULL, then return FALSE.\r
- If this interface is not supported, then return FALSE.\r
-\r
- @param[in, out] HmacMd5Context Pointer to the HMAC-MD5 context.\r
- @param[out] HmacValue Pointer to a buffer that receives the HMAC-MD5 digest\r
- value (16 bytes).\r
-\r
- @retval TRUE HMAC-MD5 digest computation succeeded.\r
- @retval FALSE HMAC-MD5 digest computation failed.\r
- @retval FALSE This interface is not supported.\r
-\r
-**/\r
-BOOLEAN\r
-EFIAPI\r
-HmacMd5Final (\r
- IN OUT VOID *HmacMd5Context,\r
- OUT UINT8 *HmacValue\r
- )\r
-{\r
- CALL_CRYPTO_SERVICE (HmacMd5Final, (HmacMd5Context, HmacValue), FALSE);\r
-}\r
-\r
/**\r
Allocates and initializes one HMAC_CTX context for subsequent HMAC-SHA1 use.\r
\r