Data Structures | Macros | Typedefs | Functions
AESCCMXXF3.h File Reference

Detailed Description

AESCCM driver implementation for the Low Power F3 family.

==========================================================================

CCM Specification

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.

Hardware Accelerator

The Low Power F3 family of devices has dedicated hardware accelerators. CC23XX devices have one dedicated accelerator whereas CC27XX devices have two (Primary and Secondary). Combined they can perform AES encryption operations with 128-bit, 192-bit and 256-bit keys. CC35XX devices have only one dedicated hardware accelerator. 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.

Implementation Limitations

The following limitations apply to the AESCCMXXF3 Driver for CC27xx and CC35XX device families:

Runtime Parameter Validation

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/AESCommonXXF3.h>
#include <ti/devices/DeviceFamily.h>
Include dependency graph for AESCCMXXF3.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  AESCCMXXF3_Object
 AESCCMXXF3 Object. More...
 

Macros

#define AESCCMXXF3_AAD_BUFFER_SIZE   2U
 

Typedefs

typedef AESCommonXXF3_HWAttrs AESCCMXXF3_HWAttrs
 AESCCMXXF3 Hardware Attributes. More...
 

Functions

int_fast16_t AESCCMXXF3HSM_setMac (AESCCM_Handle handle, const uint8_t *mac, size_t macLength)
 Function to set the mac for an AES CCM segmented operation. This API needs to be called only when the subsequent AESCCM_addData() operation is processing all of the remaining data in a single call. More...
 

Macro Definition Documentation

§ AESCCMXXF3_AAD_BUFFER_SIZE

#define AESCCMXXF3_AAD_BUFFER_SIZE   2U

Typedef Documentation

§ AESCCMXXF3_HWAttrs

AESCCMXXF3 Hardware Attributes.

AESCCMXXF3 hardware attributes should be included in the board file and pointed to by the AESCCM_config struct.

Function Documentation

§ AESCCMXXF3HSM_setMac()

int_fast16_t AESCCMXXF3HSM_setMac ( AESCCM_Handle  handle,
const uint8_t *  mac,
size_t  macLength 
)

Function to set the mac for an AES CCM segmented operation. This API needs to be called only when the subsequent AESCCM_addData() operation is processing all of the remaining data in a single call.

Note
This API is only concerned with segmented decryption operations.
Precondition
AESCCM_setupDecrypt(), AESCCM_setLengths(), or AESCCM_addAAD()
Parameters
[in]handleA CCM handle returned from AESCCM_open() or AESCCM_construct()
[in]macPointer to the buffer containing the mac
[in]macLengthThe length of the mac in bytes
Return values
AESCCM_STATUS_SUCCESSThe operation succeeded.
AESCCM_STATUS_ERRORThe operation failed.
AESCCM_STATUS_FEATURE_NOT_SUPPORTEDThe operation is not supported in this device.
Postcondition
AESCCM_addData()
© Copyright 1995-2026, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale