1.45 CRYPT_TDES_KeySet Function

C

int CRYPT_TDES_KeySet(
    CRYPT_TDES_CTX* tdes, 
    const unsigned char* key, 
    const unsigned char* iv, 
    int dir
);

Description

This function sets the key and initialization vector (IV) for a set of Triple-DES operations.

Preconditions

None.

Parameters

ParametersDescription
tdesPointer to context which saves state between calls.
keyPointer to buffer holding the key. Must be 24 bytes in size.
ivPointer to buffer holding the initialization vector. Must be 8 bytes in size.
dirIndicates whether encryption or decryption will be done. Can be set to CRYPT_TDES_ENCRYPTION for encryption operations or CRYPT_TDES_DECRYPTION for decryption operations.

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 a multiple of 8 bytes, and must be padded at the end with zeros to meet the length.

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);