AM261x MCU+ SDK: DTHE_AES_Params Struct Reference

| AM261x MCU+ SDK 26.00.00 |

Data Fields
DTHE_AES_Params Struct Reference
APIs for Security Drivers » APIs for DTHE AES

## Detailed Description

AES Driver Parameters This structure has all the parameters which are need by the AES Driver to perform the specified operation.

Parameter | DTHE_AES_ONE_SHOT_SUPPORT | DTHE_AES_STREAM_INIT | DTHE_AES_STREAM_UPDATE | DTHE_AES_STREAM_FINISH
--- | --- | --- | --- | ---
algoType | * | * | * | *
opType | * | * | * | *
useKEKMode | * | * |  |
ptrKey | * | * |  |
ptrKey1 | * | * |  |
ptrKey2 | * | * |  |
keyLen | * | * |  |
ptrIV | * | * |  |
dataLenBytes | * |  |  |
ptrEncryptedData | * |  | * | *
ptrPlainTextData | * |  | * | *
counterWidth | * | * |  |
streamState |  | * | * | *
streamSize |  |  | * | *
ptrTag |  |  |  | *

## Data Fields
uint32_t | algoType
uint32_t | opType
| Operation to be performed by the AES Driver. More...
Bool | useKEKMode
uint32_t * | ptrKey
uint32_t * | ptrKey1
uint32_t * | ptrKey2
uint8_t | keyLen
| Length of the Key. More...
uint32_t * | ptrIV
uint32_t | dataLenBytes
uint32_t * | ptrEncryptedData
uint32_t * | ptrPlainTextData
uint32_t * | ptrTag
uint32_t | counterWidth
uint32_t | streamState
uint32_t | streamSize
uint32_t * | ptrAAD
uint32_t | aadLength
uint32_t | ccmL
uint32_t | ccmM
uint32_t | modeSelect

## Field Documentation

## ◆ algoType

uint32_t DTHE_AES_Params::algoType

< Algorithm to be performed by the AES Driver

## ◆ opType

uint32_t DTHE_AES_Params::opType

Operation to be performed by the AES Driver.

## ◆ useKEKMode

Bool DTHE_AES_Params::useKEKMode

< This is a boolean flag which indicates if the KEK mode is to be used or not. If this is set to TRUE then the 'ptrKey' below is not used. The operation mode is ignored and this is only used for encryption.

## ◆ ptrKey

uint32_t* DTHE_AES_Params::ptrKey

< Pointer to the key to be used to perform the decryption. The driver supports AES-CBC with 256bit keys. This is only valid if the KEK mode flag above is set to be FALSE.

## ◆ ptrKey1

uint32_t* DTHE_AES_Params::ptrKey1

< To be used only for CMAC

## ◆ ptrKey2

uint32_t* DTHE_AES_Params::ptrKey2

< To be used only for CMAC

## ◆ keyLen

uint8_t DTHE_AES_Params::keyLen

Length of the Key.

## ◆ ptrIV

uint32_t* DTHE_AES_Params::ptrIV

< Pointer to the Initialization Vector to be used.

## ◆ dataLenBytes

uint32_t DTHE_AES_Params::dataLenBytes

< Size of the data in bytes. This value cannot be equal to zero. For MAC algorithms, which support dataLength as zero bytes, the handling is done outside the driver scope.

## ◆ ptrEncryptedData

uint32_t* DTHE_AES_Params::ptrEncryptedData

< Pointer to the encrypted data buffer:

Decryption Operation Mode:

- This is used as an input parameter and is used to point to the location of the encrypted data buffer.

Encryption Operation Mode:

- This is used as an output parameter and is the location where the encrypted data will be present.

Note : Not valid for AES-CMAC mode.

## ◆ ptrPlainTextData

uint32_t* DTHE_AES_Params::ptrPlainTextData

< Pointer to the Plain Text data buffer:

Decryption Operation Mode:

- This is used as an output parameter and is used to point to the location of the plain text data after the encrypted data has been decrypted.

Encryption Operation Mode:

- This is used as an input parameter and is the location where the plain text data is present which will be encrypted.

## ◆ ptrTag

uint32_t* DTHE_AES_Params::ptrTag

< Pointer to Tag

## ◆ counterWidth

uint32_t DTHE_AES_Params::counterWidth

< Width of Counter in bits

## ◆ streamState

uint32_t DTHE_AES_Params::streamState

< Only valid for Streaming Support; Valid values are - DTHE_AES_STREAM_INIT, DTHE_AES_STREAM_UPDATE, DTHE_AES_STREAM_FINISH

## ◆ streamSize

uint32_t DTHE_AES_Params::streamSize

< Only valid for Streaming Support

- This field is not populated in case of streamState==DTHE_AES_ONE_SHOT_SUPPORT and streamState==DTHE_AES_STREAM_INIT and can be set as 0
- In case of streamState == DTHE_AES_STREAM_UPDATE, the streamSize must be aligned to 16 Bytes.
- In case of streamState == DTHE_AES_STREAM_FINISH, the streamSize does not have to be aligned to 16 Bytes.

## ◆ ptrAAD

uint32_t* DTHE_AES_Params::ptrAAD

< pointer of AAD

## ◆ aadLength

uint32_t DTHE_AES_Params::aadLength

< AAD length

## ◆ ccmL

uint32_t DTHE_AES_Params::ccmL

< CCML value

## ◆ ccmM

uint32_t DTHE_AES_Params::ccmM

< CCMM value

## ◆ modeSelect

uint32_t DTHE_AES_Params::modeSelect

< To be used only for GCM, additional mode selection for GCM operation Supported values are 1, 2 and 3.

< To be used only for XTS, additional mode selection for XTS operation Supported values are 1, 2 and 3.