LPCOpen Platform for LPC18XX/43XX microcontrollers  18XX43XX
LPCOpen Platform for the NXP LPC18XX/43XX family of Microcontrollers
Enumerations | Functions
CHIP: LPC18xx/43xx AES Engine driver

Detailed Description

Enumerations

enum  CHIP_AES_OP_MODE_T { CHIP_AES_API_CMD_ENCODE_ECB, CHIP_AES_API_CMD_DECODE_ECB, CHIP_AES_API_CMD_ENCODE_CBC, CHIP_AES_API_CMD_DECODE_CBC }
 AES Engine operation mode. More...
 

Functions

void Chip_AES_Init (void)
 Initialize the AES Engine function. More...
 
uint32_t Chip_AES_SetMode (CHIP_AES_OP_MODE_T AesMode)
 Set operation mode in AES Engine. More...
 
void Chip_AES_LoadKey (uint32_t keyNum)
 Load 128-bit AES user key in AES Engine. More...
 
void Chip_AES_LoadKeyRNG (void)
 Load randomly generated key in AES engine. More...
 
void Chip_AES_LoadKeySW (uint8_t *pKey)
 Load 128-bit AES software defined user key in AES Engine. More...
 
void Chip_AES_LoadIV_SW (uint8_t *pVector)
 Load 128-bit AES initialization vector in AES Engine. More...
 
void Chip_AES_LoadIV_IC (void)
 Load IC specific 128-bit AES initialization vector in AES Engine. More...
 
uint32_t Chip_AES_Operate (uint8_t *pDatOut, uint8_t *pDatIn, uint32_t Size)
 Operate AES Engine. More...
 
uint32_t Chip_AES_ProgramKey (uint32_t KeyNum, uint8_t *pKey)
 Program 128-bit AES Key in OTP. More...
 
uint32_t Chip_AES_Config_DMA (uint32_t channel_id)
 Checks for valid AES configuration of the chip and setup DMA channel to process an AES data block. More...
 
uint32_t Chip_AES_OperateDMA (uint32_t channel_id, uint8_t *dataOutAddr, uint8_t *dataInAddr, uint32_t size)
 Checks for valid AES configuration of the chip and enables DMA channel to process an AES data block. More...
 
uint32_t Chip_AES_GetStatusDMA (uint32_t channel_id)
 Read status of DMA channels that process an AES data block. More...
 

Enumeration Type Documentation

AES Engine operation mode.

Enumerator
CHIP_AES_API_CMD_ENCODE_ECB 

ECB Encode mode

CHIP_AES_API_CMD_DECODE_ECB 

ECB Decode mode

CHIP_AES_API_CMD_ENCODE_CBC 

CBC Encode mode

CHIP_AES_API_CMD_DECODE_CBC 

CBC Decode mode

Definition at line 47 of file aes_18xx_43xx.h.

Function Documentation

uint32_t Chip_AES_Config_DMA ( uint32_t  channel_id)

Checks for valid AES configuration of the chip and setup DMA channel to process an AES data block.

Parameters
channel_id: channel id
Returns
Status

Definition at line 159 of file aes_18xx_43xx.c.

uint32_t Chip_AES_GetStatusDMA ( uint32_t  channel_id)

Read status of DMA channels that process an AES data block.

Parameters
channel_id: channel id
Returns
Status

Definition at line 171 of file aes_18xx_43xx.c.

void Chip_AES_Init ( void  )

Initialize the AES Engine function.

Returns
None This function will initialize all the AES Engine driver function pointers and call the AES Engine Initialization function.

Definition at line 73 of file aes_18xx_43xx.c.

void Chip_AES_LoadIV_IC ( void  )

Load IC specific 128-bit AES initialization vector in AES Engine.

Returns
None This loads 128-bit AES IC specific initialization vector, which is used to decrypt a boot image

Definition at line 133 of file aes_18xx_43xx.c.

void Chip_AES_LoadIV_SW ( uint8_t *  pVector)

Load 128-bit AES initialization vector in AES Engine.

Parameters
pVector: Pointer to 16 byte Initialisation vector
Returns
None

Definition at line 127 of file aes_18xx_43xx.c.

void Chip_AES_LoadKey ( uint32_t  keyNum)

Load 128-bit AES user key in AES Engine.

Parameters
keyNum,:0 - Load AES 128-bit user key 1, else load user key2
Returns
None

Definition at line 104 of file aes_18xx_43xx.c.

void Chip_AES_LoadKeyRNG ( void  )

Load randomly generated key in AES engine.

Returns
None To update the RNG and load a new random number, the API call Chip_OTP_GenRand should be used

Definition at line 115 of file aes_18xx_43xx.c.

void Chip_AES_LoadKeySW ( uint8_t *  pKey)

Load 128-bit AES software defined user key in AES Engine.

Parameters
pKey: Pointer to 16 byte user key
Returns
None

Definition at line 121 of file aes_18xx_43xx.c.

uint32_t Chip_AES_Operate ( uint8_t *  pDatOut,
uint8_t *  pDatIn,
uint32_t  Size 
)

Operate AES Engine.

Parameters
pDatOut: Pointer to output data stream
pDatIn: Pointer to input data stream
Size: Size of the data stream (128-bit)
Returns
Status This function performs the AES operation after the AES mode has been set using Chip_AES_SetMode and the appropriate keys and init vectors have been loaded

Definition at line 139 of file aes_18xx_43xx.c.

uint32_t Chip_AES_OperateDMA ( uint32_t  channel_id,
uint8_t *  dataOutAddr,
uint8_t *  dataInAddr,
uint32_t  size 
)

Checks for valid AES configuration of the chip and enables DMA channel to process an AES data block.

Parameters
channel_id: channel_id
dataOutAddr: destination address(16 x size of consecutive bytes)
dataInAddr: source address(16 x size of consecutive bytes)
size: number of 128 bit AES blocks
Returns
Status

Definition at line 165 of file aes_18xx_43xx.c.

uint32_t Chip_AES_ProgramKey ( uint32_t  KeyNum,
uint8_t *  pKey 
)

Program 128-bit AES Key in OTP.

Parameters
KeyNum: Key Number (Select 0 or 1)
pKey: Pointer to AES Key (16 bytes required)
Returns
Status When calling the aes_ProgramKey2 function, ensure that VPP = 2.7 V to 3.6 V.

Definition at line 145 of file aes_18xx_43xx.c.

uint32_t Chip_AES_SetMode ( CHIP_AES_OP_MODE_T  AesMode)

Set operation mode in AES Engine.

Parameters
AesMode: AES Operation Mode
Returns
Status

Definition at line 98 of file aes_18xx_43xx.c.