SAMV71 Xplained Ultra Software Package 1.5

aes.c File Reference

#include "chip.h"
#include "aes.h"

Go to the source code of this file.

Functions

void AES_Start (void)
 Starts Manual encryption/decryption process.
void AES_SoftReset (void)
 Resets the AES. A software triggered hardware reset of the AES interface is performed.
void AES_Configure (uint32_t mode)
 Configures an AES peripheral with the specified parameters.
void AES_EnableIt (uint32_t sources)
 Enables the selected interrupts sources on a AES peripheral.
void AES_DisableIt (uint32_t sources)
 Disables the selected interrupts sources on a AES peripheral.
uint32_t AES_GetStatus (void)
 Get the current status register of the given AES peripheral.
void AES_WriteKey (const uint32_t *pKey, uint32_t keyLength)
 Set the 128-bit/192-bit/256-bit cryptographic key used for encryption/decryption.
void AES_SetInput (uint32_t *data)
 Set the for 32-bit input Data allow to set the 128-bit data block used for encryption/decryption.
void AES_GetOutput (uint32_t *data)
 Get the four 32-bit data contain the 128-bit data block which has been encrypted/decrypted.
void AES_SetVector (const uint32_t *pVector)
 Set four 64-bit initialization vector data block, which is used by some modes of operation as an additional initial input.
void AES_SetAadLen (uint32_t len)
 Set Length in bytes of the AAD data that is to be processed.
void AES_SetDataLen (uint32_t len)
 Set Length in bytes of the Length in bytes of the plaintext/ciphertext (C) data that is to be processed..
void AES_SetGcmHash (uint32_t *hash)
 Set The four 32-bit Hash Word registers expose the intermediate GHASH value. May be read to save the current GHASH value so processing can later be resumed, presumably on a later message fragment. modes of operation as an additional initial input.
void AES_GetGcmTag (uint32_t *tag)
 Get The four 32-bit Tag which contain the final 128-bit GCM Authentication tag Ħ°TĦħ when GCM processing is complete.
void AES_GetGcmCounter (uint32_t *counter)
 Reports the current value of the 32-bit GCM counter.
void AES_GetGcmH (uint32_t *h)
 Get the four 32-bit data contain the 128-bit H value computed from the KEYW value.

Detailed Description

Implementation of Advanced Encryption Standard (AES)

Definition in file aes.c.


Function Documentation

void AES_Configure ( uint32_t  mode  ) 

Configures an AES peripheral with the specified parameters.

Parameters:
mode Desired value for the AES mode register (see the datasheet).

Definition at line 120 of file aes.c.

void AES_DisableIt ( uint32_t  sources  ) 

Disables the selected interrupts sources on a AES peripheral.

Parameters:
sources Bitwise OR of selected interrupt sources.

Definition at line 138 of file aes.c.

void AES_EnableIt ( uint32_t  sources  ) 

Enables the selected interrupts sources on a AES peripheral.

Parameters:
sources Bitwise OR of selected interrupt sources.

Definition at line 129 of file aes.c.

void AES_GetGcmCounter ( uint32_t *  counter  ) 

Reports the current value of the 32-bit GCM counter.

Parameters:
counter Point to value of GCM counter.

Definition at line 267 of file aes.c.

void AES_GetGcmH ( uint32_t *  h  ) 

Get the four 32-bit data contain the 128-bit H value computed from the KEYW value.

Parameters:
data point to the word that has been encrypted/decrypted.

Definition at line 278 of file aes.c.

void AES_GetGcmTag ( uint32_t *  tag  ) 

Get The four 32-bit Tag which contain the final 128-bit GCM Authentication tag Ħ°TĦħ when GCM processing is complete.

Parameters:
tag point to the word of the tag.

Definition at line 255 of file aes.c.

void AES_GetOutput ( uint32_t *  data  ) 

Get the four 32-bit data contain the 128-bit data block which has been encrypted/decrypted.

Parameters:
data pointer to the word that has been encrypted/decrypted..

Definition at line 194 of file aes.c.

uint32_t AES_GetStatus ( void   ) 

Get the current status register of the given AES peripheral.

Returns:
AES status register.

Definition at line 147 of file aes.c.

void AES_SetAadLen ( uint32_t  len  ) 

Set Length in bytes of the AAD data that is to be processed.

Parameters:
len Length.

Definition at line 219 of file aes.c.

void AES_SetDataLen ( uint32_t  len  ) 

Set Length in bytes of the Length in bytes of the plaintext/ciphertext (C) data that is to be processed..

Parameters:
len Length.

Definition at line 229 of file aes.c.

void AES_SetGcmHash ( uint32_t *  hash  ) 

Set The four 32-bit Hash Word registers expose the intermediate GHASH value. May be read to save the current GHASH value so processing can later be resumed, presumably on a later message fragment. modes of operation as an additional initial input.

Parameters:
hash point to the word of the hash.

Definition at line 241 of file aes.c.

void AES_SetInput ( uint32_t *  data  ) 

Set the for 32-bit input Data allow to set the 128-bit data block used for encryption/decryption.

Parameters:
data Pointer to the 16-bytes data to cipher/decipher.

Definition at line 181 of file aes.c.

void AES_SetVector ( const uint32_t *  pVector  ) 

Set four 64-bit initialization vector data block, which is used by some modes of operation as an additional initial input.

Parameters:
pVector point to the word of the initialization vector.

Definition at line 207 of file aes.c.

void AES_WriteKey ( const uint32_t *  pKey,
uint32_t  keyLength 
)

Set the 128-bit/192-bit/256-bit cryptographic key used for encryption/decryption.

Parameters:
pKey Pointer to a 16/24/32 bytes cipher key.
keyLength length of key

Definition at line 158 of file aes.c.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines