2.4.1.3 Crypto_Sym_AesXts_Cipher
crypto_Sym_Status_E Crypto_Sym_AesXts_Cipher(
st_Crypto_Sym_BlockCtx *ptr_aesCtx_st,
uint8_t *ptr_inputData,
uint32_t dataLen,
uint8_t *ptr_outData,
uint8_t *ptr_tweak
);
Description
This API performs AES encryption or decryption only for XTS Mode. Initialize context by calling Crypto_Sym_Aes_Init function before calling this API.
Parameters
No. | Argument Type | Argument Name | Type | Description |
---|---|---|---|---|
1 | st_Crypto_Sym_BlockCtx* | ptr_aesCtx_st | Input | AES algorithm context |
2 | uint8_t* | ptr_inputData | Input | Input data to encrypt or decrypt |
3 | uint32_t | dataLen | Input | Input length of plain data or cipher data in bytes |
4 | uint8_t* | ptr_outData | Output | Pointer to store cipher text/plain text as output |
5 | uint8_t* | ptr_tweak | Input | Pointer for the tweak value |
Returns
Return Type | Description |
---|---|
crypto_Sym_Status_E | Function returns the status of the API. |
Example
#define sessionID 1
crypto_Sym_Status_E status;
st_Crypto_Sym_BlockCtx aesCtx_st;
crypto_HandlerType_E handlerType_en = CRYPTO_HANDLER_HW_INTERNAL;
crypto_CipherOper_E cipherOpType_en = CRYPTO_CIOP_ENCRYPT;
crypto_Sym_OpModes_E opMode_en = CRYPTO_SYM_OPMODE_XTS;
uint8_t key[16] = {/*data*/};
uint32_t keyLen = sizeof(key);
uint8_t *ptr_initVect = NULL;
uint8_t inputData[64] = {/*data*/};
uint32_t dataLen = sizeof(inputData);
uint8_t outData[64];
uint8_t ptr_tweak[] = {/*data*/};
status = Crypto_Sym_Aes_Init(
&aesCtx_st,
handlerType_en,
cipherOpType_en,
opMode_en,
key,
keyLen,
ptr_initVect,
sessionID
);
status = Crypto_Sym_AesXts_Cipher(
&aesCtx_st,
inputData,
dataLen,
outData,
ptr_tweak
);