704 #ifndef ti_drivers_AESCCM__include 705 #define ti_drivers_AESCCM__include 730 #define AESCCM_STATUS_RESERVED AES_STATUS_RESERVED 738 #define AESCCM_STATUS_SUCCESS AES_STATUS_SUCCESS 746 #define AESCCM_STATUS_ERROR AES_STATUS_ERROR 756 #define AESCCM_STATUS_RESOURCE_UNAVAILABLE AES_STATUS_RESOURCE_UNAVAILABLE 761 #define AESCCM_STATUS_CANCELED AES_STATUS_CANCELED 770 #define AESCCM_STATUS_MAC_INVALID AES_STATUS_MAC_INVALID 776 #define AESCCM_STATUS_FEATURE_NOT_SUPPORTED AES_STATUS_FEATURE_NOT_SUPPORTED 781 #define AESCCM_STATUS_KEYSTORE_INVALID_ID AES_STATUS_KEYSTORE_INVALID_ID 787 #define AESCCM_STATUS_KEYSTORE_GENERIC_ERROR AES_STATUS_KEYSTORE_GENERIC_ERROR 795 #define AESCCM_STATUS_UNALIGNED_IO_NOT_SUPPORTED AES_STATUS_UNALIGNED_IO_NOT_SUPPORTED 1051 int_fast16_t returnValue,
1168 size_t totalAADLength,
1169 size_t totalPlaintextLength,
1205 size_t totalAADLength,
1206 size_t totalPlaintextLength,
1238 size_t plaintextLength,
1262 const uint8_t *nonce,
1263 size_t nonceLength);
1292 size_t* nonceLength);
int_fast16_t AESCCM_oneStepDecrypt(AESCCM_Handle handle, AESCCM_OneStepOperation *operationStruct)
Function to perform an AESCCM decryption + verification operation in one call.
uint8_t * output
Definition: AESCCM.h:949
int_fast16_t AESCCM_generateNonce(AESCCM_Handle handle, uint8_t *nonce, size_t nonceSize, size_t *nonceLength)
Function to generate a nonce for an AES CCM segmented encryption operation.
ADC_Params params
Definition: Driver_Init.h:11
int_fast16_t AESCCM_finalizeDecrypt(AESCCM_Handle handle, AESCCM_SegmentedFinalizeOperation *operation)
Finalize the MAC and plaintext and verify it.
The CryptoKey type is an opaque representation of a cryptographic key.
uint8_t * aad
Definition: AESCCM.h:927
Struct containing the parameters required for encrypting/decrypting a message in a segmented operatio...
Definition: AESCCM.h:943
Struct containing the parameters required for finalizing an encryption/decryption and authentication/...
Definition: AESCCM.h:967
uint8_t * output
Definition: AESCCM.h:973
Definition: AESCCM.h:1026
Definition: AESCCM.h:1028
Struct containing the parameters required for encrypting/decrypting and authenticating/verifying a me...
Definition: AESCCM.h:868
void AESCCM_OneStepOperation_init(AESCCM_OneStepOperation *operationStruct)
Function to initialize an AESCCM_OneStepOperation struct to its defaults.
uint32_t timeout
Definition: AESCCM.h:1066
AESCCM_SegmentedDataOperation segmentedDataOperation
Definition: AESCCM.h:1015
void * custom
Definition: AESCCM.h:1069
uint8_t macLength
Definition: AESCCM.h:991
Definition: AESCCM.h:1025
size_t inputLength
Definition: AESCCM.h:955
AESCCM_Handle AESCCM_open(uint_least8_t index, const AESCCM_Params *params)
This function opens a given CCM peripheral.
const AESCCM_Params AESCCM_defaultParams
Default AESCCM_Params structure.
AES Global configuration.
Definition: AESCommon.h:154
AESCCM_SegmentedAADOperation segmentedAADOperation
Definition: AESCCM.h:1014
Definition: AESCCM.h:1024
int_fast16_t AESCCM_setupDecrypt(AESCCM_Handle handle, const CryptoKey *key, size_t totalAADLength, size_t totalPlaintextLength, size_t macLength)
Function to prepare a segmented AESCCM decryption operation.
CCM Parameters.
Definition: AESCCM.h:1063
CryptoKey datastructure.
Definition: CryptoKey.h:192
uint8_t nonceLength
Definition: AESCCM.h:907
uint8_t * mac
Definition: AESCCM.h:979
int_fast16_t AESCCM_cancelOperation(AESCCM_Handle handle)
Cancels an ongoing AESCCM operation.
Definition: AESCommon.h:184
bool nonceInternallyGenerated
Definition: AESCCM.h:915
Definition: AESCommon.h:194
void AESCCM_SegmentedFinalizeOperation_init(AESCCM_SegmentedFinalizeOperation *operationStruct)
Function to initialize an AESCCM_SegmentedFinalizeOperation struct to its defaults.
int_fast16_t AESCCM_setLengths(AESCCM_Handle handle, size_t aadLength, size_t plaintextLength, size_t macLength)
Function to set the lengths of the message, additional data, and MAC.
void AESCCM_Params_init(AESCCM_Params *params)
Function to initialize the AESCCM_Params struct to its defaults.
Definition: AESCCM.h:1032
Struct containing the parameters required for authenticating/verifying additional data in a segmented...
Definition: AESCCM.h:926
uint8_t * input
Definition: AESCCM.h:968
int_fast16_t AESCCM_setNonce(AESCCM_Handle handle, const uint8_t *nonce, size_t nonceLength)
Function to set the nonce for an AES CCM segmented operation.
CryptoKey * key
Definition: AESCCM.h:869
size_t aadLength
Definition: AESCCM.h:896
size_t inputLength
Definition: AESCCM.h:901
size_t aadLength
Definition: AESCCM.h:931
Definition: AESCommon.h:190
uint8_t * output
Definition: AESCCM.h:879
int_fast16_t AESCCM_setupEncrypt(AESCCM_Handle handle, const CryptoKey *key, size_t totalAADLength, size_t totalPlaintextLength, size_t macLength)
Function to prepare a segmented AESCCM encryption operation.
size_t inputLength
Definition: AESCCM.h:985
union AESCCM_OperationUnion AESCCM_OperationUnion
Union containing a reference to a one step, segmented AAD, segmented data, or segmented finalize oper...
void(* AESCCM_CallbackFxn)(AESCCM_Handle handle, int_fast16_t returnValue, AESCCM_OperationUnion *operation, AESCCM_OperationType operationType)
The definition of a callback function used by the AESCCM driver when used in AESCCM_RETURN_BEHAVIOR_C...
Definition: AESCCM.h:1050
AESCCM_Handle AESCCM_construct(AESCCM_Config *config, const AESCCM_Params *params)
Constructs a new AESCCM object.
int_fast16_t AESCCM_oneStepEncrypt(AESCCM_Handle handle, AESCCM_OneStepOperation *operationStruct)
Function to perform an AESCCM encryption + authentication operation in one call.
Definition: AESCCM.h:1030
uint8_t * aad
Definition: AESCCM.h:870
AESCCM_ReturnBehavior returnBehavior
Definition: AESCCM.h:1064
void AESCCM_Operation_init(AESCCM_Operation *operationStruct)
Function to initialize an AESCCM_Operation struct to its defaults.
Union containing a reference to a one step, segmented AAD, segmented data, or segmented finalize oper...
Definition: AESCCM.h:1011
int_fast16_t AESCCM_addData(AESCCM_Handle handle, AESCCM_SegmentedDataOperation *operation)
Adds a segment of data with a length in bytes to the plaintext/ciphertext output and generated MAC...
void AESCCM_close(AESCCM_Handle handle)
Function to close a CCM peripheral specified by the CCM handle.
AESCCM_CallbackFxn callbackFxn
Definition: AESCCM.h:1065
Definition: AESCCM.h:1029
AESCCM_Mode
Enum for the direction of the CCM operation.
Definition: AESCCM.h:859
uint8_t * mac
Definition: AESCCM.h:890
AESCCM_OperationType
Enum for the operation types supported by the driver.
Definition: AESCCM.h:1022
AESCCM_Config * AESCCM_Handle
A handle that is returned from an AESCCM_open() call.
Definition: AESCCM.h:813
uint8_t * input
Definition: AESCCM.h:944
AESCCM_ReturnBehavior
The way in which CCM function calls return after performing an encryption + authentication or decrypt...
Definition: AESCCM.h:836
void AESCCM_init(void)
This function initializes the CCM module.
Definition: AESCCM.h:1027
uint8_t macLength
Definition: AESCCM.h:910
int_fast16_t AESCCM_addAAD(AESCCM_Handle handle, AESCCM_SegmentedAADOperation *operation)
Adds a segment of aad with a length in bytes to the generated MAC. The length must be a multiple of a...
void AESCCM_SegmentedAADOperation_init(AESCCM_SegmentedAADOperation *operationStruct)
Function to initialize an AESCCM_SegmentedAADOperation struct to its defaults.
AES common module header for all devices.
uint8_t * input
Definition: AESCCM.h:874
AESCCM_SegmentedFinalizeOperation segmentedFinalizeOperation
Definition: AESCCM.h:1016
Definition: AESCCM.h:1031
AESCCM_OneStepOperation oneStepOperation
Definition: AESCCM.h:1013
Definition: AESCCM.h:1023
void AESCCM_SegmentedDataOperation_init(AESCCM_SegmentedDataOperation *operationStruct)
Function to initialize an AESCCM_SegmentedDataOperation struct to its defaults.
AESCommon_Config AESCCM_Config
AESCCM Global configuration.
Definition: AESCCM.h:808
uint8_t * nonce
Definition: AESCCM.h:885
AESCCM_OneStepOperation AESCCM_Operation
Definition: AESCCM.h:1005
int_fast16_t AESCCM_finalizeEncrypt(AESCCM_Handle handle, AESCCM_SegmentedFinalizeOperation *operation)
Finalize the MAC and ciphertext.