Functions | |
uint8_t | AES256_setCipherKey (uint16_t baseAddress, const uint8_t *cipherKey, uint16_t keyLength) |
Loads a 128, 192 or 256 bit cipher key to AES256 module. More... | |
void | AES256_encryptData (uint16_t baseAddress, const uint8_t *data, uint8_t *encryptedData) |
Encrypts a block of data using the AES256 module. More... | |
void | AES256_decryptData (uint16_t baseAddress, const uint8_t *data, uint8_t *decryptedData) |
Decrypts a block of data using the AES256 module. More... | |
uint8_t | AES256_setDecipherKey (uint16_t baseAddress, const uint8_t *cipherKey, uint16_t keyLength) |
Sets the decipher key. More... | |
void | AES256_clearInterrupt (uint16_t baseAddress) |
Clears the AES256 ready interrupt flag. More... | |
uint32_t | AES256_getInterruptStatus (uint16_t baseAddress) |
Gets the AES256 ready interrupt flag status. More... | |
void | AES256_enableInterrupt (uint16_t baseAddress) |
Enables AES256 ready interrupt. More... | |
void | AES256_disableInterrupt (uint16_t baseAddress) |
Disables AES256 ready interrupt. More... | |
void | AES256_reset (uint16_t baseAddress) |
Resets AES256 Module immediately. More... | |
void | AES256_startEncryptData (uint16_t baseAddress, const uint8_t *data) |
Starts an encryption process on the AES256 module. More... | |
void | AES256_startDecryptData (uint16_t baseAddress, const uint8_t *data) |
Decrypts a block of data using the AES256 module. More... | |
uint8_t | AES256_startSetDecipherKey (uint16_t baseAddress, const uint8_t *cipherKey, uint16_t keyLength) |
Sets the decipher key. More... | |
uint8_t | AES256_getDataOut (uint16_t baseAddress, uint8_t *outputData) |
Reads back the output data from AES256 module. More... | |
uint16_t | AES256_isBusy (uint16_t baseAddress) |
Gets the AES256 module busy status. More... | |
void | AES256_clearErrorFlag (uint16_t baseAddress) |
Clears the AES256 error flag. More... | |
uint32_t | AES256_getErrorFlagStatus (uint16_t baseAddress) |
Gets the AES256 error flag status. More... | |
void AES256_clearErrorFlag | ( | uint16_t | baseAddress | ) |
Clears the AES256 error flag.
Clears the AES256 error flag that results from a key or data being written while the AES256 module is busy.
baseAddress | is the base address of the AES256 module. |
Modified bits are AESERRFG of AESACTL0 register.
void AES256_clearInterrupt | ( | uint16_t | baseAddress | ) |
Clears the AES256 ready interrupt flag.
This function clears the AES256 ready interrupt flag. This flag is automatically cleared when AES256ADOUT is read, or when AES256AKEY or AES256ADIN is written. This function should be used when the flag needs to be reset and it has not been automatically cleared by one of the previous actions.
baseAddress | is the base address of the AES256 module. |
Modified bits are AESRDYIFG of AESACTL0 register.
void AES256_decryptData | ( | uint16_t | baseAddress, |
const uint8_t * | data, | ||
uint8_t * | decryptedData | ||
) |
Decrypts a block of data using the AES256 module.
This function requires a pregenerated decryption key. A key can be loaded and pregenerated by using function AES256_setDecipherKey() or AES256_startSetDecipherKey(). The decryption takes 167 MCLK.
baseAddress | is the base address of the AES256 module. |
data | is a pointer to an uint8_t array with a length of 16 bytes that contains encrypted data to be decrypted. |
decryptedData | is a pointer to an uint8_t array with a length of 16 bytes in that the decrypted data will be written. |
void AES256_disableInterrupt | ( | uint16_t | baseAddress | ) |
Disables AES256 ready interrupt.
Disables AES256 ready interrupt. This interrupt is reset by a PUC, but not reset by AES256_reset.
baseAddress | is the base address of the AES256 module. |
Modified bits are AESRDYIE of AESACTL0 register.
void AES256_enableInterrupt | ( | uint16_t | baseAddress | ) |
Enables AES256 ready interrupt.
Enables AES256 ready interrupt. This interrupt is reset by a PUC, but not reset by AES256_reset.
baseAddress | is the base address of the AES256 module. |
Modified bits are AESRDYIE of AESACTL0 register.
void AES256_encryptData | ( | uint16_t | baseAddress, |
const uint8_t * | data, | ||
uint8_t * | encryptedData | ||
) |
Encrypts a block of data using the AES256 module.
The cipher key that is used for encryption should be loaded in advance by using function AES256_setCipherKey()
baseAddress | is the base address of the AES256 module. |
data | is a pointer to an uint8_t array with a length of 16 bytes that contains data to be encrypted. |
encryptedData | is a pointer to an uint8_t array with a length of 16 bytes in that the encrypted data will be written. |
uint8_t AES256_getDataOut | ( | uint16_t | baseAddress, |
uint8_t * | outputData | ||
) |
Reads back the output data from AES256 module.
This function is meant to use after an encryption or decryption process that was started and finished by initiating an interrupt by use of AES256_startEncryptData or AES256_startDecryptData functions.
baseAddress | is the base address of the AES256 module. |
outputData | is a pointer to an uint8_t array with a length of 16 bytes in that the data will be written. |
uint32_t AES256_getErrorFlagStatus | ( | uint16_t | baseAddress | ) |
Gets the AES256 error flag status.
Checks the AES256 error flag that results from a key or data being written while the AES256 module is busy. If the flag is set, it needs to be cleared using AES256_clearErrorFlag.
baseAddress | is the base address of the AES256 module. |
uint32_t AES256_getInterruptStatus | ( | uint16_t | baseAddress | ) |
Gets the AES256 ready interrupt flag status.
This function checks the AES256 ready interrupt flag. This flag is automatically cleared when AES256ADOUT is read, or when AES256AKEY or AES256ADIN is written. This function can be used to confirm that this has been done.
baseAddress | is the base address of the AES256 module. |
uint16_t AES256_isBusy | ( | uint16_t | baseAddress | ) |
Gets the AES256 module busy status.
Gets the AES256 module busy status. If a key or data are written while the AES256 module is busy, an error flag will be thrown.
baseAddress | is the base address of the AES256 module. |
void AES256_reset | ( | uint16_t | baseAddress | ) |
Resets AES256 Module immediately.
This function performs a software reset on the AES256 Module, note that this does not affect the AES256 ready interrupt.
baseAddress | is the base address of the AES256 module. |
Modified bits are AESSWRST of AESACTL0 register.
uint8_t AES256_setCipherKey | ( | uint16_t | baseAddress, |
const uint8_t * | cipherKey, | ||
uint16_t | keyLength | ||
) |
Loads a 128, 192 or 256 bit cipher key to AES256 module.
This function loads a 128, 192 or 256 bit cipher key to AES256 module. Requires both a key as well as the length of the key provided. Acceptable key lengths are AES256_KEYLENGTH_128BIT, AES256_KEYLENGTH_192BIT, or AES256_KEYLENGTH_256BIT
baseAddress | is the base address of the AES256 module. |
cipherKey | is a pointer to an uint8_t array with a length of 16 bytes that contains a 128 bit cipher key. |
keyLength | is the length of the key. Valid values are:
|
uint8_t AES256_setDecipherKey | ( | uint16_t | baseAddress, |
const uint8_t * | cipherKey, | ||
uint16_t | keyLength | ||
) |
Sets the decipher key.
The API AES256_startSetDecipherKey or AES256_setDecipherKey must be invoked before invoking AES256_startDecryptData.
baseAddress | is the base address of the AES256 module. |
cipherKey | is a pointer to an uint8_t array with a length of 16 bytes that contains a 128 bit cipher key. |
keyLength | is the length of the key. Valid values are:
|
void AES256_startDecryptData | ( | uint16_t | baseAddress, |
const uint8_t * | data | ||
) |
Decrypts a block of data using the AES256 module.
This is the non-blocking equivalent of AES256_decryptData(). This function requires a pregenerated decryption key. A key can be loaded and pregenerated by using function AES256_setDecipherKey() or AES256_startSetDecipherKey(). The decryption takes 167 MCLK. It is recommended to use interrupt to check for procedure completion then use the AES256_getDataOut() API to retrieve the decrypted data.
baseAddress | is the base address of the AES256 module. |
data | is a pointer to an uint8_t array with a length of 16 bytes that contains encrypted data to be decrypted. |
void AES256_startEncryptData | ( | uint16_t | baseAddress, |
const uint8_t * | data | ||
) |
Starts an encryption process on the AES256 module.
The cipher key that is used for decryption should be loaded in advance by using function AES256_setCipherKey(). This is a non-blocking equivalent of AES256_encryptData(). It is recommended to use the interrupt functionality to check for procedure completion then use the AES256_getDataOut() API to retrieve the encrypted data.
baseAddress | is the base address of the AES256 module. |
data | is a pointer to an uint8_t array with a length of 16 bytes that contains data to be encrypted. |
uint8_t AES256_startSetDecipherKey | ( | uint16_t | baseAddress, |
const uint8_t * | cipherKey, | ||
uint16_t | keyLength | ||
) |
Sets the decipher key.
The API AES256_startSetDecipherKey() or AES256_setDecipherKey() must be invoked before invoking AES256_startDecryptData.
baseAddress | is the base address of the AES256 module. |
cipherKey | is a pointer to an uint8_t array with a length of 16 bytes that contains a 128 bit cipher key. |
keyLength | is the length of the key. Valid values are:
|