| Kinetis SDK v.2.0 API Reference Manual Rev. 0 Freescale Semiconductor, Inc.

- Main Page
- Related Pages
- API Reference

All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Macros | Functions
LTC DES driver
LTC Blocking APIs

## 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

  | base | LTC peripheral base address
  | plaintext | Input plaintext to encrypt
  [out] | ciphertext | Output ciphertext
  | size | Size of input and output data in bytes. Must be multiple of 8 bytes.
  | key | Input 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

  | base | LTC peripheral base address
  | ciphertext | Input ciphertext to decrypt
  [out] | plaintext | Output plaintext
  | size | Size of input and output data in bytes. Must be multiple of 8 bytes.
  | key | Input 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

  | base | LTC peripheral base address
  | plaintext | Input plaintext to encrypt
  [out] | ciphertext | Ouput ciphertext
  | size | Size of input and output data in bytes
  | iv | Input initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
  | key | Input 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

  | base | LTC peripheral base address
  | ciphertext | Input ciphertext to decrypt
  [out] | plaintext | Output plaintext
  | size | Size of input data in bytes
  | iv | Input initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
  | key | Input 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

  | base | LTC peripheral base address
  | plaintext | Input plaintext to encrypt
  | size | Size of input data in bytes
  | iv | Input initial block.
  | key | Input key to use for encryption
  [out] | ciphertext | Output 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

  | base | LTC peripheral base address
  | ciphertext | Input ciphertext to decrypt
  [out] | plaintext | Output plaintext
  | size | Size of input and output data in bytes
  | iv | Input initial block.
  | key | Input 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

  | base | LTC peripheral base address
  | plaintext | Input plaintext to encrypt
  [out] | ciphertext | Output ciphertext
  | size | Size of input and output data in bytes
  | iv | Input unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
  | key | Input 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

  | base | LTC peripheral base address
  | ciphertext | Input ciphertext to decrypt
  [out] | plaintext | Output plaintext
  | size | Size of input and output data in bytes. Must be multiple of 8 bytes.
  | iv | Input unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
  | key | Input 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

  | base | LTC peripheral base address
  | plaintext | Input plaintext to encrypt
  [out] | ciphertext | Output ciphertext
  | size | Size of input and output data in bytes. Must be multiple of 8 bytes.
  | key1 | First input key for key bundle
  | key2 | Second 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

  | base | LTC peripheral base address
  | ciphertext | Input ciphertext to decrypt
  [out] | plaintext | Output plaintext
  | size | Size of input and output data in bytes. Must be multiple of 8 bytes.
  | key1 | First input key for key bundle
  | key2 | Second 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

  | base | LTC peripheral base address
  | plaintext | Input plaintext to encrypt
  [out] | ciphertext | Output ciphertext
  | size | Size of input and output data in bytes
  | iv | Input initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
  | key1 | First input key for key bundle
  | key2 | Second 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

  | base | LTC peripheral base address
  | ciphertext | Input ciphertext to decrypt
  [out] | plaintext | Output plaintext
  | size | Size of input and output data in bytes
  | iv | Input initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
  | key1 | First input key for key bundle
  | key2 | Second 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

  | base | LTC peripheral base address
  | plaintext | Input plaintext to encrypt
  [out] | ciphertext | Output ciphertext
  | size | Size of input and output data in bytes
  | iv | Input initial block.
  | key1 | First input key for key bundle
  | key2 | Second 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

  | base | LTC peripheral base address
  | ciphertext | Input ciphertext to decrypt
  [out] | plaintext | Output plaintext
  | size | Size of input and output data in bytes
  | iv | Input initial block.
  | key1 | First input key for key bundle
  | key2 | Second 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

  | base | LTC peripheral base address
  | plaintext | Input plaintext to encrypt
  [out] | ciphertext | Output ciphertext
  | size | Size of input and output data in bytes
  | iv | Input unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
  | key1 | First input key for key bundle
  | key2 | Second 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

  | base | LTC peripheral base address
  | ciphertext | Input ciphertext to decrypt
  [out] | plaintext | Output plaintext
  | size | Size of input and output data in bytes
  | iv | Input unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
  | key1 | First input key for key bundle
  | key2 | Second 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

  | base | LTC peripheral base address
  | plaintext | Input plaintext to encrypt
  [out] | ciphertext | Output ciphertext
  | size | Size of input and output data in bytes. Must be multiple of 8 bytes.
  | key1 | First input key for key bundle
  | key2 | Second input key for key bundle
  | key3 | Third 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

  | base | LTC peripheral base address
  | ciphertext | Input ciphertext to decrypt
  [out] | plaintext | Output plaintext
  | size | Size of input and output data in bytes. Must be multiple of 8 bytes.
  | key1 | First input key for key bundle
  | key2 | Second input key for key bundle
  | key3 | Third 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

  | base | LTC peripheral base address
  | plaintext | Input plaintext to encrypt
  [out] | ciphertext | Output ciphertext
  | size | Size of input data in bytes
  | iv | Input initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
  | key1 | First input key for key bundle
  | key2 | Second input key for key bundle
  | key3 | Third 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

  | base | LTC peripheral base address
  | ciphertext | Input ciphertext to decrypt
  [out] | plaintext | Output plaintext
  | size | Size of input and output data in bytes
  | iv | Input initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
  | key1 | First input key for key bundle
  | key2 | Second input key for key bundle
  | key3 | Third 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

  | base | LTC peripheral base address
  | plaintext | Input plaintext to encrypt
  [out] | ciphertext | Output ciphertext
  | size | Size of input and ouput data in bytes
  | iv | Input initial block.
  | key1 | First input key for key bundle
  | key2 | Second input key for key bundle
  | key3 | Third 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

  | base | LTC peripheral base address
  | ciphertext | Input ciphertext to decrypt
  [out] | plaintext | Output plaintext
  | size | Size of input data in bytes
  | iv | Input initial block.
  | key1 | First input key for key bundle
  | key2 | Second input key for key bundle
  | key3 | Third 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

  | base | LTC peripheral base address
  | plaintext | Input plaintext to encrypt
  [out] | ciphertext | Output ciphertext
  | size | Size of input and output data in bytes
  | iv | Input unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
  | key1 | First input key for key bundle
  | key2 | Second input key for key bundle
  | key3 | Third 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

  | base | LTC peripheral base address
  | ciphertext | Input ciphertext to decrypt
  [out] | plaintext | Output plaintext
  | size | Size of input and output data in bytes
  | iv | Input unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
  | key1 | First input key for key bundle
  | key2 | Second input key for key bundle
  | key3 | Third input key for key bundle

Returns
  Status from encrypt/decrypt operation