AM263x MCU+ SDK  10.00.00
DTHE_AES_Params Struct Reference

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
 

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.