Kinetis SDK v.2.0 API Reference Manual  Rev. 0
Freescale Semiconductor, Inc.
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
LTC DES driver

Overview

This section describes the programming interface of the LTC DES driver.

Macros

#define LTC_DES_KEY_SIZE   8
 LTC DES key size - 64 bits. More...
 
#define LTC_DES_IV_SIZE   8
 LTC DES IV size - 8 bytes.
 

Functions

status_t LTC_DES_EncryptEcb (LTC_Type *base, const uint8_t *plaintext, uint8_t *ciphertext, uint32_t size, const uint8_t key[LTC_DES_KEY_SIZE])
 Encrypts DES using ECB block mode. More...
 
status_t LTC_DES_DecryptEcb (LTC_Type *base, const uint8_t *ciphertext, uint8_t *plaintext, uint32_t size, const uint8_t key[LTC_DES_KEY_SIZE])
 Decrypts DES using ECB block mode. More...
 
status_t LTC_DES_EncryptCbc (LTC_Type *base, const uint8_t *plaintext, uint8_t *ciphertext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key[LTC_DES_KEY_SIZE])
 Encrypts DES using CBC block mode. More...
 
status_t LTC_DES_DecryptCbc (LTC_Type *base, const uint8_t *ciphertext, uint8_t *plaintext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key[LTC_DES_KEY_SIZE])
 Decrypts DES using CBC block mode. More...
 
status_t LTC_DES_EncryptCfb (LTC_Type *base, const uint8_t *plaintext, uint8_t *ciphertext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key[LTC_DES_KEY_SIZE])
 Encrypts DES using CFB block mode. More...
 
status_t LTC_DES_DecryptCfb (LTC_Type *base, const uint8_t *ciphertext, uint8_t *plaintext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key[LTC_DES_KEY_SIZE])
 Decrypts DES using CFB block mode. More...
 
status_t LTC_DES_EncryptOfb (LTC_Type *base, const uint8_t *plaintext, uint8_t *ciphertext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key[LTC_DES_KEY_SIZE])
 Encrypts DES using OFB block mode. More...
 
status_t LTC_DES_DecryptOfb (LTC_Type *base, const uint8_t *ciphertext, uint8_t *plaintext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key[LTC_DES_KEY_SIZE])
 Decrypts DES using OFB block mode. More...
 
status_t LTC_DES2_EncryptEcb (LTC_Type *base, const uint8_t *plaintext, uint8_t *ciphertext, uint32_t size, const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE])
 Encrypts triple DES using ECB block mode with two keys. More...
 
status_t LTC_DES2_DecryptEcb (LTC_Type *base, const uint8_t *ciphertext, uint8_t *plaintext, uint32_t size, const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE])
 Decrypts triple DES using ECB block mode with two keys. More...
 
status_t LTC_DES2_EncryptCbc (LTC_Type *base, const uint8_t *plaintext, uint8_t *ciphertext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE])
 Encrypts triple DES using CBC block mode with two keys. More...
 
status_t LTC_DES2_DecryptCbc (LTC_Type *base, const uint8_t *ciphertext, uint8_t *plaintext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE])
 Decrypts triple DES using CBC block mode with two keys. More...
 
status_t LTC_DES2_EncryptCfb (LTC_Type *base, const uint8_t *plaintext, uint8_t *ciphertext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE])
 Encrypts triple DES using CFB block mode with two keys. More...
 
status_t LTC_DES2_DecryptCfb (LTC_Type *base, const uint8_t *ciphertext, uint8_t *plaintext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE])
 Decrypts triple DES using CFB block mode with two keys. More...
 
status_t LTC_DES2_EncryptOfb (LTC_Type *base, const uint8_t *plaintext, uint8_t *ciphertext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE])
 Encrypts triple DES using OFB block mode with two keys. More...
 
status_t LTC_DES2_DecryptOfb (LTC_Type *base, const uint8_t *ciphertext, uint8_t *plaintext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE])
 Decrypts triple DES using OFB block mode with two keys. More...
 
status_t LTC_DES3_EncryptEcb (LTC_Type *base, const uint8_t *plaintext, uint8_t *ciphertext, uint32_t size, const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE], const uint8_t key3[LTC_DES_KEY_SIZE])
 Encrypts triple DES using ECB block mode with three keys. More...
 
status_t LTC_DES3_DecryptEcb (LTC_Type *base, const uint8_t *ciphertext, uint8_t *plaintext, uint32_t size, const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE], const uint8_t key3[LTC_DES_KEY_SIZE])
 Decrypts triple DES using ECB block mode with three keys. More...
 
status_t LTC_DES3_EncryptCbc (LTC_Type *base, const uint8_t *plaintext, uint8_t *ciphertext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE], const uint8_t key3[LTC_DES_KEY_SIZE])
 Encrypts triple DES using CBC block mode with three keys. More...
 
status_t LTC_DES3_DecryptCbc (LTC_Type *base, const uint8_t *ciphertext, uint8_t *plaintext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE], const uint8_t key3[LTC_DES_KEY_SIZE])
 Decrypts triple DES using CBC block mode with three keys. More...
 
status_t LTC_DES3_EncryptCfb (LTC_Type *base, const uint8_t *plaintext, uint8_t *ciphertext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE], const uint8_t key3[LTC_DES_KEY_SIZE])
 Encrypts triple DES using CFB block mode with three keys. More...
 
status_t LTC_DES3_DecryptCfb (LTC_Type *base, const uint8_t *ciphertext, uint8_t *plaintext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE], const uint8_t key3[LTC_DES_KEY_SIZE])
 Decrypts triple DES using CFB block mode with three keys. More...
 
status_t LTC_DES3_EncryptOfb (LTC_Type *base, const uint8_t *plaintext, uint8_t *ciphertext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE], const uint8_t key3[LTC_DES_KEY_SIZE])
 Encrypts triple DES using OFB block mode with three keys. More...
 
status_t LTC_DES3_DecryptOfb (LTC_Type *base, const uint8_t *ciphertext, uint8_t *plaintext, uint32_t size, const uint8_t iv[LTC_DES_IV_SIZE], const uint8_t key1[LTC_DES_KEY_SIZE], const uint8_t key2[LTC_DES_KEY_SIZE], const uint8_t key3[LTC_DES_KEY_SIZE])
 Decrypts triple DES using OFB block mode with three keys. More...
 

Macro Definition Documentation

#define LTC_DES_KEY_SIZE   8

Function Documentation

status_t LTC_DES_EncryptEcb ( LTC_Type *  base,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
uint32_t  size,
const uint8_t  key[LTC_DES_KEY_SIZE] 
)

Encrypts DES using ECB block mode.

Parameters
baseLTC peripheral base address
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes. Must be multiple of 8 bytes.
keyInput key to use for encryption
Returns
Status from encrypt/decrypt operation
status_t LTC_DES_DecryptEcb ( LTC_Type *  base,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
uint32_t  size,
const uint8_t  key[LTC_DES_KEY_SIZE] 
)

Decrypts DES using ECB block mode.

Parameters
baseLTC peripheral base address
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes. Must be multiple of 8 bytes.
keyInput key to use for decryption
Returns
Status from encrypt/decrypt operation
status_t LTC_DES_EncryptCbc ( LTC_Type *  base,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key[LTC_DES_KEY_SIZE] 
)

Encrypts DES using CBC block mode.

Parameters
baseLTC peripheral base address
plaintextInput plaintext to encrypt
[out]ciphertextOuput ciphertext
sizeSize of input and output data in bytes
ivInput initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
keyInput key to use for encryption
Returns
Status from encrypt/decrypt operation
status_t LTC_DES_DecryptCbc ( LTC_Type *  base,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key[LTC_DES_KEY_SIZE] 
)

Decrypts DES using CBC block mode.

Parameters
baseLTC peripheral base address
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input data in bytes
ivInput initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
keyInput key to use for decryption
Returns
Status from encrypt/decrypt operation
status_t LTC_DES_EncryptCfb ( LTC_Type *  base,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key[LTC_DES_KEY_SIZE] 
)

Encrypts DES using CFB block mode.

Parameters
baseLTC peripheral base address
plaintextInput plaintext to encrypt
sizeSize of input data in bytes
ivInput initial block.
keyInput key to use for encryption
[out]ciphertextOutput ciphertext
Returns
Status from encrypt/decrypt operation
status_t LTC_DES_DecryptCfb ( LTC_Type *  base,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key[LTC_DES_KEY_SIZE] 
)

Decrypts DES using CFB block mode.

Parameters
baseLTC peripheral base address
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes
ivInput initial block.
keyInput key to use for decryption
Returns
Status from encrypt/decrypt operation
status_t LTC_DES_EncryptOfb ( LTC_Type *  base,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key[LTC_DES_KEY_SIZE] 
)

Encrypts DES using OFB block mode.

Parameters
baseLTC peripheral base address
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes
ivInput unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
keyInput key to use for encryption
Returns
Status from encrypt/decrypt operation
status_t LTC_DES_DecryptOfb ( LTC_Type *  base,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key[LTC_DES_KEY_SIZE] 
)

Decrypts DES using OFB block mode.

Parameters
baseLTC peripheral base address
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes. Must be multiple of 8 bytes.
ivInput unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
keyInput key to use for decryption
Returns
Status from encrypt/decrypt operation
status_t LTC_DES2_EncryptEcb ( LTC_Type *  base,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
uint32_t  size,
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE] 
)

Encrypts triple DES using ECB block mode with two keys.

Parameters
baseLTC peripheral base address
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes. Must be multiple of 8 bytes.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t LTC_DES2_DecryptEcb ( LTC_Type *  base,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
uint32_t  size,
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE] 
)

Decrypts triple DES using ECB block mode with two keys.

Parameters
baseLTC peripheral base address
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes. Must be multiple of 8 bytes.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t LTC_DES2_EncryptCbc ( LTC_Type *  base,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE] 
)

Encrypts triple DES using CBC block mode with two keys.

Parameters
baseLTC peripheral base address
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes
ivInput initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t LTC_DES2_DecryptCbc ( LTC_Type *  base,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE] 
)

Decrypts triple DES using CBC block mode with two keys.

Parameters
baseLTC peripheral base address
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes
ivInput initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t LTC_DES2_EncryptCfb ( LTC_Type *  base,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE] 
)

Encrypts triple DES using CFB block mode with two keys.

Parameters
baseLTC peripheral base address
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes
ivInput initial block.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t LTC_DES2_DecryptCfb ( LTC_Type *  base,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE] 
)

Decrypts triple DES using CFB block mode with two keys.

Parameters
baseLTC peripheral base address
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes
ivInput initial block.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t LTC_DES2_EncryptOfb ( LTC_Type *  base,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE] 
)

Encrypts triple DES using OFB block mode with two keys.

Parameters
baseLTC peripheral base address
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes
ivInput unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t LTC_DES2_DecryptOfb ( LTC_Type *  base,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE] 
)

Decrypts triple DES using OFB block mode with two keys.

Parameters
baseLTC peripheral base address
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes
ivInput unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t LTC_DES3_EncryptEcb ( LTC_Type *  base,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
uint32_t  size,
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE],
const uint8_t  key3[LTC_DES_KEY_SIZE] 
)

Encrypts triple DES using ECB block mode with three keys.

Parameters
baseLTC peripheral base address
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes. Must be multiple of 8 bytes.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t LTC_DES3_DecryptEcb ( LTC_Type *  base,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
uint32_t  size,
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE],
const uint8_t  key3[LTC_DES_KEY_SIZE] 
)

Decrypts triple DES using ECB block mode with three keys.

Parameters
baseLTC peripheral base address
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes. Must be multiple of 8 bytes.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t LTC_DES3_EncryptCbc ( LTC_Type *  base,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE],
const uint8_t  key3[LTC_DES_KEY_SIZE] 
)

Encrypts triple DES using CBC block mode with three keys.

Parameters
baseLTC peripheral base address
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input data in bytes
ivInput initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t LTC_DES3_DecryptCbc ( LTC_Type *  base,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE],
const uint8_t  key3[LTC_DES_KEY_SIZE] 
)

Decrypts triple DES using CBC block mode with three keys.

Parameters
baseLTC peripheral base address
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes
ivInput initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t LTC_DES3_EncryptCfb ( LTC_Type *  base,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE],
const uint8_t  key3[LTC_DES_KEY_SIZE] 
)

Encrypts triple DES using CFB block mode with three keys.

Parameters
baseLTC peripheral base address
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and ouput data in bytes
ivInput initial block.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t LTC_DES3_DecryptCfb ( LTC_Type *  base,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE],
const uint8_t  key3[LTC_DES_KEY_SIZE] 
)

Decrypts triple DES using CFB block mode with three keys.

Parameters
baseLTC peripheral base address
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input data in bytes
ivInput initial block.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t LTC_DES3_EncryptOfb ( LTC_Type *  base,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE],
const uint8_t  key3[LTC_DES_KEY_SIZE] 
)

Encrypts triple DES using OFB block mode with three keys.

Parameters
baseLTC peripheral base address
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes
ivInput unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t LTC_DES3_DecryptOfb ( LTC_Type *  base,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
uint32_t  size,
const uint8_t  iv[LTC_DES_IV_SIZE],
const uint8_t  key1[LTC_DES_KEY_SIZE],
const uint8_t  key2[LTC_DES_KEY_SIZE],
const uint8_t  key3[LTC_DES_KEY_SIZE] 
)

Decrypts triple DES using OFB block mode with three keys.

Parameters
baseLTC peripheral base address
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes
ivInput unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation