Skip to content

Latest commit

 

History

History
60 lines (40 loc) · 1.47 KB

GUID-462AD917-3780-480C-B425-ABE64BBF9840.md

File metadata and controls

60 lines (40 loc) · 1.47 KB

CRYPT_TDES_CBC_Encrypt Function

Parent topic:MPLAB® Harmony Crypto Library

C

int CRYPT_TDES_CBC_Encrypt(
    CRYPT_TDES_CTX* tdes, 
    unsigned char* out, 
    const unsigned char* in, 
    unsigned int inSz
);

Description

This function encrypts a block of data using a Triple DES algorithm.

Preconditions

The context tdes must be set earlier using CRYPT_TDES_KeySet. The input block must be a multiple of 8 bytes long.

Parameters

Parameters Description
tdes Pointer to context which saves state between calls.
out Pointer to output buffer to store the results.
in Pointer to input buffer for the source of the data.
inSz Size of the input data buffer.

Returns

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

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

Remarks

The input data must be padded at the end with zeros to make the length a multiple of 8.

Example

CRYPT_TDES_CTX mcDes3;
int            ret;
byte           out1[TDES_SIZE];
byte           out2[TDES_SIZE];

strncpy((char*)key, "1234567890abcdefghijklmn", 24);
strncpy((char*)iv,  "12345678", 8);

ret = CRYPT_TDES_KeySet(&mcDes3, key, iv, CRYPT_TDES_ENCRYPTION);
ret = CRYPT_TDES_CBC_Encrypt(&mcDes3, out1, ourData, TDES_SIZE);
ret = CRYPT_TDES_KeySet(&mcDes3, key, iv, CRYPT_TDES_DECRYPTION);
ret = CRYPT_TDES_CBC_Decrypt(&mcDes3, out2, out1, TDES_TEST_SIZE);