Skip to content

Latest commit

 

History

History
57 lines (37 loc) · 1.33 KB

GUID-46B9CCBC-5B9A-4489-808A-119EE816D2C7.md

File metadata and controls

57 lines (37 loc) · 1.33 KB

CRYPT_AES_CBC_Encrypt Function

Parent topic:MPLAB® Harmony Crypto Library

C

int CRYPT_AES_CBC_Encrypt(
CRYPT_AES_CTX* aes, 
unsigned char* out, 
const unsigned char* in, 
unsigned int inSz
);

Description

This function encrypts a block of data using the AES algorithm in Cipher-Block-Chaining (CBC) mode.

Preconditions

Key and Initialization Vector (IV) must be set earlier with a call to CRYPT_AES_KeySet and CRYPT_AES_IvSet.

Parameters

Parameters Description
aes Pointer to context which saves state between calls.
out Pointer to buffer to store the results of the encryption pass.
in Pointer to buffer holding the data to be encrypted.
inSz Size of the input data, in bytes.

Returns

  • BAD_FUNC_ARG - An invalid pointer was passed to the function.

  • 0 - An invalid pointer was not passed to the function.

Remarks

The output buffer must be equal in size to the input buffer.

Example

CRYPT_AES_CTX mcAes;
int           ret;
byte          out1[AES_TEST_SIZE];

strncpy((char*)key, "1234567890abcdefghijklmnopqrstuv", 32);
strncpy((char*)iv,  "1234567890abcdef", 16);

ret = CRYPT_AES_KeySet(&mcAes, key, 16, iv, CRYPT_AES_ENCRYPTION);
ret = CRYPT_AES_CBC_Encrypt(&mcAes, out1, ourData, AES_TEST_SIZE);