Developer Reference

Contents

CMAC Functions

The Intel IPP 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:
  1. Call the function
    AES_CMACGetSize
    to get the size required to configure the
    IppsAES_CMACState
    context.
  2. Ensure that the required memory space is properly allocated. With the allocated memory, call the function
    AES_CMACInit
    to initialize the context.
  3. 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
    .
  4. 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.
  5. Clean up secret data stored in the context.
  6. Call the operating system memory free service function to release the
    IppsAES_CMACState
    context.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804