AESGCM driver implementation for the Low Power F3 family.
============================================================================
This file should only be included in the board file to fill the AESGCM_config struct.
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 GHASH computation for GCM is optimizations using Shoup's 4-bit tables that are precomputed for each hash key H. The table contains 16 entires of each 16B.
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/AESGCM.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 | AESGCMLPF3_Object |
AESGCMLPF3 Object. More... | |
Macros | |
#define | AESGCMLPF3_IV_LENGTH 12U |
#define | AESGCMLPF3_HASH_PRECOMPUTE_TABLE_SIZE 16U |
Typedefs | |
typedef AESCommonLPF3_HWAttrs | AESGCMLPF3_HWAttrs |
AESCCMLPF3 Hardware Attributes. More... | |
#define AESGCMLPF3_IV_LENGTH 12U |
#define AESGCMLPF3_HASH_PRECOMPUTE_TABLE_SIZE 16U |
AESCCMLPF3 Hardware Attributes.
AESCCMLPF3 hardware attributes should be included in the board file and pointed to by the AESCCM_config struct.