The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.
Dependents: hello SerialTestv11 SerialTestv12 Sierpinski ... more
mbed 2
This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.
TARGET_UBRIDGE/TOOLCHAIN_ARM_STD/fsl_ltc_edma.h@171:3a7713b1edbc, 2018-11-08 (annotated)
- Committer:
- AnnaBridge
- Date:
- Thu Nov 08 11:45:42 2018 +0000
- Revision:
- 171:3a7713b1edbc
- Parent:
- TARGET_USENSE/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_KL82Z/drivers/fsl_ltc_edma.h@145:64910690c574
mbed library. Release version 164
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AnnaBridge | 145:64910690c574 | 1 | /* |
AnnaBridge | 145:64910690c574 | 2 | * Copyright (c) 2015, Freescale Semiconductor, Inc. |
AnnaBridge | 145:64910690c574 | 3 | * All rights reserved. |
AnnaBridge | 145:64910690c574 | 4 | * |
AnnaBridge | 145:64910690c574 | 5 | * Redistribution and use in source and binary forms, with or without modification, |
AnnaBridge | 145:64910690c574 | 6 | * are permitted provided that the following conditions are met: |
AnnaBridge | 145:64910690c574 | 7 | * |
AnnaBridge | 145:64910690c574 | 8 | * o Redistributions of source code must retain the above copyright notice, this list |
AnnaBridge | 145:64910690c574 | 9 | * of conditions and the following disclaimer. |
AnnaBridge | 145:64910690c574 | 10 | * |
AnnaBridge | 145:64910690c574 | 11 | * o Redistributions in binary form must reproduce the above copyright notice, this |
AnnaBridge | 145:64910690c574 | 12 | * list of conditions and the following disclaimer in the documentation and/or |
AnnaBridge | 145:64910690c574 | 13 | * other materials provided with the distribution. |
AnnaBridge | 145:64910690c574 | 14 | * |
AnnaBridge | 145:64910690c574 | 15 | * o Neither the name of Freescale Semiconductor, Inc. nor the names of its |
AnnaBridge | 145:64910690c574 | 16 | * contributors may be used to endorse or promote products derived from this |
AnnaBridge | 145:64910690c574 | 17 | * software without specific prior written permission. |
AnnaBridge | 145:64910690c574 | 18 | * |
AnnaBridge | 145:64910690c574 | 19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
AnnaBridge | 145:64910690c574 | 20 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
AnnaBridge | 145:64910690c574 | 21 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
AnnaBridge | 145:64910690c574 | 22 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR |
AnnaBridge | 145:64910690c574 | 23 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
AnnaBridge | 145:64910690c574 | 24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
AnnaBridge | 145:64910690c574 | 25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON |
AnnaBridge | 145:64910690c574 | 26 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
AnnaBridge | 145:64910690c574 | 27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
AnnaBridge | 145:64910690c574 | 28 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
AnnaBridge | 145:64910690c574 | 29 | */ |
AnnaBridge | 145:64910690c574 | 30 | #ifndef _FSL_LTC_EDMA_H_ |
AnnaBridge | 145:64910690c574 | 31 | #define _FSL_LTC_EDMA_H_ |
AnnaBridge | 145:64910690c574 | 32 | |
AnnaBridge | 145:64910690c574 | 33 | #include "fsl_common.h" |
AnnaBridge | 145:64910690c574 | 34 | |
AnnaBridge | 145:64910690c574 | 35 | #include "fsl_ltc.h" |
AnnaBridge | 145:64910690c574 | 36 | #include "fsl_dmamux.h" |
AnnaBridge | 145:64910690c574 | 37 | #include "fsl_edma.h" |
AnnaBridge | 145:64910690c574 | 38 | |
AnnaBridge | 145:64910690c574 | 39 | /*! |
AnnaBridge | 145:64910690c574 | 40 | * @addtogroup ltc_edma_driver |
AnnaBridge | 145:64910690c574 | 41 | * @{ |
AnnaBridge | 145:64910690c574 | 42 | */ |
AnnaBridge | 145:64910690c574 | 43 | |
AnnaBridge | 145:64910690c574 | 44 | /******************************************************************************* |
AnnaBridge | 145:64910690c574 | 45 | * Definitions |
AnnaBridge | 145:64910690c574 | 46 | ******************************************************************************/ |
AnnaBridge | 145:64910690c574 | 47 | |
AnnaBridge | 145:64910690c574 | 48 | /* @brief The LTC eDMA handle type. */ |
AnnaBridge | 145:64910690c574 | 49 | typedef struct _ltc_edma_handle ltc_edma_handle_t; |
AnnaBridge | 145:64910690c574 | 50 | |
AnnaBridge | 145:64910690c574 | 51 | /*! @brief LTC eDMA callback function. */ |
AnnaBridge | 145:64910690c574 | 52 | typedef void (*ltc_edma_callback_t)(LTC_Type *base, ltc_edma_handle_t *handle, status_t status, void *userData); |
AnnaBridge | 145:64910690c574 | 53 | |
AnnaBridge | 145:64910690c574 | 54 | /*! @brief LTC eDMA state machine function. It is defined only for private usage inside LTC eDMA driver. */ |
AnnaBridge | 145:64910690c574 | 55 | typedef status_t (*ltc_edma_state_machine_t)(LTC_Type *base, ltc_edma_handle_t *handle); |
AnnaBridge | 145:64910690c574 | 56 | |
AnnaBridge | 145:64910690c574 | 57 | /*! |
AnnaBridge | 145:64910690c574 | 58 | * @brief LTC eDMA handle. It is defined only for private usage inside LTC eDMA driver. |
AnnaBridge | 145:64910690c574 | 59 | */ |
AnnaBridge | 145:64910690c574 | 60 | struct _ltc_edma_handle |
AnnaBridge | 145:64910690c574 | 61 | { |
AnnaBridge | 145:64910690c574 | 62 | ltc_edma_callback_t callback; /*!< Callback function. */ |
AnnaBridge | 145:64910690c574 | 63 | void *userData; /*!< LTC callback function parameter.*/ |
AnnaBridge | 145:64910690c574 | 64 | |
AnnaBridge | 145:64910690c574 | 65 | edma_handle_t *inputFifoEdmaHandle; /*!< The eDMA TX channel used. */ |
AnnaBridge | 145:64910690c574 | 66 | edma_handle_t *outputFifoEdmaHandle; /*!< The eDMA RX channel used. */ |
AnnaBridge | 145:64910690c574 | 67 | |
AnnaBridge | 145:64910690c574 | 68 | ltc_edma_state_machine_t state_machine; /*!< State machine. */ |
AnnaBridge | 145:64910690c574 | 69 | uint32_t state; /*!< Internal state. */ |
AnnaBridge | 145:64910690c574 | 70 | const uint8_t *inData; /*!< Input data. */ |
AnnaBridge | 145:64910690c574 | 71 | uint8_t *outData; /*!< Output data. */ |
AnnaBridge | 145:64910690c574 | 72 | uint32_t size; /*!< Size of input and output data in bytes.*/ |
AnnaBridge | 145:64910690c574 | 73 | uint32_t modeReg; /*!< LTC mode register.*/ |
AnnaBridge | 145:64910690c574 | 74 | /* Used by AES CTR*/ |
AnnaBridge | 145:64910690c574 | 75 | uint8_t *counter; /*!< Input counter (updates on return)*/ |
AnnaBridge | 145:64910690c574 | 76 | const uint8_t *key; /*!< Input key to use for forward AES cipher*/ |
AnnaBridge | 145:64910690c574 | 77 | uint32_t keySize; /*!< Size of the input key, in bytes. Must be 16, 24, or 32.*/ |
AnnaBridge | 145:64910690c574 | 78 | uint8_t |
AnnaBridge | 145:64910690c574 | 79 | *counterlast; /*!< Output cipher of last counter, for chained CTR calls. NULL can be passed if chained calls are |
AnnaBridge | 145:64910690c574 | 80 | not used.*/ |
AnnaBridge | 145:64910690c574 | 81 | uint32_t *szLeft; /*!< Output number of bytes in left unused in counterlast block. NULL can be passed if chained |
AnnaBridge | 145:64910690c574 | 82 | calls are not used.*/ |
AnnaBridge | 145:64910690c574 | 83 | uint32_t lastSize; /*!< Last size.*/ |
AnnaBridge | 145:64910690c574 | 84 | }; |
AnnaBridge | 145:64910690c574 | 85 | |
AnnaBridge | 145:64910690c574 | 86 | /******************************************************************************* |
AnnaBridge | 145:64910690c574 | 87 | * API |
AnnaBridge | 145:64910690c574 | 88 | ******************************************************************************/ |
AnnaBridge | 145:64910690c574 | 89 | |
AnnaBridge | 145:64910690c574 | 90 | #if defined(__cplusplus) |
AnnaBridge | 145:64910690c574 | 91 | extern "C" { |
AnnaBridge | 145:64910690c574 | 92 | #endif |
AnnaBridge | 145:64910690c574 | 93 | |
AnnaBridge | 145:64910690c574 | 94 | /*! |
AnnaBridge | 145:64910690c574 | 95 | * @brief Init the LTC eDMA handle which is used in transcational functions |
AnnaBridge | 145:64910690c574 | 96 | * @param base LTC module base address |
AnnaBridge | 145:64910690c574 | 97 | * @param handle Pointer to ltc_edma_handle_t structure |
AnnaBridge | 145:64910690c574 | 98 | * @param callback Callback function, NULL means no callback. |
AnnaBridge | 145:64910690c574 | 99 | * @param userData Callback function parameter. |
AnnaBridge | 145:64910690c574 | 100 | * @param inputFifoEdmaHandle User requested eDMA handle for Input FIFO eDMA. |
AnnaBridge | 145:64910690c574 | 101 | * @param outputFifoEdmaHandle User requested eDMA handle for Output FIFO eDMA. |
AnnaBridge | 145:64910690c574 | 102 | */ |
AnnaBridge | 145:64910690c574 | 103 | void LTC_CreateHandleEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 104 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 105 | ltc_edma_callback_t callback, |
AnnaBridge | 145:64910690c574 | 106 | void *userData, |
AnnaBridge | 145:64910690c574 | 107 | edma_handle_t *inputFifoEdmaHandle, |
AnnaBridge | 145:64910690c574 | 108 | edma_handle_t *outputFifoEdmaHandle); |
AnnaBridge | 145:64910690c574 | 109 | |
AnnaBridge | 145:64910690c574 | 110 | /*! @}*/ |
AnnaBridge | 145:64910690c574 | 111 | |
AnnaBridge | 145:64910690c574 | 112 | /******************************************************************************* |
AnnaBridge | 145:64910690c574 | 113 | * AES API |
AnnaBridge | 145:64910690c574 | 114 | ******************************************************************************/ |
AnnaBridge | 145:64910690c574 | 115 | |
AnnaBridge | 145:64910690c574 | 116 | /*! |
AnnaBridge | 145:64910690c574 | 117 | * @addtogroup ltc_edma_driver_aes |
AnnaBridge | 145:64910690c574 | 118 | * @{ |
AnnaBridge | 145:64910690c574 | 119 | */ |
AnnaBridge | 145:64910690c574 | 120 | |
AnnaBridge | 145:64910690c574 | 121 | /*! |
AnnaBridge | 145:64910690c574 | 122 | * @brief Encrypts AES using the ECB block mode. |
AnnaBridge | 145:64910690c574 | 123 | * |
AnnaBridge | 145:64910690c574 | 124 | * Encrypts AES using the ECB block mode. |
AnnaBridge | 145:64910690c574 | 125 | * |
AnnaBridge | 145:64910690c574 | 126 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 127 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 128 | * @param plaintext Input plain text to encrypt |
AnnaBridge | 145:64910690c574 | 129 | * @param[out] ciphertext Output cipher text |
AnnaBridge | 145:64910690c574 | 130 | * @param size Size of input and output data in bytes. Must be multiple of 16 bytes. |
AnnaBridge | 145:64910690c574 | 131 | * @param key Input key to use for encryption |
AnnaBridge | 145:64910690c574 | 132 | * @param keySize Size of the input key, in bytes. Must be 16, 24, or 32. |
AnnaBridge | 145:64910690c574 | 133 | * @return Status from encrypt operation |
AnnaBridge | 145:64910690c574 | 134 | */ |
AnnaBridge | 145:64910690c574 | 135 | status_t LTC_AES_EncryptEcbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 136 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 137 | const uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 138 | uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 139 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 140 | const uint8_t *key, |
AnnaBridge | 145:64910690c574 | 141 | uint32_t keySize); |
AnnaBridge | 145:64910690c574 | 142 | |
AnnaBridge | 145:64910690c574 | 143 | /*! |
AnnaBridge | 145:64910690c574 | 144 | * @brief Decrypts AES using ECB block mode. |
AnnaBridge | 145:64910690c574 | 145 | * |
AnnaBridge | 145:64910690c574 | 146 | * Decrypts AES using ECB block mode. |
AnnaBridge | 145:64910690c574 | 147 | * |
AnnaBridge | 145:64910690c574 | 148 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 149 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 150 | * @param ciphertext Input cipher text to decrypt |
AnnaBridge | 145:64910690c574 | 151 | * @param[out] plaintext Output plain text |
AnnaBridge | 145:64910690c574 | 152 | * @param size Size of input and output data in bytes. Must be multiple of 16 bytes. |
AnnaBridge | 145:64910690c574 | 153 | * @param key Input key. |
AnnaBridge | 145:64910690c574 | 154 | * @param keySize Size of the input key, in bytes. Must be 16, 24, or 32. |
AnnaBridge | 145:64910690c574 | 155 | * @param keyType Input type of the key (allows to directly load decrypt key for AES ECB decrypt operation.) |
AnnaBridge | 145:64910690c574 | 156 | * @return Status from decrypt operation |
AnnaBridge | 145:64910690c574 | 157 | */ |
AnnaBridge | 145:64910690c574 | 158 | status_t LTC_AES_DecryptEcbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 159 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 160 | const uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 161 | uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 162 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 163 | const uint8_t *key, |
AnnaBridge | 145:64910690c574 | 164 | uint32_t keySize, |
AnnaBridge | 145:64910690c574 | 165 | ltc_aes_key_t keyType); |
AnnaBridge | 145:64910690c574 | 166 | |
AnnaBridge | 145:64910690c574 | 167 | /*! |
AnnaBridge | 145:64910690c574 | 168 | * @brief Encrypts AES using CBC block mode. |
AnnaBridge | 145:64910690c574 | 169 | * |
AnnaBridge | 145:64910690c574 | 170 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 171 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 172 | * @param plaintext Input plain text to encrypt |
AnnaBridge | 145:64910690c574 | 173 | * @param[out] ciphertext Output cipher text |
AnnaBridge | 145:64910690c574 | 174 | * @param size Size of input and output data in bytes. Must be multiple of 16 bytes. |
AnnaBridge | 145:64910690c574 | 175 | * @param iv Input initial vector to combine with the first input block. |
AnnaBridge | 145:64910690c574 | 176 | * @param key Input key to use for encryption |
AnnaBridge | 145:64910690c574 | 177 | * @param keySize Size of the input key, in bytes. Must be 16, 24, or 32. |
AnnaBridge | 145:64910690c574 | 178 | * @return Status from encrypt operation |
AnnaBridge | 145:64910690c574 | 179 | */ |
AnnaBridge | 145:64910690c574 | 180 | status_t LTC_AES_EncryptCbcEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 181 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 182 | const uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 183 | uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 184 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 185 | const uint8_t iv[LTC_AES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 186 | const uint8_t *key, |
AnnaBridge | 145:64910690c574 | 187 | uint32_t keySize); |
AnnaBridge | 145:64910690c574 | 188 | |
AnnaBridge | 145:64910690c574 | 189 | /*! |
AnnaBridge | 145:64910690c574 | 190 | * @brief Decrypts AES using CBC block mode. |
AnnaBridge | 145:64910690c574 | 191 | * |
AnnaBridge | 145:64910690c574 | 192 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 193 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 194 | * @param ciphertext Input cipher text to decrypt |
AnnaBridge | 145:64910690c574 | 195 | * @param[out] plaintext Output plain text |
AnnaBridge | 145:64910690c574 | 196 | * @param size Size of input and output data in bytes. Must be multiple of 16 bytes. |
AnnaBridge | 145:64910690c574 | 197 | * @param iv Input initial vector to combine with the first input block. |
AnnaBridge | 145:64910690c574 | 198 | * @param key Input key to use for decryption |
AnnaBridge | 145:64910690c574 | 199 | * @param keySize Size of the input key, in bytes. Must be 16, 24, or 32. |
AnnaBridge | 145:64910690c574 | 200 | * @param keyType Input type of the key (allows to directly load decrypt key for AES CBC decrypt operation.) |
AnnaBridge | 145:64910690c574 | 201 | * @return Status from decrypt operation |
AnnaBridge | 145:64910690c574 | 202 | */ |
AnnaBridge | 145:64910690c574 | 203 | status_t LTC_AES_DecryptCbcEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 204 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 205 | const uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 206 | uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 207 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 208 | const uint8_t iv[LTC_AES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 209 | const uint8_t *key, |
AnnaBridge | 145:64910690c574 | 210 | uint32_t keySize, |
AnnaBridge | 145:64910690c574 | 211 | ltc_aes_key_t keyType); |
AnnaBridge | 145:64910690c574 | 212 | |
AnnaBridge | 145:64910690c574 | 213 | /*! |
AnnaBridge | 145:64910690c574 | 214 | * @brief Encrypts or decrypts AES using CTR block mode. |
AnnaBridge | 145:64910690c574 | 215 | * |
AnnaBridge | 145:64910690c574 | 216 | * Encrypts or decrypts AES using CTR block mode. |
AnnaBridge | 145:64910690c574 | 217 | * AES CTR mode uses only forward AES cipher and same algorithm for encryption and decryption. |
AnnaBridge | 145:64910690c574 | 218 | * The only difference between encryption and decryption is that, for encryption, the input argument |
AnnaBridge | 145:64910690c574 | 219 | * is plain text and the output argument is cipher text. For decryption, the input argument is cipher text |
AnnaBridge | 145:64910690c574 | 220 | * and the output argument is plain text. |
AnnaBridge | 145:64910690c574 | 221 | * |
AnnaBridge | 145:64910690c574 | 222 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 223 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 224 | * @param input Input data for CTR block mode |
AnnaBridge | 145:64910690c574 | 225 | * @param[out] output Output data for CTR block mode |
AnnaBridge | 145:64910690c574 | 226 | * @param size Size of input and output data in bytes |
AnnaBridge | 145:64910690c574 | 227 | * @param[in,out] counter Input counter (updates on return) |
AnnaBridge | 145:64910690c574 | 228 | * @param key Input key to use for forward AES cipher |
AnnaBridge | 145:64910690c574 | 229 | * @param keySize Size of the input key, in bytes. Must be 16, 24, or 32. |
AnnaBridge | 145:64910690c574 | 230 | * @param[out] counterlast Output cipher of last counter, for chained CTR calls. NULL can be passed if chained calls are |
AnnaBridge | 145:64910690c574 | 231 | * not used. |
AnnaBridge | 145:64910690c574 | 232 | * @param[out] szLeft Output number of bytes in left unused in counterlast block. NULL can be passed if chained calls |
AnnaBridge | 145:64910690c574 | 233 | * are not used. |
AnnaBridge | 145:64910690c574 | 234 | * @return Status from encrypt operation |
AnnaBridge | 145:64910690c574 | 235 | */ |
AnnaBridge | 145:64910690c574 | 236 | status_t LTC_AES_CryptCtrEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 237 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 238 | const uint8_t *input, |
AnnaBridge | 145:64910690c574 | 239 | uint8_t *output, |
AnnaBridge | 145:64910690c574 | 240 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 241 | uint8_t counter[LTC_AES_BLOCK_SIZE], |
AnnaBridge | 145:64910690c574 | 242 | const uint8_t *key, |
AnnaBridge | 145:64910690c574 | 243 | uint32_t keySize, |
AnnaBridge | 145:64910690c574 | 244 | uint8_t counterlast[LTC_AES_BLOCK_SIZE], |
AnnaBridge | 145:64910690c574 | 245 | uint32_t *szLeft); |
AnnaBridge | 145:64910690c574 | 246 | |
AnnaBridge | 145:64910690c574 | 247 | /*! AES CTR decrypt is mapped to the AES CTR generic operation */ |
AnnaBridge | 145:64910690c574 | 248 | #define LTC_AES_DecryptCtrEDMA(base, handle, input, output, size, counter, key, keySize, counterlast, szLeft) \ |
AnnaBridge | 145:64910690c574 | 249 | LTC_AES_CryptCtrEDMA(base, handle, input, output, size, counter, key, keySize, counterlast, szLeft) |
AnnaBridge | 145:64910690c574 | 250 | |
AnnaBridge | 145:64910690c574 | 251 | /*! AES CTR encrypt is mapped to the AES CTR generic operation */ |
AnnaBridge | 145:64910690c574 | 252 | #define LTC_AES_EncryptCtrEDMA(base, handle, input, output, size, counter, key, keySize, counterlast, szLeft) \ |
AnnaBridge | 145:64910690c574 | 253 | LTC_AES_CryptCtrEDMA(base, handle, input, output, size, counter, key, keySize, counterlast, szLeft) |
AnnaBridge | 145:64910690c574 | 254 | |
AnnaBridge | 145:64910690c574 | 255 | /*! |
AnnaBridge | 145:64910690c574 | 256 | *@} |
AnnaBridge | 145:64910690c574 | 257 | */ |
AnnaBridge | 145:64910690c574 | 258 | |
AnnaBridge | 145:64910690c574 | 259 | /******************************************************************************* |
AnnaBridge | 145:64910690c574 | 260 | * DES API |
AnnaBridge | 145:64910690c574 | 261 | ******************************************************************************/ |
AnnaBridge | 145:64910690c574 | 262 | /*! |
AnnaBridge | 145:64910690c574 | 263 | * @addtogroup ltc_edma_driver_des |
AnnaBridge | 145:64910690c574 | 264 | * @{ |
AnnaBridge | 145:64910690c574 | 265 | */ |
AnnaBridge | 145:64910690c574 | 266 | /*! |
AnnaBridge | 145:64910690c574 | 267 | * @brief Encrypts DES using ECB block mode. |
AnnaBridge | 145:64910690c574 | 268 | * |
AnnaBridge | 145:64910690c574 | 269 | * Encrypts DES using ECB block mode. |
AnnaBridge | 145:64910690c574 | 270 | * |
AnnaBridge | 145:64910690c574 | 271 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 272 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 273 | * @param plaintext Input plaintext to encrypt |
AnnaBridge | 145:64910690c574 | 274 | * @param[out] ciphertext Output ciphertext |
AnnaBridge | 145:64910690c574 | 275 | * @param size Size of input and output data in bytes. Must be multiple of 8 bytes. |
AnnaBridge | 145:64910690c574 | 276 | * @param key Input key to use for encryption |
AnnaBridge | 145:64910690c574 | 277 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 278 | */ |
AnnaBridge | 145:64910690c574 | 279 | status_t LTC_DES_EncryptEcbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 280 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 281 | const uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 282 | uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 283 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 284 | const uint8_t key[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 285 | |
AnnaBridge | 145:64910690c574 | 286 | /*! |
AnnaBridge | 145:64910690c574 | 287 | * @brief Decrypts DES using ECB block mode. |
AnnaBridge | 145:64910690c574 | 288 | * |
AnnaBridge | 145:64910690c574 | 289 | * Decrypts DES using ECB block mode. |
AnnaBridge | 145:64910690c574 | 290 | * |
AnnaBridge | 145:64910690c574 | 291 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 292 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 293 | * @param ciphertext Input ciphertext to decrypt |
AnnaBridge | 145:64910690c574 | 294 | * @param[out] plaintext Output plaintext |
AnnaBridge | 145:64910690c574 | 295 | * @param size Size of input and output data in bytes. Must be multiple of 8 bytes. |
AnnaBridge | 145:64910690c574 | 296 | * @param key Input key to use for decryption |
AnnaBridge | 145:64910690c574 | 297 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 298 | */ |
AnnaBridge | 145:64910690c574 | 299 | status_t LTC_DES_DecryptEcbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 300 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 301 | const uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 302 | uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 303 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 304 | const uint8_t key[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 305 | |
AnnaBridge | 145:64910690c574 | 306 | /*! |
AnnaBridge | 145:64910690c574 | 307 | * @brief Encrypts DES using CBC block mode. |
AnnaBridge | 145:64910690c574 | 308 | * |
AnnaBridge | 145:64910690c574 | 309 | * Encrypts DES using CBC block mode. |
AnnaBridge | 145:64910690c574 | 310 | * |
AnnaBridge | 145:64910690c574 | 311 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 312 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 313 | * @param plaintext Input plaintext to encrypt |
AnnaBridge | 145:64910690c574 | 314 | * @param[out] ciphertext Ouput ciphertext |
AnnaBridge | 145:64910690c574 | 315 | * @param size Size of input and output data in bytes |
AnnaBridge | 145:64910690c574 | 316 | * @param iv Input initial vector to combine with the first plaintext block. |
AnnaBridge | 145:64910690c574 | 317 | * The iv does not need to be secret, but it must be unpredictable. |
AnnaBridge | 145:64910690c574 | 318 | * @param key Input key to use for encryption |
AnnaBridge | 145:64910690c574 | 319 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 320 | */ |
AnnaBridge | 145:64910690c574 | 321 | status_t LTC_DES_EncryptCbcEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 322 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 323 | const uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 324 | uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 325 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 326 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 327 | const uint8_t key[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 328 | |
AnnaBridge | 145:64910690c574 | 329 | /*! |
AnnaBridge | 145:64910690c574 | 330 | * @brief Decrypts DES using CBC block mode. |
AnnaBridge | 145:64910690c574 | 331 | * |
AnnaBridge | 145:64910690c574 | 332 | * Decrypts DES using CBC block mode. |
AnnaBridge | 145:64910690c574 | 333 | * |
AnnaBridge | 145:64910690c574 | 334 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 335 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 336 | * @param ciphertext Input ciphertext to decrypt |
AnnaBridge | 145:64910690c574 | 337 | * @param[out] plaintext Output plaintext |
AnnaBridge | 145:64910690c574 | 338 | * @param size Size of input data in bytes |
AnnaBridge | 145:64910690c574 | 339 | * @param iv Input initial vector to combine with the first plaintext block. |
AnnaBridge | 145:64910690c574 | 340 | * The iv does not need to be secret, but it must be unpredictable. |
AnnaBridge | 145:64910690c574 | 341 | * @param key Input key to use for decryption |
AnnaBridge | 145:64910690c574 | 342 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 343 | */ |
AnnaBridge | 145:64910690c574 | 344 | status_t LTC_DES_DecryptCbcEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 345 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 346 | const uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 347 | uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 348 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 349 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 350 | const uint8_t key[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 351 | |
AnnaBridge | 145:64910690c574 | 352 | /*! |
AnnaBridge | 145:64910690c574 | 353 | * @brief Encrypts DES using CFB block mode. |
AnnaBridge | 145:64910690c574 | 354 | * |
AnnaBridge | 145:64910690c574 | 355 | * Encrypts DES using CFB block mode. |
AnnaBridge | 145:64910690c574 | 356 | * |
AnnaBridge | 145:64910690c574 | 357 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 358 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 359 | * @param plaintext Input plaintext to encrypt |
AnnaBridge | 145:64910690c574 | 360 | * @param size Size of input data in bytes |
AnnaBridge | 145:64910690c574 | 361 | * @param iv Input initial block. |
AnnaBridge | 145:64910690c574 | 362 | * @param key Input key to use for encryption |
AnnaBridge | 145:64910690c574 | 363 | * @param[out] ciphertext Output ciphertext |
AnnaBridge | 145:64910690c574 | 364 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 365 | */ |
AnnaBridge | 145:64910690c574 | 366 | status_t LTC_DES_EncryptCfbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 367 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 368 | const uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 369 | uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 370 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 371 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 372 | const uint8_t key[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 373 | |
AnnaBridge | 145:64910690c574 | 374 | /*! |
AnnaBridge | 145:64910690c574 | 375 | * @brief Decrypts DES using CFB block mode. |
AnnaBridge | 145:64910690c574 | 376 | * |
AnnaBridge | 145:64910690c574 | 377 | * Decrypts DES using CFB block mode. |
AnnaBridge | 145:64910690c574 | 378 | * |
AnnaBridge | 145:64910690c574 | 379 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 380 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 381 | * @param ciphertext Input ciphertext to decrypt |
AnnaBridge | 145:64910690c574 | 382 | * @param[out] plaintext Output plaintext |
AnnaBridge | 145:64910690c574 | 383 | * @param size Size of input and output data in bytes |
AnnaBridge | 145:64910690c574 | 384 | * @param iv Input initial block. |
AnnaBridge | 145:64910690c574 | 385 | * @param key Input key to use for decryption |
AnnaBridge | 145:64910690c574 | 386 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 387 | */ |
AnnaBridge | 145:64910690c574 | 388 | status_t LTC_DES_DecryptCfbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 389 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 390 | const uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 391 | uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 392 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 393 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 394 | const uint8_t key[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 395 | |
AnnaBridge | 145:64910690c574 | 396 | /*! |
AnnaBridge | 145:64910690c574 | 397 | * @brief Encrypts DES using OFB block mode. |
AnnaBridge | 145:64910690c574 | 398 | * |
AnnaBridge | 145:64910690c574 | 399 | * Encrypts DES using OFB block mode. |
AnnaBridge | 145:64910690c574 | 400 | * |
AnnaBridge | 145:64910690c574 | 401 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 402 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 403 | * @param plaintext Input plaintext to encrypt |
AnnaBridge | 145:64910690c574 | 404 | * @param[out] ciphertext Output ciphertext |
AnnaBridge | 145:64910690c574 | 405 | * @param size Size of input and output data in bytes |
AnnaBridge | 145:64910690c574 | 406 | * @param iv Input unique input vector. The OFB mode requires that the IV be unique |
AnnaBridge | 145:64910690c574 | 407 | * for each execution of the mode under the given key. |
AnnaBridge | 145:64910690c574 | 408 | * @param key Input key to use for encryption |
AnnaBridge | 145:64910690c574 | 409 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 410 | */ |
AnnaBridge | 145:64910690c574 | 411 | status_t LTC_DES_EncryptOfbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 412 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 413 | const uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 414 | uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 415 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 416 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 417 | const uint8_t key[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 418 | |
AnnaBridge | 145:64910690c574 | 419 | /*! |
AnnaBridge | 145:64910690c574 | 420 | * @brief Decrypts DES using OFB block mode. |
AnnaBridge | 145:64910690c574 | 421 | * |
AnnaBridge | 145:64910690c574 | 422 | * Decrypts DES using OFB block mode. |
AnnaBridge | 145:64910690c574 | 423 | * |
AnnaBridge | 145:64910690c574 | 424 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 425 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 426 | * @param ciphertext Input ciphertext to decrypt |
AnnaBridge | 145:64910690c574 | 427 | * @param[out] plaintext Output plaintext |
AnnaBridge | 145:64910690c574 | 428 | * @param size Size of input and output data in bytes. Must be multiple of 8 bytes. |
AnnaBridge | 145:64910690c574 | 429 | * @param iv Input unique input vector. The OFB mode requires that the IV be unique |
AnnaBridge | 145:64910690c574 | 430 | * for each execution of the mode under the given key. |
AnnaBridge | 145:64910690c574 | 431 | * @param key Input key to use for decryption |
AnnaBridge | 145:64910690c574 | 432 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 433 | */ |
AnnaBridge | 145:64910690c574 | 434 | status_t LTC_DES_DecryptOfbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 435 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 436 | const uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 437 | uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 438 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 439 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 440 | const uint8_t key[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 441 | |
AnnaBridge | 145:64910690c574 | 442 | /*! |
AnnaBridge | 145:64910690c574 | 443 | * @brief Encrypts triple DES using ECB block mode with two keys. |
AnnaBridge | 145:64910690c574 | 444 | * |
AnnaBridge | 145:64910690c574 | 445 | * Encrypts triple DES using ECB block mode with two keys. |
AnnaBridge | 145:64910690c574 | 446 | * |
AnnaBridge | 145:64910690c574 | 447 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 448 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 449 | * @param plaintext Input plaintext to encrypt |
AnnaBridge | 145:64910690c574 | 450 | * @param[out] ciphertext Output ciphertext |
AnnaBridge | 145:64910690c574 | 451 | * @param size Size of input and output data in bytes. Must be multiple of 8 bytes. |
AnnaBridge | 145:64910690c574 | 452 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 453 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 454 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 455 | */ |
AnnaBridge | 145:64910690c574 | 456 | status_t LTC_DES2_EncryptEcbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 457 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 458 | const uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 459 | uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 460 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 461 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 462 | const uint8_t key2[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 463 | |
AnnaBridge | 145:64910690c574 | 464 | /*! |
AnnaBridge | 145:64910690c574 | 465 | * @brief Decrypts triple DES using ECB block mode with two keys. |
AnnaBridge | 145:64910690c574 | 466 | * |
AnnaBridge | 145:64910690c574 | 467 | * Decrypts triple DES using ECB block mode with two keys. |
AnnaBridge | 145:64910690c574 | 468 | * |
AnnaBridge | 145:64910690c574 | 469 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 470 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 471 | * @param ciphertext Input ciphertext to decrypt |
AnnaBridge | 145:64910690c574 | 472 | * @param[out] plaintext Output plaintext |
AnnaBridge | 145:64910690c574 | 473 | * @param size Size of input and output data in bytes. Must be multiple of 8 bytes. |
AnnaBridge | 145:64910690c574 | 474 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 475 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 476 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 477 | */ |
AnnaBridge | 145:64910690c574 | 478 | status_t LTC_DES2_DecryptEcbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 479 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 480 | const uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 481 | uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 482 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 483 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 484 | const uint8_t key2[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 485 | |
AnnaBridge | 145:64910690c574 | 486 | /*! |
AnnaBridge | 145:64910690c574 | 487 | * @brief Encrypts triple DES using CBC block mode with two keys. |
AnnaBridge | 145:64910690c574 | 488 | * |
AnnaBridge | 145:64910690c574 | 489 | * Encrypts triple DES using CBC block mode with two keys. |
AnnaBridge | 145:64910690c574 | 490 | * |
AnnaBridge | 145:64910690c574 | 491 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 492 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 493 | * @param plaintext Input plaintext to encrypt |
AnnaBridge | 145:64910690c574 | 494 | * @param[out] ciphertext Output ciphertext |
AnnaBridge | 145:64910690c574 | 495 | * @param size Size of input and output data in bytes |
AnnaBridge | 145:64910690c574 | 496 | * @param iv Input initial vector to combine with the first plaintext block. |
AnnaBridge | 145:64910690c574 | 497 | * The iv does not need to be secret, but it must be unpredictable. |
AnnaBridge | 145:64910690c574 | 498 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 499 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 500 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 501 | */ |
AnnaBridge | 145:64910690c574 | 502 | status_t LTC_DES2_EncryptCbcEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 503 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 504 | const uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 505 | uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 506 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 507 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 508 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 509 | const uint8_t key2[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 510 | |
AnnaBridge | 145:64910690c574 | 511 | /*! |
AnnaBridge | 145:64910690c574 | 512 | * @brief Decrypts triple DES using CBC block mode with two keys. |
AnnaBridge | 145:64910690c574 | 513 | * |
AnnaBridge | 145:64910690c574 | 514 | * Decrypts triple DES using CBC block mode with two keys. |
AnnaBridge | 145:64910690c574 | 515 | * |
AnnaBridge | 145:64910690c574 | 516 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 517 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 518 | * @param ciphertext Input ciphertext to decrypt |
AnnaBridge | 145:64910690c574 | 519 | * @param[out] plaintext Output plaintext |
AnnaBridge | 145:64910690c574 | 520 | * @param size Size of input and output data in bytes |
AnnaBridge | 145:64910690c574 | 521 | * @param iv Input initial vector to combine with the first plaintext block. |
AnnaBridge | 145:64910690c574 | 522 | * The iv does not need to be secret, but it must be unpredictable. |
AnnaBridge | 145:64910690c574 | 523 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 524 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 525 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 526 | */ |
AnnaBridge | 145:64910690c574 | 527 | status_t LTC_DES2_DecryptCbcEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 528 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 529 | const uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 530 | uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 531 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 532 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 533 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 534 | const uint8_t key2[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 535 | |
AnnaBridge | 145:64910690c574 | 536 | /*! |
AnnaBridge | 145:64910690c574 | 537 | * @brief Encrypts triple DES using CFB block mode with two keys. |
AnnaBridge | 145:64910690c574 | 538 | * |
AnnaBridge | 145:64910690c574 | 539 | * Encrypts triple DES using CFB block mode with two keys. |
AnnaBridge | 145:64910690c574 | 540 | * |
AnnaBridge | 145:64910690c574 | 541 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 542 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 543 | * @param plaintext Input plaintext to encrypt |
AnnaBridge | 145:64910690c574 | 544 | * @param[out] ciphertext Output ciphertext |
AnnaBridge | 145:64910690c574 | 545 | * @param size Size of input and output data in bytes |
AnnaBridge | 145:64910690c574 | 546 | * @param iv Input initial block. |
AnnaBridge | 145:64910690c574 | 547 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 548 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 549 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 550 | */ |
AnnaBridge | 145:64910690c574 | 551 | status_t LTC_DES2_EncryptCfbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 552 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 553 | const uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 554 | uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 555 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 556 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 557 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 558 | const uint8_t key2[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 559 | |
AnnaBridge | 145:64910690c574 | 560 | /*! |
AnnaBridge | 145:64910690c574 | 561 | * @brief Decrypts triple DES using CFB block mode with two keys. |
AnnaBridge | 145:64910690c574 | 562 | * |
AnnaBridge | 145:64910690c574 | 563 | * Decrypts triple DES using CFB block mode with two keys. |
AnnaBridge | 145:64910690c574 | 564 | * |
AnnaBridge | 145:64910690c574 | 565 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 566 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 567 | * @param ciphertext Input ciphertext to decrypt |
AnnaBridge | 145:64910690c574 | 568 | * @param[out] plaintext Output plaintext |
AnnaBridge | 145:64910690c574 | 569 | * @param size Size of input and output data in bytes |
AnnaBridge | 145:64910690c574 | 570 | * @param iv Input initial block. |
AnnaBridge | 145:64910690c574 | 571 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 572 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 573 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 574 | */ |
AnnaBridge | 145:64910690c574 | 575 | status_t LTC_DES2_DecryptCfbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 576 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 577 | const uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 578 | uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 579 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 580 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 581 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 582 | const uint8_t key2[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 583 | |
AnnaBridge | 145:64910690c574 | 584 | /*! |
AnnaBridge | 145:64910690c574 | 585 | * @brief Encrypts triple DES using OFB block mode with two keys. |
AnnaBridge | 145:64910690c574 | 586 | * |
AnnaBridge | 145:64910690c574 | 587 | * Encrypts triple DES using OFB block mode with two keys. |
AnnaBridge | 145:64910690c574 | 588 | * |
AnnaBridge | 145:64910690c574 | 589 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 590 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 591 | * @param plaintext Input plaintext to encrypt |
AnnaBridge | 145:64910690c574 | 592 | * @param[out] ciphertext Output ciphertext |
AnnaBridge | 145:64910690c574 | 593 | * @param size Size of input and output data in bytes |
AnnaBridge | 145:64910690c574 | 594 | * @param iv Input unique input vector. The OFB mode requires that the IV be unique |
AnnaBridge | 145:64910690c574 | 595 | * for each execution of the mode under the given key. |
AnnaBridge | 145:64910690c574 | 596 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 597 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 598 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 599 | */ |
AnnaBridge | 145:64910690c574 | 600 | status_t LTC_DES2_EncryptOfbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 601 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 602 | const uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 603 | uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 604 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 605 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 606 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 607 | const uint8_t key2[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 608 | |
AnnaBridge | 145:64910690c574 | 609 | /*! |
AnnaBridge | 145:64910690c574 | 610 | * @brief Decrypts triple DES using OFB block mode with two keys. |
AnnaBridge | 145:64910690c574 | 611 | * |
AnnaBridge | 145:64910690c574 | 612 | * Decrypts triple DES using OFB block mode with two keys. |
AnnaBridge | 145:64910690c574 | 613 | * |
AnnaBridge | 145:64910690c574 | 614 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 615 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 616 | * @param ciphertext Input ciphertext to decrypt |
AnnaBridge | 145:64910690c574 | 617 | * @param[out] plaintext Output plaintext |
AnnaBridge | 145:64910690c574 | 618 | * @param size Size of input and output data in bytes |
AnnaBridge | 145:64910690c574 | 619 | * @param iv Input unique input vector. The OFB mode requires that the IV be unique |
AnnaBridge | 145:64910690c574 | 620 | * for each execution of the mode under the given key. |
AnnaBridge | 145:64910690c574 | 621 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 622 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 623 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 624 | */ |
AnnaBridge | 145:64910690c574 | 625 | status_t LTC_DES2_DecryptOfbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 626 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 627 | const uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 628 | uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 629 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 630 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 631 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 632 | const uint8_t key2[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 633 | |
AnnaBridge | 145:64910690c574 | 634 | /*! |
AnnaBridge | 145:64910690c574 | 635 | * @brief Encrypts triple DES using ECB block mode with three keys. |
AnnaBridge | 145:64910690c574 | 636 | * |
AnnaBridge | 145:64910690c574 | 637 | * Encrypts triple DES using ECB block mode with three keys. |
AnnaBridge | 145:64910690c574 | 638 | * |
AnnaBridge | 145:64910690c574 | 639 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 640 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 641 | * @param plaintext Input plaintext to encrypt |
AnnaBridge | 145:64910690c574 | 642 | * @param[out] ciphertext Output ciphertext |
AnnaBridge | 145:64910690c574 | 643 | * @param size Size of input and output data in bytes. Must be multiple of 8 bytes. |
AnnaBridge | 145:64910690c574 | 644 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 645 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 646 | * @param key3 Third input key for key bundle |
AnnaBridge | 145:64910690c574 | 647 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 648 | */ |
AnnaBridge | 145:64910690c574 | 649 | status_t LTC_DES3_EncryptEcbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 650 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 651 | const uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 652 | uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 653 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 654 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 655 | const uint8_t key2[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 656 | const uint8_t key3[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 657 | |
AnnaBridge | 145:64910690c574 | 658 | /*! |
AnnaBridge | 145:64910690c574 | 659 | * @brief Decrypts triple DES using ECB block mode with three keys. |
AnnaBridge | 145:64910690c574 | 660 | * |
AnnaBridge | 145:64910690c574 | 661 | * Decrypts triple DES using ECB block mode with three keys. |
AnnaBridge | 145:64910690c574 | 662 | * |
AnnaBridge | 145:64910690c574 | 663 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 664 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 665 | * @param ciphertext Input ciphertext to decrypt |
AnnaBridge | 145:64910690c574 | 666 | * @param[out] plaintext Output plaintext |
AnnaBridge | 145:64910690c574 | 667 | * @param size Size of input and output data in bytes. Must be multiple of 8 bytes. |
AnnaBridge | 145:64910690c574 | 668 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 669 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 670 | * @param key3 Third input key for key bundle |
AnnaBridge | 145:64910690c574 | 671 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 672 | */ |
AnnaBridge | 145:64910690c574 | 673 | status_t LTC_DES3_DecryptEcbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 674 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 675 | const uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 676 | uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 677 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 678 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 679 | const uint8_t key2[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 680 | const uint8_t key3[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 681 | |
AnnaBridge | 145:64910690c574 | 682 | /*! |
AnnaBridge | 145:64910690c574 | 683 | * @brief Encrypts triple DES using CBC block mode with three keys. |
AnnaBridge | 145:64910690c574 | 684 | * |
AnnaBridge | 145:64910690c574 | 685 | * Encrypts triple DES using CBC block mode with three keys. |
AnnaBridge | 145:64910690c574 | 686 | * |
AnnaBridge | 145:64910690c574 | 687 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 688 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 689 | * @param plaintext Input plaintext to encrypt |
AnnaBridge | 145:64910690c574 | 690 | * @param[out] ciphertext Output ciphertext |
AnnaBridge | 145:64910690c574 | 691 | * @param size Size of input data in bytes |
AnnaBridge | 145:64910690c574 | 692 | * @param iv Input initial vector to combine with the first plaintext block. |
AnnaBridge | 145:64910690c574 | 693 | * The iv does not need to be secret, but it must be unpredictable. |
AnnaBridge | 145:64910690c574 | 694 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 695 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 696 | * @param key3 Third input key for key bundle |
AnnaBridge | 145:64910690c574 | 697 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 698 | */ |
AnnaBridge | 145:64910690c574 | 699 | status_t LTC_DES3_EncryptCbcEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 700 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 701 | const uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 702 | uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 703 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 704 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 705 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 706 | const uint8_t key2[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 707 | const uint8_t key3[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 708 | |
AnnaBridge | 145:64910690c574 | 709 | /*! |
AnnaBridge | 145:64910690c574 | 710 | * @brief Decrypts triple DES using CBC block mode with three keys. |
AnnaBridge | 145:64910690c574 | 711 | * |
AnnaBridge | 145:64910690c574 | 712 | * Decrypts triple DES using CBC block mode with three keys. |
AnnaBridge | 145:64910690c574 | 713 | * |
AnnaBridge | 145:64910690c574 | 714 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 715 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 716 | * @param ciphertext Input ciphertext to decrypt |
AnnaBridge | 145:64910690c574 | 717 | * @param[out] plaintext Output plaintext |
AnnaBridge | 145:64910690c574 | 718 | * @param size Size of input and output data in bytes |
AnnaBridge | 145:64910690c574 | 719 | * @param iv Input initial vector to combine with the first plaintext block. |
AnnaBridge | 145:64910690c574 | 720 | * The iv does not need to be secret, but it must be unpredictable. |
AnnaBridge | 145:64910690c574 | 721 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 722 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 723 | * @param key3 Third input key for key bundle |
AnnaBridge | 145:64910690c574 | 724 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 725 | */ |
AnnaBridge | 145:64910690c574 | 726 | status_t LTC_DES3_DecryptCbcEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 727 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 728 | const uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 729 | uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 730 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 731 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 732 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 733 | const uint8_t key2[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 734 | const uint8_t key3[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 735 | |
AnnaBridge | 145:64910690c574 | 736 | /*! |
AnnaBridge | 145:64910690c574 | 737 | * @brief Encrypts triple DES using CFB block mode with three keys. |
AnnaBridge | 145:64910690c574 | 738 | * |
AnnaBridge | 145:64910690c574 | 739 | * Encrypts triple DES using CFB block mode with three keys. |
AnnaBridge | 145:64910690c574 | 740 | * |
AnnaBridge | 145:64910690c574 | 741 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 742 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 743 | * @param plaintext Input plaintext to encrypt |
AnnaBridge | 145:64910690c574 | 744 | * @param[out] ciphertext Output ciphertext |
AnnaBridge | 145:64910690c574 | 745 | * @param size Size of input and ouput data in bytes |
AnnaBridge | 145:64910690c574 | 746 | * @param iv Input initial block. |
AnnaBridge | 145:64910690c574 | 747 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 748 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 749 | * @param key3 Third input key for key bundle |
AnnaBridge | 145:64910690c574 | 750 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 751 | */ |
AnnaBridge | 145:64910690c574 | 752 | status_t LTC_DES3_EncryptCfbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 753 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 754 | const uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 755 | uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 756 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 757 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 758 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 759 | const uint8_t key2[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 760 | const uint8_t key3[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 761 | |
AnnaBridge | 145:64910690c574 | 762 | /*! |
AnnaBridge | 145:64910690c574 | 763 | * @brief Decrypts triple DES using CFB block mode with three keys. |
AnnaBridge | 145:64910690c574 | 764 | * |
AnnaBridge | 145:64910690c574 | 765 | * Decrypts triple DES using CFB block mode with three keys. |
AnnaBridge | 145:64910690c574 | 766 | * |
AnnaBridge | 145:64910690c574 | 767 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 768 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 769 | * @param ciphertext Input ciphertext to decrypt |
AnnaBridge | 145:64910690c574 | 770 | * @param[out] plaintext Output plaintext |
AnnaBridge | 145:64910690c574 | 771 | * @param size Size of input data in bytes |
AnnaBridge | 145:64910690c574 | 772 | * @param iv Input initial block. |
AnnaBridge | 145:64910690c574 | 773 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 774 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 775 | * @param key3 Third input key for key bundle |
AnnaBridge | 145:64910690c574 | 776 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 777 | */ |
AnnaBridge | 145:64910690c574 | 778 | status_t LTC_DES3_DecryptCfbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 779 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 780 | const uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 781 | uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 782 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 783 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 784 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 785 | const uint8_t key2[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 786 | const uint8_t key3[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 787 | |
AnnaBridge | 145:64910690c574 | 788 | /*! |
AnnaBridge | 145:64910690c574 | 789 | * @brief Encrypts triple DES using OFB block mode with three keys. |
AnnaBridge | 145:64910690c574 | 790 | * |
AnnaBridge | 145:64910690c574 | 791 | * Encrypts triple DES using OFB block mode with three keys. |
AnnaBridge | 145:64910690c574 | 792 | * |
AnnaBridge | 145:64910690c574 | 793 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 794 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 795 | * @param plaintext Input plaintext to encrypt |
AnnaBridge | 145:64910690c574 | 796 | * @param[out] ciphertext Output ciphertext |
AnnaBridge | 145:64910690c574 | 797 | * @param size Size of input and output data in bytes |
AnnaBridge | 145:64910690c574 | 798 | * @param iv Input unique input vector. The OFB mode requires that the IV be unique |
AnnaBridge | 145:64910690c574 | 799 | * for each execution of the mode under the given key. |
AnnaBridge | 145:64910690c574 | 800 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 801 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 802 | * @param key3 Third input key for key bundle |
AnnaBridge | 145:64910690c574 | 803 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 804 | */ |
AnnaBridge | 145:64910690c574 | 805 | status_t LTC_DES3_EncryptOfbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 806 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 807 | const uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 808 | uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 809 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 810 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 811 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 812 | const uint8_t key2[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 813 | const uint8_t key3[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 814 | |
AnnaBridge | 145:64910690c574 | 815 | /*! |
AnnaBridge | 145:64910690c574 | 816 | * @brief Decrypts triple DES using OFB block mode with three keys. |
AnnaBridge | 145:64910690c574 | 817 | * |
AnnaBridge | 145:64910690c574 | 818 | * Decrypts triple DES using OFB block mode with three keys. |
AnnaBridge | 145:64910690c574 | 819 | * |
AnnaBridge | 145:64910690c574 | 820 | * @param base LTC peripheral base address |
AnnaBridge | 145:64910690c574 | 821 | * @param handle pointer to ltc_edma_handle_t structure which stores the transaction state. |
AnnaBridge | 145:64910690c574 | 822 | * @param ciphertext Input ciphertext to decrypt |
AnnaBridge | 145:64910690c574 | 823 | * @param[out] plaintext Output plaintext |
AnnaBridge | 145:64910690c574 | 824 | * @param size Size of input and output data in bytes |
AnnaBridge | 145:64910690c574 | 825 | * @param iv Input unique input vector. The OFB mode requires that the IV be unique |
AnnaBridge | 145:64910690c574 | 826 | * for each execution of the mode under the given key. |
AnnaBridge | 145:64910690c574 | 827 | * @param key1 First input key for key bundle |
AnnaBridge | 145:64910690c574 | 828 | * @param key2 Second input key for key bundle |
AnnaBridge | 145:64910690c574 | 829 | * @param key3 Third input key for key bundle |
AnnaBridge | 145:64910690c574 | 830 | * @return Status from encrypt/decrypt operation |
AnnaBridge | 145:64910690c574 | 831 | */ |
AnnaBridge | 145:64910690c574 | 832 | status_t LTC_DES3_DecryptOfbEDMA(LTC_Type *base, |
AnnaBridge | 145:64910690c574 | 833 | ltc_edma_handle_t *handle, |
AnnaBridge | 145:64910690c574 | 834 | const uint8_t *ciphertext, |
AnnaBridge | 145:64910690c574 | 835 | uint8_t *plaintext, |
AnnaBridge | 145:64910690c574 | 836 | uint32_t size, |
AnnaBridge | 145:64910690c574 | 837 | const uint8_t iv[LTC_DES_IV_SIZE], |
AnnaBridge | 145:64910690c574 | 838 | const uint8_t key1[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 839 | const uint8_t key2[LTC_DES_KEY_SIZE], |
AnnaBridge | 145:64910690c574 | 840 | const uint8_t key3[LTC_DES_KEY_SIZE]); |
AnnaBridge | 145:64910690c574 | 841 | |
AnnaBridge | 145:64910690c574 | 842 | /*! |
AnnaBridge | 145:64910690c574 | 843 | *@} |
AnnaBridge | 145:64910690c574 | 844 | */ |
AnnaBridge | 145:64910690c574 | 845 | |
AnnaBridge | 145:64910690c574 | 846 | #if defined(__cplusplus) |
AnnaBridge | 145:64910690c574 | 847 | } |
AnnaBridge | 145:64910690c574 | 848 | #endif |
AnnaBridge | 145:64910690c574 | 849 | |
AnnaBridge | 145:64910690c574 | 850 | #endif /* _FSL_LTC_EDMA_H_ */ |