Developer Guide and Reference for Intel® Integrated Performance Primitives Cryptography
CMAC Functions
The Intel® IPP Cryptography CMAC primitive functions use CMAC schemes based on block ciphers described in the Symmetric Cryptography Primitive Functions.
A CMAC scheme is implemented as a set of primitive functions.
Typical application code for computing CMAC of an input message stream should follow the sequence of operations as outlined below:
- Call the function AES_CMACGetSize to get the size required to configure the IppsAES_CMACState context. 
- Ensure that the required memory space is properly allocated. With the allocated memory, call the function AES_CMACInit to initialize the context. 
- Keep calling the function AES_CMACUpdate to update the MAC value of the incoming message stream in the queue till its completion. To determine the current MAC value, call AES_CMACGetTag between each two calls to AES_CMACUpdate. 
- Call the function AES_CMACFinal to complete computation of the MAC value of the streaming message and prepare the context for computation of MAC of another message. 
- Clean up secret data stored in the context. 
- Call the operating system memory free service function to release the IppsAES_CMACState context.