1.2.11.4.1 CIPHER_Wrapper_AesCmacDirect Function

C

int32_t CIPHER_Wrapper_AesCmacDirect(uint8_t *input, uint32_t inputLen,
                                     uint8_t *outputMac, uint8_t *key)

Summary

Performs AES-CMAC to generate the MAC in single step without initialization.

Description

This function performs AES-CMAC to generate the MAC in single step without initialization. To verify, the user can compare the generated MAC with the MAC received from sender with message. The size of the key is 16 bytes. The size of the MAC is equal to the AES block size (16 bytes).

Precondition

None.

Parameters

ParamDescription
inputPointer to buffer holding the input data
inputLenLength of the input data in bytes
outputMacPointer to store the output data (MAC). The size of the buffer must be equal or larger than the AES block size (16 bytes)
keyPointer to buffer holding the 16-byte key itself

Returns

  • CIPHER_WRAPPER_RETURN_GOOD: Successful process.

  • Any other value: Error in the process.

Example

int32_t ret;
uint8_t in1[] = { some input data };
uint8_t out1[16];
uint8_t key[16] = { some key };

ret = CIPHER_Wrapper_AesCmacDirect(in1, sizeof(in1), out1, key);

Remarks

None.