MCUX CLNS MCUX Crypto Library Normal Secure |

Data Structures | Macros | Functions
mcuxClCss_Cipher.h File Reference

CSSv2 header for symmetric ciphers. More...

`#include <mcuxClCss_Common.h>`

Go to the source code of this file.

## Data Structures
union | mcuxClCss_CipherOption_t
| Command option bit field for mcuxClCss_Cipher_Async. More...

## Macros
#define | MCUXCLCSS_CIPHER_ENCRYPT
| Set this option at mcuxClCss_CipherOption_t.dcrpt to perform an encryption. More...
#define | MCUXCLCSS_CIPHER_DECRYPT
| Set this option at mcuxClCss_CipherOption_t.dcrpt to perform a decryption. More...
#define | MCUXCLCSS_CIPHER_STATE_OUT_ENABLE
| Set this option at mcuxClCss_CipherOption_t.cphsoe to export the internal CSS state to `pIV`. More...
#define | MCUXCLCSS_CIPHER_STATE_OUT_DISABLE
| Set this option at mcuxClCss_CipherOption_t.cphsoe to not export the internal CSS state. More...
#define | MCUXCLCSS_CIPHER_STATE_IN_ENABLE
| Set this option at mcuxClCss_CipherOption_t.cphsie to import an external CSS state from `pIV`. More...
#define | MCUXCLCSS_CIPHER_STATE_IN_DISABLE
| Set this option at mcuxClCss_CipherOption_t.cphsie to not import an external CSS state. More...
#define | MCUXCLCSS_CIPHER_EXTERNAL_KEY
| Set this option at mcuxClCss_CipherOption_t.extkey to use a key located in CPU memory provided by `pKey`. More...
#define | MCUXCLCSS_CIPHER_INTERNAL_KEY
| Set this option at mcuxClCss_CipherOption_t.extkey to use a key located in CSS keystore privded by `keyIdx`. More...
#define | MCUXCLCSS_CIPHERPARAM_ALGORITHM_AES_ECB
| Set this option at mcuxClCss_CipherOption_t.cphmde to use AES engine in Electornic Code Book (ECB) mode. More...
#define | MCUXCLCSS_CIPHERPARAM_ALGORITHM_AES_CBC
| Set this option at mcuxClCss_CipherOption_t.cphmde to use AES engine in Cipher Block Chaining (CBC) mode. More...
#define | MCUXCLCSS_CIPHERPARAM_ALGORITHM_AES_CTR
| Set this option at mcuxClCss_CipherOption_t.cphmde to use AES engine in Counter (CTR) mode. More...
#define | MCUXCLCSS_CIPHER_BLOCK_SIZE_AES
#define | MCUXCLCSS_CIPHER_KEY_SIZE_AES_128
| Size of an AES128 key: 128 bit (16 bytes) More...
#define | MCUXCLCSS_CIPHER_KEY_SIZE_AES_192
| Size of an AES192 key: 192 bit (24 bytes) More...
#define | MCUXCLCSS_CIPHER_KEY_SIZE_AES_256
| Size of an AES192 key: 256 bit (32 bytes) More...

## Functions
MCUXCLCSS_API mcuxClCss_Status_Protected_t | mcuxClCss_Cipher_Async (mcuxClCss_CipherOption_t options, mcuxClCss_KeyIndex_t keyIdx, uint8_t const *pKey, size_t keyLength, uint8_t const *pInput, size_t inputLength, uint8_t *pIV, uint8_t *pOutput)
| Performs AES encryption/decryption. More...

## Detailed Description

CSSv2 header for symmetric ciphers.

This header exposes functions that enable using the CSSv2 for symmetric encryption/decryption. The cipher algorithm supported by CSSv2 is AES in the following modes:

- Electronic Code Book (ECB) mode,
- Cipher Block Chaining (CBC) mode, and
- Counter (CTR) mode. Supported key sizes are 128, 192, and 256 bits.