Parent topic:MPLABĀ® Harmony Crypto Library
int CRYPT_HMAC_Finalize(
    CRYPT_HMAC_CTX* hmac, 
    unsigned char* digest
);
This function completes the HMAC calculations. The results are placed in the location pointed to by the digest parameter.
The CRYPT_HMAC_CTX context must be initialized using the CRYPT_HMAC_SetKey function prior to any call to this function.
| Parameters | Description | 
|---|---|
| hmac | Pointer to context that saves state between calls. | 
| digest | Pointer to where the final HMAC digest results will be stored. | 
BAD_FUNC_ARG - An invalid pointer was passed to the function.
0 - An invalid pointer was not passed to the function.
The area pointed to by the digest parameter must be large enough to hold the results.
CRYPT_HMAC_CTX mcHmac;
byte           mcDigest[CRYPT_SHA512_DIGEST_SIZE];
CRYPT_HMAC_SetKey(&mcHmac, CRYPT_HMAC_SHA, key, 4);
CRYPT_HMAC_DataAdd(&mcHmac, ourData, OUR_DATA_SIZE);
 CRYPT_HMAC_Finalize(&mcHmac, mcDigest);