MCUX CLNS
MCUX Crypto Library Normal Secure
mcuxClEls_Cmac_Functions

Defines all functions of mcuxClEls_Cmac. More...

Functions

MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Cmac_Async (mcuxClEls_CmacOption_t options, mcuxClEls_KeyIndex_t keyIdx, uint8_t const *pKey, size_t keyLength, uint8_t const *pInput, size_t inputLength, uint8_t *pMac)
 Performs CMAC with AES-128 or AES-256. More...
 

Detailed Description

Defines all functions of mcuxClEls_Cmac.

Function Documentation

◆ mcuxClEls_Cmac_Async()

MCUXCLELS_API mcuxClEls_Status_t mcuxClEls_Cmac_Async ( mcuxClEls_CmacOption_t  options,
mcuxClEls_KeyIndex_t  keyIdx,
uint8_t const *  pKey,
size_t  keyLength,
uint8_t const *  pInput,
size_t  inputLength,
uint8_t *  pMac 
)

Performs CMAC with AES-128 or AES-256.

Call mcuxClEls_WaitForOperation to complete the operation.

Parameters
[in]optionsThe command options. For more information, see mcuxClEls_CmacOption_t.
[in]keyIdxThe CMAC key index
[in]pKeyPointer to the padded CMAC key
[in]keyLengthSize of pKey in bytes. Must be a valid CMAC key size. See the parameter properties section in the function description.
[in]pInputPointer to a memory location which contains the data, padded via SP 800-38b standard, to be authenticated
[in]inputLengthSize of pInput in bytes before padding
[in,out]pMacPointer to the CMAC command state input/output. See the parameter properties section in the function description.

The properties of some parameters change with respect to selected options.

Parameter properties
options.extkey == MCUXCLELS_CMAC_EXTERNAL_KEY_ENABLE

keyIdx is ignored.

options.extkey == MCUXCLELS_CMAC_EXTERNAL_KEY_DISABLE

pKey is ignored.

keyLength is ignored.

(options.finalize == MCUXCLELS_CMAC_FINALIZE_DISABLE)

The intermediate state is written to pMac.

options.finalize == MCUXCLELS_CMAC_FINALIZE_ENABLE

The resulting MAC is written to pMac.

options.soe is ignored.

Returns
An error code that can be any error code in MCUXCLELS_STATUS_, see individual documentation for more information
Return values
MCUXCLELS_STATUS_SW_INVALID_PARAMif an invalid parameter was specified
MCUXCLELS_STATUS_SW_CANNOT_INTERRUPTif a running operation prevented the request
MCUXCLELS_STATUS_OK_WAITon successful request