Microchip® Advanced Software Framework

avr32/drivers/aes/aes.h File Reference
#include <avr32/io.h>
#include "compiler.h"

Data Structures

struct  aes_config_t
 AES Configuration structure. More...
 
struct  aes_isrconfig_t
 AES Interrupt configuration structure. More...
 

Macros

#define AES_CBC_MODE   1
 
#define AES_CFB_MODE   3
 
#define AES_CTR_MODE   4
 
#define AES_ECB_MODE   0
 AES Operation cipher mode. More...
 
#define AES_KEY_SIZE_128   0
 AES Cryptographic key size. More...
 
#define AES_KEY_SIZE_192   1
 
#define AES_KEY_SIZE_256   2
 
#define AES_OFB_MODE   2
 
#define AES_PMODE_CIPHER   1
 
#define AES_PMODE_DECIPHER   0
 AES Processing mode. More...
 
#define AES_START_MODE_AUTO   1
 
#define AES_START_MODE_DMA   2
 
#define AES_START_MODE_MANUAL   0
 AES Start mode. More...
 
#define AES_URAT_INPUTWRITE_DMA   0
 AES URAD Type. More...
 
#define AES_URAT_MRWRITE_PROCESS   2
 
#define AES_URAT_MRWRITE_SUBKEY   4
 
#define AES_URAT_OUTPUTREAD_PROCESS   1
 
#define AES_URAT_OUTPUTREAD_SUBKEY   3
 
#define AES_URAT_READ_WRITEONLY   5
 

Functions

void aes_configure (volatile avr32_aes_t *aes, const aes_config_t *pAesConfig)
 Configure the AES. More...
 
unsigned int aes_get_status (volatile avr32_aes_t *aes)
 Get the AES status. More...
 
void aes_isr_configure (volatile avr32_aes_t *aes, const aes_isrconfig_t *pAesIsrConfig)
 Configure the AES interrupts. More...
 
static __always_inline void aes_load_newseed (volatile avr32_aes_t *aes)
 Trigger the load of a new seed in the AES internal random number generator (used for security counter measures). More...
 
void aes_read_outputdata (volatile avr32_aes_t *aes, unsigned int *pOut)
 Read the 128/64/32/16/8bit input data. More...
 
void aes_set_initvector (volatile avr32_aes_t *aes, const unsigned int *pVector)
 Set the 128bit initialization vector (for the CBC, CFB, OFB & CTR cipher modes) More...
 
void aes_set_key (volatile avr32_aes_t *aes, const unsigned int *pKey)
 Set the 128/192/256bit cryptographic key. More...
 
static __always_inline void aes_start (volatile avr32_aes_t *aes)
 Start the cipher/decipher process [manual mode only]. More...
 
static __always_inline void aes_swreset (volatile avr32_aes_t *aes)
 Perform a software reset of the AES. More...
 
void aes_write_inputdata (volatile avr32_aes_t *aes, const unsigned int *pIn)
 Write the 128/64/32/16/8bit input data. More...