MCUX CLNS
MCUX Crypto Library Normal Secure
mcuxClCss_Aead.h File Reference

CSSv2 header for Authenticated Encryption with Associated Data (AEAD). More...

#include <mcuxClCss_Common.h>

Go to the source code of this file.

Data Structures

union  mcuxClCss_AeadOption_t
 Command option bit field for mcuxClCss_Aead_Init_Async, mcuxClCss_Aead_UpdateAad_Async, mcuxClCss_Aead_UpdateData_Async and mcuxClCss_Aead_Finalize_Async. More...
 

Macros

#define MCUXCLCSS_AEAD_ENCRYPT
 Set mcuxClCss_AeadOption_t.dcrpt to this value to encrypt data. More...
 
#define MCUXCLCSS_AEAD_DECRYPT
 Set mcuxClCss_AeadOption_t.dcrpt to this value to decrypt data. More...
 
#define MCUXCLCSS_AEAD_STATE_IN_DISABLE
 Set mcuxClCss_AeadOption_t.acpsie to this value to load the GCM state from CSSv2. More...
 
#define MCUXCLCSS_AEAD_STATE_IN_ENABLE
 Set mcuxClCss_AeadOption_t.acpsie to this value to load the GCM state from the context. More...
 
#define MCUXCLCSS_AEAD_LASTINIT_TRUE
 Set mcuxClCss_AeadOption_t.lastinit to this value if this is the last call to init. More...
 
#define MCUXCLCSS_AEAD_LASTINIT_FALSE
 Set mcuxClCss_AeadOption_t.lastinit to this value if this is not the last call to init. More...
 
#define MCUXCLCSS_AEAD_EXTERN_KEY
 Set mcuxClCss_AeadOption_t.extkey to this value to use an external key. More...
 
#define MCUXCLCSS_AEAD_INTERN_KEY
 Set mcuxClCss_AeadOption_t.extkey to this value to use a key from the CSS keystore. More...
 
#define MCUXCLCSS_AEAD_IV_BLOCK_SIZE
 
#define MCUXCLCSS_AEAD_AAD_BLOCK_SIZE
 AES-GCM AAD Granularity: 128 bit (16 bytes) More...
 
#define MCUXCLCSS_AEAD_CONTEXT_SIZE
 context size: 512 bit (64 bytes) + 16 bytes for finalize More...
 

Functions

MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_Aead_Init_Async (mcuxClCss_AeadOption_t options, mcuxClCss_KeyIndex_t keyIdx, uint8_t const *pKey, size_t keyLength, uint8_t const *pIV, size_t ivLength, uint8_t *pAeadCtx)
 AES-GCM initialization. More...
 
MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_Aead_PartialInit_Async (mcuxClCss_AeadOption_t options, mcuxClCss_KeyIndex_t keyIdx, uint8_t const *pKey, size_t keyLength, uint8_t const *pIV, size_t ivLength, uint8_t *pAeadCtx)
 AES-GCM partial initialization. More...
 
MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_Aead_UpdateAad_Async (mcuxClCss_AeadOption_t options, mcuxClCss_KeyIndex_t keyIdx, uint8_t const *pKey, size_t keyLength, uint8_t const *pAad, size_t aadLength, uint8_t *pAeadCtx)
 AES-GCM update of the Additional Authenticated Data (AAD) More...
 
MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_Aead_UpdateData_Async (mcuxClCss_AeadOption_t options, mcuxClCss_KeyIndex_t keyIdx, uint8_t const *pKey, size_t keyLength, uint8_t const *pInput, size_t inputLength, uint8_t *pOutput, uint8_t *pAeadCtx)
 AES-GCM update of the encrypted data. More...
 
MCUXCLCSS_API mcuxClCss_Status_Protected_t mcuxClCss_Aead_Finalize_Async (mcuxClCss_AeadOption_t options, mcuxClCss_KeyIndex_t keyIdx, uint8_t const *pKey, size_t keyLength, size_t aadLength, size_t dataLength, uint8_t *pTag, uint8_t *pAeadCtx)
 AES-GCM final encryption/decryption. More...
 

Detailed Description

CSSv2 header for Authenticated Encryption with Associated Data (AEAD).

This header exposes functions that enable using the CSSv2 for Authenticated Encryption with Associated Data (AEAD). The AEAD algorithm supported by CSSv2 is AES in Galois/Counter Mode (GCM), as described in NIST Special Publication 800-38D.