CC23x0R5DriverLibrary
aes.h File Reference

Detailed Description

AES module header for CC23X0R5 devices.


This module provides the low-level functions used to access the LAES128 crypto engine.

#include <stdint.h>
#include "../inc/hw_types.h"
#include "../inc/hw_memmap.h"
#include "../inc/hw_aes.h"
Include dependency graph for aes.h:

Go to the source code of this file.

Data Structures

union  AES_BlockWordAligned
 

Macros

#define AES_BLOCK_SIZE   16U
 Block size in number of bytes. More...
 
#define AES_BLOCK_SIZE_WORDS   (AES_BLOCK_SIZE / 4U)
 
#define AES_BLOCK_SIZE_MULTIPLE_MASK   0xFFFFFFF0U
 
#define AES_BLOCK_SIZE_MULTIPLE_LENGTH(len)   ((len)&AES_BLOCK_SIZE_MULTIPLE_MASK)
 
#define AES_NON_BLOCK_SIZE_MULTIPLE_MASK   0x0000000FU
 
#define AES_NON_BLOCK_SIZE_MULTIPLE_LENGTH(len)   ((len)&AES_NON_BLOCK_SIZE_MULTIPLE_MASK)
 
#define AES_GET_NUM_BLOCKS(len)   ((len) >> 4)
 
#define AES_BLOCKS_TO_BYTES(numBlocks)   ((numBlocks) << 4)
 
#define AES_DOUBLE_BLOCK_SIZE_MULTIPLE_MASK   (size_t)(0xFFFFFFE0UL)
 
#define AES_IV_LENGTH_BYTES   AES_BLOCK_SIZE
 
#define AES_TAG_LENGTH_BYTES   AES_BLOCK_SIZE
 
#define AES_128_KEY_LENGTH_BYTES   (128U / 8U)
 
#define IS_WORD_ALIGNED(ptr)   (((uintptr_t)(ptr) << 30) == 0U)
 
#define AES_ICLR_ALL   ((uint32_t)AES_ICLR_AESDONE | (uint32_t)AES_ICLR_AESSTART | (uint32_t)AES_ICLR_CHADONE | (uint32_t)AES_ICLR_CHBDONE)
 

Macro Definition Documentation

§ AES_BLOCK_SIZE

#define AES_BLOCK_SIZE   16U

Block size in number of bytes.

§ AES_BLOCK_SIZE_WORDS

#define AES_BLOCK_SIZE_WORDS   (AES_BLOCK_SIZE / 4U)

§ AES_BLOCK_SIZE_MULTIPLE_MASK

#define AES_BLOCK_SIZE_MULTIPLE_MASK   0xFFFFFFF0U

§ AES_BLOCK_SIZE_MULTIPLE_LENGTH

#define AES_BLOCK_SIZE_MULTIPLE_LENGTH (   len)    ((len)&AES_BLOCK_SIZE_MULTIPLE_MASK)

§ AES_NON_BLOCK_SIZE_MULTIPLE_MASK

#define AES_NON_BLOCK_SIZE_MULTIPLE_MASK   0x0000000FU

§ AES_NON_BLOCK_SIZE_MULTIPLE_LENGTH

#define AES_NON_BLOCK_SIZE_MULTIPLE_LENGTH (   len)    ((len)&AES_NON_BLOCK_SIZE_MULTIPLE_MASK)

§ AES_GET_NUM_BLOCKS

#define AES_GET_NUM_BLOCKS (   len)    ((len) >> 4)

§ AES_BLOCKS_TO_BYTES

#define AES_BLOCKS_TO_BYTES (   numBlocks)    ((numBlocks) << 4)

§ AES_DOUBLE_BLOCK_SIZE_MULTIPLE_MASK

#define AES_DOUBLE_BLOCK_SIZE_MULTIPLE_MASK   (size_t)(0xFFFFFFE0UL)

§ AES_IV_LENGTH_BYTES

#define AES_IV_LENGTH_BYTES   AES_BLOCK_SIZE

§ AES_TAG_LENGTH_BYTES

#define AES_TAG_LENGTH_BYTES   AES_BLOCK_SIZE

§ AES_128_KEY_LENGTH_BYTES

#define AES_128_KEY_LENGTH_BYTES   (128U / 8U)

§ IS_WORD_ALIGNED

#define IS_WORD_ALIGNED (   ptr)    (((uintptr_t)(ptr) << 30) == 0U)

§ AES_ICLR_ALL

#define AES_ICLR_ALL   ((uint32_t)AES_ICLR_AESDONE | (uint32_t)AES_ICLR_AESSTART | (uint32_t)AES_ICLR_CHADONE | (uint32_t)AES_ICLR_CHBDONE)