AESCCM driver implementation for the Low Power F3 family.
==========================================================================
This implementation follows NIST 800-38c - https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38c.pdf All symbols used in the implementation for identifiers and in the comments including but not limited to B0, B1 and S0 are all adopted from this NIST 800-38c.
The Low Power F3 family of devices has a dedicated AES hardware that can perform AES encryption operations with 128-bit keys. Only one operation can be carried out on the accelerator at a time. Mutual exclusion is implemented at the driver level and coordinated between all drivers relying on the accelerator. It is transparent to the application and only noted to ensure sensible access timeouts are set.
The driver implementation does not perform runtime checks for most input parameters. Only values that are likely to have a stochastic element to them are checked (such as whether a driver is already open). Higher input parameter validation coverage is achieved by turning on assertions when compiling the driver.
#include <stdbool.h>
#include <stdint.h>
#include <ti/drivers/AESCCM.h>
#include <ti/drivers/cryptoutils/aes/AESCommonLPF3.h>
#include <ti/devices/DeviceFamily.h>
#include <DeviceFamily_constructPath(driverlib/aes.h)>
Go to the source code of this file.
Data Structures | |
struct | AESCCMLPF3_Object |
AESCCMLPF3 Object. More... | |
Macros | |
#define | AESCCMLPF3_AAD_BUFFER_SIZE 2U |
Typedefs | |
typedef AESCommonLPF3_HWAttrs | AESCCMLPF3_HWAttrs |
AESCCMLPF3 Hardware Attributes. More... | |
#define AESCCMLPF3_AAD_BUFFER_SIZE 2U |
AESCCMLPF3 Hardware Attributes.
AESCCMLPF3 hardware attributes should be included in the board file and pointed to by the AESCCM_config struct.