SilentSensors / mbed-dev

Fork of mbed-dev by mbed official

Committer:
AnnaBridge
Date:
Thu Nov 23 11:57:25 2017 +0000
Revision:
178:79309dc6340a
mbed-dev library. Release version 156

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 178:79309dc6340a 1 /*! *****************************************************************************
AnnaBridge 178:79309dc6340a 2 * @file adi_crypto.h
AnnaBridge 178:79309dc6340a 3 * @brief Main include file for CRYPTO Device driver definitions
AnnaBridge 178:79309dc6340a 4 -----------------------------------------------------------------------------
AnnaBridge 178:79309dc6340a 5 Copyright (c) 2010-2016 Analog Devices, Inc.
AnnaBridge 178:79309dc6340a 6
AnnaBridge 178:79309dc6340a 7 All rights reserved.
AnnaBridge 178:79309dc6340a 8
AnnaBridge 178:79309dc6340a 9 Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 178:79309dc6340a 10 are permitted provided that the following conditions are met:
AnnaBridge 178:79309dc6340a 11 - Redistributions of source code must retain the above copyright notice,
AnnaBridge 178:79309dc6340a 12 this list of conditions and the following disclaimer.
AnnaBridge 178:79309dc6340a 13 - Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 178:79309dc6340a 14 this list of conditions and the following disclaimer in the documentation
AnnaBridge 178:79309dc6340a 15 and/or other materials provided with the distribution.
AnnaBridge 178:79309dc6340a 16 - Modified versions of the software must be conspicuously marked as such.
AnnaBridge 178:79309dc6340a 17 - This software is licensed solely and exclusively for use with processors
AnnaBridge 178:79309dc6340a 18 manufactured by or for Analog Devices, Inc.
AnnaBridge 178:79309dc6340a 19 - This software may not be combined or merged with other code in any manner
AnnaBridge 178:79309dc6340a 20 that would cause the software to become subject to terms and conditions
AnnaBridge 178:79309dc6340a 21 which differ from those listed here.
AnnaBridge 178:79309dc6340a 22 - Neither the name of Analog Devices, Inc. nor the names of its
AnnaBridge 178:79309dc6340a 23 contributors may be used to endorse or promote products derived
AnnaBridge 178:79309dc6340a 24 from this software without specific prior written permission.
AnnaBridge 178:79309dc6340a 25 - The use of this software may or may not infringe the patent rights of one
AnnaBridge 178:79309dc6340a 26 or more patent holders. This license does not release you from the
AnnaBridge 178:79309dc6340a 27 requirement that you obtain separate licenses from these patent holders
AnnaBridge 178:79309dc6340a 28 to use this software.
AnnaBridge 178:79309dc6340a 29
AnnaBridge 178:79309dc6340a 30 THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. AND CONTRIBUTORS "AS IS"
AnnaBridge 178:79309dc6340a 31 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-
AnnaBridge 178:79309dc6340a 32 INFRINGEMENT, TITLE, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 178:79309dc6340a 33 DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. OR CONTRIBUTORS BE LIABLE
AnnaBridge 178:79309dc6340a 34 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, PUNITIVE OR
AnnaBridge 178:79309dc6340a 35 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, DAMAGES ARISING OUT OF
AnnaBridge 178:79309dc6340a 36 CLAIMS OF INTELLECTUAL PROPERTY RIGHTS INFRINGEMENT; PROCUREMENT OF
AnnaBridge 178:79309dc6340a 37 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
AnnaBridge 178:79309dc6340a 38 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
AnnaBridge 178:79309dc6340a 39 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
AnnaBridge 178:79309dc6340a 40 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
AnnaBridge 178:79309dc6340a 41 POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 178:79309dc6340a 42
AnnaBridge 178:79309dc6340a 43 *****************************************************************************/
AnnaBridge 178:79309dc6340a 44
AnnaBridge 178:79309dc6340a 45
AnnaBridge 178:79309dc6340a 46 /** @addtogroup Crypto_Driver Crypto Driver
AnnaBridge 178:79309dc6340a 47 * @{
AnnaBridge 178:79309dc6340a 48 */
AnnaBridge 178:79309dc6340a 49
AnnaBridge 178:79309dc6340a 50 #ifndef ADI_CRYPTO_H
AnnaBridge 178:79309dc6340a 51 #define ADI_CRYPTO_H
AnnaBridge 178:79309dc6340a 52
AnnaBridge 178:79309dc6340a 53 /*! \cond PRIVATE */
AnnaBridge 178:79309dc6340a 54 #include <adi_processor.h>
AnnaBridge 178:79309dc6340a 55 #include <adi_callback.h>
AnnaBridge 178:79309dc6340a 56 #include <rtos_map/adi_rtos_map.h> /* for ADI_SEM_SIZE */
AnnaBridge 178:79309dc6340a 57 /*! \endcond */
AnnaBridge 178:79309dc6340a 58 #include <adi_crypto_config.h>
AnnaBridge 178:79309dc6340a 59
AnnaBridge 178:79309dc6340a 60 #ifdef __cplusplus
AnnaBridge 178:79309dc6340a 61 extern "C" {
AnnaBridge 178:79309dc6340a 62 #endif /* __cplusplus */
AnnaBridge 178:79309dc6340a 63
AnnaBridge 178:79309dc6340a 64 /*!
AnnaBridge 178:79309dc6340a 65 * \enum ADI_CRYPTO_RESULT
AnnaBridge 178:79309dc6340a 66 * Crypto API return codes
AnnaBridge 178:79309dc6340a 67 */
AnnaBridge 178:79309dc6340a 68 typedef enum
AnnaBridge 178:79309dc6340a 69 {
AnnaBridge 178:79309dc6340a 70 ADI_CRYPTO_SUCCESS = 0, /*!< No Error, API suceeded. */
AnnaBridge 178:79309dc6340a 71 ADI_CRYPTO_ERR_ALREADY_INITIALIZED, /*!< Crypto is already initialized. */
AnnaBridge 178:79309dc6340a 72 ADI_CRYPTO_ERR_BAD_BUFFER, /*!< Invalid buffer parameters. */
AnnaBridge 178:79309dc6340a 73 ADI_CRYPTO_ERR_BAD_CONFIG, /*!< Invalid device config parameters passed. */
AnnaBridge 178:79309dc6340a 74 ADI_CRYPTO_ERR_BAD_DEVICE_NUM, /*!< Invalid device instance number. */
AnnaBridge 178:79309dc6340a 75 ADI_CRYPTO_ERR_BAD_DEV_HANDLE, /*!< Invalid device handle passed. */
AnnaBridge 178:79309dc6340a 76 ADI_CRYPTO_ERR_COMPUTE_ACTIVE, /*!< Computation underway. */
AnnaBridge 178:79309dc6340a 77 ADI_CRYPTO_ERR_DMA_BUS_FAULT, /*!< Runtime DMA bus fault detected. */
AnnaBridge 178:79309dc6340a 78 ADI_CRYPTO_ERR_DMA_INVALID_DESCR, /*!< Runtime DMA invalid descriptor detected. */
AnnaBridge 178:79309dc6340a 79 ADI_CRYPTO_ERR_DMA_REGISTER, /*!< Error registering DMA error callback function. */
AnnaBridge 178:79309dc6340a 80 ADI_CRYPTO_ERR_DMA_UNKNOWN_ERROR, /*!< Unknown runtime DMA error detected. */
AnnaBridge 178:79309dc6340a 81 ADI_CRYPTO_ERR_INSUFFICIENT_MEM, /*!< Insufficient memory passed to the driver. */
AnnaBridge 178:79309dc6340a 82 ADI_CRYPTO_ERR_INVALID_PARAM, /*!< Invalid function parameter. */
AnnaBridge 178:79309dc6340a 83 ADI_CRYPTO_ERR_INVALID_STATE, /*!< Operation failed since the device is in an invalid state. */
AnnaBridge 178:79309dc6340a 84 ADI_CRYPTO_ERR_SEMAPHORE_FAILED, /*!< Failure in semaphore functions. */
AnnaBridge 178:79309dc6340a 85 } ADI_CRYPTO_RESULT;
AnnaBridge 178:79309dc6340a 86
AnnaBridge 178:79309dc6340a 87 /*!
AnnaBridge 178:79309dc6340a 88 * \enum ADI_CRYPTO_EVENT
AnnaBridge 178:79309dc6340a 89 * Crypto callback events
AnnaBridge 178:79309dc6340a 90 */
AnnaBridge 178:79309dc6340a 91 typedef enum
AnnaBridge 178:79309dc6340a 92 {
AnnaBridge 178:79309dc6340a 93 /* successful buffer completion events */
AnnaBridge 178:79309dc6340a 94 ADI_CRYPTO_EVENT_STATUS_CBC_DONE, /*!< CBC operation is complete. */
AnnaBridge 178:79309dc6340a 95 ADI_CRYPTO_EVENT_STATUS_CCM_DONE, /*!< CCM operation is complete. */
AnnaBridge 178:79309dc6340a 96 ADI_CRYPTO_EVENT_STATUS_CMAC_DONE, /*!< CMAC operation is complete. */
AnnaBridge 178:79309dc6340a 97 ADI_CRYPTO_EVENT_STATUS_CTR_DONE, /*!< CTR operation is complete. */
AnnaBridge 178:79309dc6340a 98 ADI_CRYPTO_EVENT_STATUS_ECB_DONE, /*!< ECB operation is complete. */
AnnaBridge 178:79309dc6340a 99 ADI_CRYPTO_EVENT_STATUS_HMAC_DONE, /*!< HMAC operation is complete. */
AnnaBridge 178:79309dc6340a 100 ADI_CRYPTO_EVENT_STATUS_SHA_DONE, /*!< SHA operation is complete. */
AnnaBridge 178:79309dc6340a 101
AnnaBridge 178:79309dc6340a 102 /* other events */
AnnaBridge 178:79309dc6340a 103 ADI_CRYPTO_EVENT_DMA_BUS_ERROR, /*!< DMA bus error encountered. */
AnnaBridge 178:79309dc6340a 104 ADI_CRYPTO_EVENT_DMA_DESCRIPTOR_ERROR, /*!< DMA descriptor error encountered. */
AnnaBridge 178:79309dc6340a 105 ADI_CRYPTO_EVENT_DMA_UNKNOWN_ERROR, /*!< DMA unknown error encountered. */
AnnaBridge 178:79309dc6340a 106 ADI_CRYPTO_EVENT_STATUS_INPUT_OVERFLOW, /*!< Input overflow error encountered. */
AnnaBridge 178:79309dc6340a 107 ADI_CRYPTO_EVENT_STATUS_UNKNOWN, /*!< Unknown error encountered. */
AnnaBridge 178:79309dc6340a 108 } ADI_CRYPTO_EVENT;
AnnaBridge 178:79309dc6340a 109
AnnaBridge 178:79309dc6340a 110 /*! The amount of application supplied memory used by the CRYPTO driver to store internal state. */
AnnaBridge 178:79309dc6340a 111 #define ADI_CRYPTO_MEMORY_SIZE (88u + ADI_SEM_SIZE)
AnnaBridge 178:79309dc6340a 112
AnnaBridge 178:79309dc6340a 113 /*! A device handle used in all API functions to identify the flash device. */
AnnaBridge 178:79309dc6340a 114 typedef struct __ADI_CRYPTO_DEV_DATA_TYPE* ADI_CRYPTO_HANDLE;
AnnaBridge 178:79309dc6340a 115
AnnaBridge 178:79309dc6340a 116 /*! Number of bytes to allocate for SHA256 hash outputs */
AnnaBridge 178:79309dc6340a 117 #define ADI_CRYPTO_SHA_HASH_BYTES (256u/8u)
AnnaBridge 178:79309dc6340a 118
AnnaBridge 178:79309dc6340a 119 /*! Computation mode(Encryption/Decryption) for given buffers */
AnnaBridge 178:79309dc6340a 120 typedef enum
AnnaBridge 178:79309dc6340a 121 {
AnnaBridge 178:79309dc6340a 122 ADI_CRYPTO_DECODE = (0u << BITP_CRYPT_CFG_ENCR), /*!< Encoding mode is decryption. */
AnnaBridge 178:79309dc6340a 123 ADI_CRYPTO_ENCODE = (1u << BITP_CRYPT_CFG_ENCR), /*!< Encoding mode is encryption. */
AnnaBridge 178:79309dc6340a 124 } ADI_CRYPTO_CODING_MODE;
AnnaBridge 178:79309dc6340a 125
AnnaBridge 178:79309dc6340a 126 /*! Enum for the AES KEY Length */
AnnaBridge 178:79309dc6340a 127 typedef enum
AnnaBridge 178:79309dc6340a 128 {
AnnaBridge 178:79309dc6340a 129 ADI_CRYPTO_AES_KEY_LEN_128_BIT = (0u << BITP_CRYPT_CFG_AESKEYLEN), /*!< KEY length is 128 bits. */
AnnaBridge 178:79309dc6340a 130 ADI_CRYPTO_AES_KEY_LEN_256_BIT = (2u << BITP_CRYPT_CFG_AESKEYLEN), /*!< KEY length is 256 bits. */
AnnaBridge 178:79309dc6340a 131 } ADI_CRYPTO_AES_KEY_LEN;
AnnaBridge 178:79309dc6340a 132
AnnaBridge 178:79309dc6340a 133 /*! Enable byte swapping for KEY writes */
AnnaBridge 178:79309dc6340a 134 typedef enum
AnnaBridge 178:79309dc6340a 135 {
AnnaBridge 178:79309dc6340a 136 ADI_CRYPTO_KEY_LITTLE_ENDIAN = (0u << BITP_CRYPT_CFG_KEY_BYTESWAP), /*!< Do not apply KEY write byte swaps. */
AnnaBridge 178:79309dc6340a 137 ADI_CRYPTO_KEY_BIG_ENDIAN = (1u << BITP_CRYPT_CFG_KEY_BYTESWAP), /*!< Apply KEY write byte swaps. */
AnnaBridge 178:79309dc6340a 138 } ADI_CRYPTO_KEY_BYTE_SWAP;
AnnaBridge 178:79309dc6340a 139
AnnaBridge 178:79309dc6340a 140 /*! Byte-swap the SHA Input Data */
AnnaBridge 178:79309dc6340a 141 typedef enum
AnnaBridge 178:79309dc6340a 142 {
AnnaBridge 178:79309dc6340a 143 ADI_CRYPTO_SHA_LITTLE_ENDIAN = (0u << BITP_CRYPT_CFG_SHA_BYTESWAP), /*!< Do not apply SHA data write byte swaps. */
AnnaBridge 178:79309dc6340a 144 ADI_CRYPTO_SHA_BIG_ENDIAN = (1u << BITP_CRYPT_CFG_SHA_BYTESWAP), /*!< Apply SHA data write byte swaps. */
AnnaBridge 178:79309dc6340a 145 } ADI_CRYPTO_SHA_BYTE_SWAP;
AnnaBridge 178:79309dc6340a 146
AnnaBridge 178:79309dc6340a 147 /*! Byte-swap the AES Input Data */
AnnaBridge 178:79309dc6340a 148 typedef enum
AnnaBridge 178:79309dc6340a 149 {
AnnaBridge 178:79309dc6340a 150 ADI_CRYPTO_AES_LITTLE_ENDIAN = (0u << BITP_CRYPT_CFG_AES_BYTESWAP), /*!< Do not apply AES data write byte swaps. */
AnnaBridge 178:79309dc6340a 151 ADI_CRYPTO_AES_BIG_ENDIAN = (1u << BITP_CRYPT_CFG_AES_BYTESWAP), /*!< Apply AES data write byte swaps. */
AnnaBridge 178:79309dc6340a 152 } ADI_CRYPTO_AES_BYTE_SWAP;
AnnaBridge 178:79309dc6340a 153
AnnaBridge 178:79309dc6340a 154 /*!
AnnaBridge 178:79309dc6340a 155 * \enum ADI_CRYPTO_CIPHER_MODE
AnnaBridge 178:79309dc6340a 156 * Enum for the cipher modes.
AnnaBridge 178:79309dc6340a 157 */
AnnaBridge 178:79309dc6340a 158 typedef enum {
AnnaBridge 178:79309dc6340a 159 ADI_CRYPTO_MODE_CBC = BITM_CRYPT_CFG_CBCEN, /*!< Select CBC cipher mode. */
AnnaBridge 178:79309dc6340a 160 ADI_CRYPTO_MODE_CCM = BITM_CRYPT_CFG_CCMEN, /*!< Select CCM cipher mode. */
AnnaBridge 178:79309dc6340a 161 ADI_CRYPTO_MODE_CMAC = BITM_CRYPT_CFG_CMACEN, /*!< Select CMAC cipher mode. */
AnnaBridge 178:79309dc6340a 162 ADI_CRYPTO_MODE_CTR = BITM_CRYPT_CFG_CTREN, /*!< Select CTR cipher mode. */
AnnaBridge 178:79309dc6340a 163 ADI_CRYPTO_MODE_ECB = BITM_CRYPT_CFG_ECBEN, /*!< Select ECB cipher mode. */
AnnaBridge 178:79309dc6340a 164 ADI_CRYPTO_MODE_HMAC = BITM_CRYPT_CFG_HMACEN, /*!< Select HMAC cipher mode. */
AnnaBridge 178:79309dc6340a 165 ADI_CRYPTO_MODE_SHA = BITM_CRYPT_CFG_SHA256EN, /*!< Select SHA cipher mode. */
AnnaBridge 178:79309dc6340a 166 } ADI_CRYPTO_CIPHER_MODE;
AnnaBridge 178:79309dc6340a 167
AnnaBridge 178:79309dc6340a 168 /*! superset user Crypto transaction structure (different elements used for different modes) */
AnnaBridge 178:79309dc6340a 169 typedef struct
AnnaBridge 178:79309dc6340a 170 {
AnnaBridge 178:79309dc6340a 171 ADI_CRYPTO_CIPHER_MODE eCipherMode; /*!< Cipher mode to use */
AnnaBridge 178:79309dc6340a 172 ADI_CRYPTO_CODING_MODE eCodingMode; /*!< Coding Mode (Encryption or Decryption) */
AnnaBridge 178:79309dc6340a 173
AnnaBridge 178:79309dc6340a 174 ADI_CRYPTO_KEY_BYTE_SWAP eKeyByteSwap; /*!< KEY endianness */
AnnaBridge 178:79309dc6340a 175 ADI_CRYPTO_SHA_BYTE_SWAP eShaByteSwap; /*!< SHA endianness */
AnnaBridge 178:79309dc6340a 176 ADI_CRYPTO_AES_BYTE_SWAP eAesByteSwap; /*!< AES endianness */
AnnaBridge 178:79309dc6340a 177
AnnaBridge 178:79309dc6340a 178 uint8_t *pKey; /*!< Pointer to the KEY data: pre-formatted as a byte array, according to eAesKeyLen. */
AnnaBridge 178:79309dc6340a 179 ADI_CRYPTO_AES_KEY_LEN eAesKeyLen; /*!< The length of the AES KEY */
AnnaBridge 178:79309dc6340a 180
AnnaBridge 178:79309dc6340a 181 uint32_t *pAuthData; /*!< CCM mode: pointer to user prefix buffer */
AnnaBridge 178:79309dc6340a 182 uint32_t numAuthBytes; /*!< Length of the prefix buffer in bytes (should be a multiple of 16 bytes) */
AnnaBridge 178:79309dc6340a 183
AnnaBridge 178:79309dc6340a 184 uint32_t *pInputData; /*!< Pointer to user input data buffer */
AnnaBridge 178:79309dc6340a 185 uint32_t numInputBytes; /*!< Length of the data buffer in bytes (should be a multiple of 16bytes) */
AnnaBridge 178:79309dc6340a 186
AnnaBridge 178:79309dc6340a 187 uint32_t *pOutputData; /*!< Pointer to user output buffer */
AnnaBridge 178:79309dc6340a 188 uint32_t numOutputBytes; /*!< Length of the output buffer in bytes (should be a multiple of 16bytes) */
AnnaBridge 178:79309dc6340a 189
AnnaBridge 178:79309dc6340a 190 uint8_t *pNonceIV; /*!< Pointer to user 16-byte array containing one of three values, depending on cipher mode:\n
AnnaBridge 178:79309dc6340a 191 - CTR mode = 108-bit NONCE\n
AnnaBridge 178:79309dc6340a 192 - CCM mode = 112-bit NONCE\n
AnnaBridge 178:79309dc6340a 193 - CBC mode = 128-bit IV (Initialization Vector)\n\n
AnnaBridge 178:79309dc6340a 194 NONCE and IV assume little endian format, for example: CTR NONCE packing is:\n
AnnaBridge 178:79309dc6340a 195 - NONCE[0] -> 7:0\n
AnnaBridge 178:79309dc6340a 196 - NONCE[1] -> 15:8\n
AnnaBridge 178:79309dc6340a 197 - ...\n
AnnaBridge 178:79309dc6340a 198 - NONCE[13] -> 103:96\n
AnnaBridge 178:79309dc6340a 199 - NONCE[14](Bits 3:0) -> 107:104\n
AnnaBridge 178:79309dc6340a 200 */
AnnaBridge 178:79309dc6340a 201 uint32_t CounterInit; /*!< CTR/CCM mode: Counter Initialization Value (CTR=20-bit, CCM=16-bit) */
AnnaBridge 178:79309dc6340a 202 uint32_t numValidBytes; /*!< CCM mode: Number of valid bytes in the last (padding) block (1-16) */
AnnaBridge 178:79309dc6340a 203 uint32_t numShaBits; /*!< SHA mode: Number of bits in the SHA payload, which may be odd-sized */
AnnaBridge 178:79309dc6340a 204 } ADI_CRYPTO_TRANSACTION;
AnnaBridge 178:79309dc6340a 205
AnnaBridge 178:79309dc6340a 206
AnnaBridge 178:79309dc6340a 207 /*================ PUBLIC API ==================*/
AnnaBridge 178:79309dc6340a 208
AnnaBridge 178:79309dc6340a 209
AnnaBridge 178:79309dc6340a 210 ADI_CRYPTO_RESULT adi_crypto_Open (uint32_t const nDeviceNum, void * const pMemory, uint32_t const nMemorySize, ADI_CRYPTO_HANDLE * const phDevice);
AnnaBridge 178:79309dc6340a 211 ADI_CRYPTO_RESULT adi_crypto_Close (ADI_CRYPTO_HANDLE const hDevice);
AnnaBridge 178:79309dc6340a 212 ADI_CRYPTO_RESULT adi_crypto_RegisterCallback (ADI_CRYPTO_HANDLE const hDevice, ADI_CALLBACK const pfCallback, void * const pCBParam);
AnnaBridge 178:79309dc6340a 213 ADI_CRYPTO_RESULT adi_crypto_Enable (ADI_CRYPTO_HANDLE const hDevice, bool const bEnable);
AnnaBridge 178:79309dc6340a 214
AnnaBridge 178:79309dc6340a 215 ADI_CRYPTO_RESULT adi_crypto_SubmitBuffer (ADI_CRYPTO_HANDLE const hDevice, ADI_CRYPTO_TRANSACTION * const pBuffer);
AnnaBridge 178:79309dc6340a 216 ADI_CRYPTO_RESULT adi_crypto_GetBuffer (ADI_CRYPTO_HANDLE const hDevice, ADI_CRYPTO_TRANSACTION ** const ppBuffer);
AnnaBridge 178:79309dc6340a 217 ADI_CRYPTO_RESULT adi_crypto_IsBufferAvailable (ADI_CRYPTO_HANDLE const hDevice, bool * const pbAvailable);
AnnaBridge 178:79309dc6340a 218
AnnaBridge 178:79309dc6340a 219 #if (ADI_CRYPTO_ENABLE_DMA_SUPPORT == 1)
AnnaBridge 178:79309dc6340a 220 ADI_CRYPTO_RESULT adi_crypto_EnableDmaMode (ADI_CRYPTO_HANDLE const hDevice, bool const bEnable);
AnnaBridge 178:79309dc6340a 221 #endif
AnnaBridge 178:79309dc6340a 222
AnnaBridge 178:79309dc6340a 223
AnnaBridge 178:79309dc6340a 224 #ifdef __cplusplus
AnnaBridge 178:79309dc6340a 225 }
AnnaBridge 178:79309dc6340a 226 #endif
AnnaBridge 178:79309dc6340a 227
AnnaBridge 178:79309dc6340a 228 #endif /* include guard */
AnnaBridge 178:79309dc6340a 229
AnnaBridge 178:79309dc6340a 230 /*
AnnaBridge 178:79309dc6340a 231 ** EOF
AnnaBridge 178:79309dc6340a 232 */
AnnaBridge 178:79309dc6340a 233
AnnaBridge 178:79309dc6340a 234 /*@}*/
AnnaBridge 178:79309dc6340a 235