# Kinetis SDK v.2.0 API Reference Manual: LTC eDMA DES driver

All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
LTC eDMA DES driver
LTC Non-blocking eDMA APIs

## Overview

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

## Functions

status_t | LTC_DES_EncryptEcbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_DecryptEcbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_EncryptCbcEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_DecryptCbcEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_EncryptCfbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_DecryptCfbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_EncryptOfbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_DecryptOfbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_EncryptEcbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_DecryptEcbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_EncryptCbcEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_DecryptCbcEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_EncryptCfbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_DecryptCfbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_EncryptOfbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_DecryptOfbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_EncryptEcbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_DecryptEcbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_EncryptCbcEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_DecryptCbcEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_EncryptCfbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_DecryptCfbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_EncryptOfbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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_DecryptOfbEDMA (LTC_Type *base, ltc_edma_handle_t *handle, 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...

## Function Documentation

status_t LTC_DES_EncryptEcbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_DecryptEcbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_EncryptCbcEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_DecryptCbcEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_EncryptCfbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_DecryptCfbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_EncryptOfbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_DecryptOfbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_EncryptEcbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_DecryptEcbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_EncryptCbcEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_DecryptCbcEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_EncryptCfbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_DecryptCfbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_EncryptOfbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_DecryptOfbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_EncryptEcbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_DecryptEcbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_EncryptCbcEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_DecryptCbcEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_EncryptCfbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_DecryptCfbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_EncryptOfbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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_DecryptOfbEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | 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
  | handle | pointer to ltc_edma_handle_t structure which stores the transaction state.
  | 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