Parent topic:MPLABĀ® Harmony Crypto Library
int CRYPT_AES_CBC_Decrypt(
CRYPT_AES_CTX* aes, 
unsigned char* out, 
const unsigned char* in, 
unsigned int inSz
);
This function decrypts a block of data using the AES algorithm in Cipher-Block-Chaining (CBC) mode.
Key and Initialization Vector (IV) must be set earlier with a call to CRYPT_AES_KeySet and CRYPT_AES_IvSet.
| Parameters | Description | 
|---|---|
| aes | Pointer to context which saves state between calls. | 
| out | Pointer to buffer to store the results of the decryption pass. | 
| in | Pointer to buffer holding the data to be decrypted. | 
| inSz | Size of the input data, in bytes. | 
BAD_FUNC_ARG - An invalid pointer was passed to the function.
0 - An invalid pointer was not passed to the function.
The output buffer must be equal in size to the input buffer.
CRYPT_AES_CTX mcAes;
int           ret;
byte          out1[AES_TEST_SIZE];
byte          out2[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_Decrypt(&mcAes, out2, out1, AES_TEST_SIZE);