mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Fri Aug 14 13:15:17 2015 +0100
Revision:
610:813dcc80987e
Synchronized with git revision 6d84db41c6833e0b9b024741eb0616a5f62d5599

Full URL: https://github.com/mbedmicro/mbed/commit/6d84db41c6833e0b9b024741eb0616a5f62d5599/

DISCO_F746NG - Improvements

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 610:813dcc80987e 1 /**
mbed_official 610:813dcc80987e 2 ******************************************************************************
mbed_official 610:813dcc80987e 3 * @file stm32l4xx_hal_cryp.h
mbed_official 610:813dcc80987e 4 * @author MCD Application Team
mbed_official 610:813dcc80987e 5 * @version V1.0.0
mbed_official 610:813dcc80987e 6 * @date 26-June-2015
mbed_official 610:813dcc80987e 7 * @brief Header file of CRYP HAL module.
mbed_official 610:813dcc80987e 8 ******************************************************************************
mbed_official 610:813dcc80987e 9 * @attention
mbed_official 610:813dcc80987e 10 *
mbed_official 610:813dcc80987e 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 610:813dcc80987e 12 *
mbed_official 610:813dcc80987e 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 610:813dcc80987e 14 * are permitted provided that the following conditions are met:
mbed_official 610:813dcc80987e 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 610:813dcc80987e 16 * this list of conditions and the following disclaimer.
mbed_official 610:813dcc80987e 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 610:813dcc80987e 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 610:813dcc80987e 19 * and/or other materials provided with the distribution.
mbed_official 610:813dcc80987e 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 610:813dcc80987e 21 * may be used to endorse or promote products derived from this software
mbed_official 610:813dcc80987e 22 * without specific prior written permission.
mbed_official 610:813dcc80987e 23 *
mbed_official 610:813dcc80987e 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 610:813dcc80987e 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 610:813dcc80987e 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 610:813dcc80987e 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 610:813dcc80987e 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 610:813dcc80987e 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 610:813dcc80987e 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 610:813dcc80987e 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 610:813dcc80987e 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 610:813dcc80987e 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 610:813dcc80987e 34 *
mbed_official 610:813dcc80987e 35 ******************************************************************************
mbed_official 610:813dcc80987e 36 */
mbed_official 610:813dcc80987e 37
mbed_official 610:813dcc80987e 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 610:813dcc80987e 39 #ifndef __STM32L4xx_HAL_CRYP_H
mbed_official 610:813dcc80987e 40 #define __STM32L4xx_HAL_CRYP_H
mbed_official 610:813dcc80987e 41
mbed_official 610:813dcc80987e 42 #ifdef __cplusplus
mbed_official 610:813dcc80987e 43 extern "C" {
mbed_official 610:813dcc80987e 44 #endif
mbed_official 610:813dcc80987e 45
mbed_official 610:813dcc80987e 46 #if defined(STM32L485xx) || defined(STM32L486xx)
mbed_official 610:813dcc80987e 47
mbed_official 610:813dcc80987e 48 /* Includes ------------------------------------------------------------------*/
mbed_official 610:813dcc80987e 49 #include "stm32l4xx_hal_def.h"
mbed_official 610:813dcc80987e 50
mbed_official 610:813dcc80987e 51 /** @addtogroup STM32L4xx_HAL_Driver
mbed_official 610:813dcc80987e 52 * @{
mbed_official 610:813dcc80987e 53 */
mbed_official 610:813dcc80987e 54
mbed_official 610:813dcc80987e 55 /** @addtogroup CRYP
mbed_official 610:813dcc80987e 56 * @{
mbed_official 610:813dcc80987e 57 */
mbed_official 610:813dcc80987e 58
mbed_official 610:813dcc80987e 59 /* Exported types ------------------------------------------------------------*/
mbed_official 610:813dcc80987e 60 /** @defgroup CRYP_Exported_Types CRYP Exported Types
mbed_official 610:813dcc80987e 61 * @{
mbed_official 610:813dcc80987e 62 */
mbed_official 610:813dcc80987e 63
mbed_official 610:813dcc80987e 64 /**
mbed_official 610:813dcc80987e 65 * @brief CRYP Configuration Structure definition
mbed_official 610:813dcc80987e 66 */
mbed_official 610:813dcc80987e 67 typedef struct
mbed_official 610:813dcc80987e 68 {
mbed_official 610:813dcc80987e 69 uint32_t DataType; /*!< 32-bit data, 16-bit data, 8-bit data or 1-bit string.
mbed_official 610:813dcc80987e 70 This parameter can be a value of @ref CRYP_Data_Type */
mbed_official 610:813dcc80987e 71
mbed_official 610:813dcc80987e 72 uint32_t KeySize; /*!< 128 or 256-bit key length.
mbed_official 610:813dcc80987e 73 This parameter can be a value of @ref CRYP_Key_Size */
mbed_official 610:813dcc80987e 74
mbed_official 610:813dcc80987e 75 uint32_t OperatingMode; /*!< AES operating mode.
mbed_official 610:813dcc80987e 76 This parameter can be a value of @ref CRYP_AES_OperatingMode */
mbed_official 610:813dcc80987e 77
mbed_official 610:813dcc80987e 78 uint32_t ChainingMode; /*!< AES chaining mode.
mbed_official 610:813dcc80987e 79 This parameter can be a value of @ref CRYP_AES_ChainingMode */
mbed_official 610:813dcc80987e 80
mbed_official 610:813dcc80987e 81 uint32_t KeyWriteFlag; /*!< Allows to bypass or not key write-up before decryption.
mbed_official 610:813dcc80987e 82 This parameter can be a value of @ref CRYP_Key_Write */
mbed_official 610:813dcc80987e 83
mbed_official 610:813dcc80987e 84 uint32_t GCMCMACPhase; /*!< Indicates the processing phase of the Galois Counter Mode (GCM),
mbed_official 610:813dcc80987e 85 Galois Message Authentication Code (GMAC) or Cipher Message
mbed_official 610:813dcc80987e 86 Authentication Code (CMAC) mode.
mbed_official 610:813dcc80987e 87 This parameter can be a value of @ref CRYP_GCM_CMAC_Phase */
mbed_official 610:813dcc80987e 88
mbed_official 610:813dcc80987e 89 uint8_t* pKey; /*!< Encryption/Decryption Key */
mbed_official 610:813dcc80987e 90
mbed_official 610:813dcc80987e 91 uint8_t* pInitVect; /*!< Initialization Vector used for CTR, CBC, GCM/GMAC and CMAC modes */
mbed_official 610:813dcc80987e 92
mbed_official 610:813dcc80987e 93 uint8_t* Header; /*!< Header used in GCM/GMAC and CMAC modes */
mbed_official 610:813dcc80987e 94
mbed_official 610:813dcc80987e 95 uint64_t HeaderSize; /*!< Header size in bytes */
mbed_official 610:813dcc80987e 96
mbed_official 610:813dcc80987e 97 }CRYP_InitTypeDef;
mbed_official 610:813dcc80987e 98
mbed_official 610:813dcc80987e 99 /**
mbed_official 610:813dcc80987e 100 * @brief HAL CRYP State structures definition
mbed_official 610:813dcc80987e 101 */
mbed_official 610:813dcc80987e 102 typedef enum
mbed_official 610:813dcc80987e 103 {
mbed_official 610:813dcc80987e 104 HAL_CRYP_STATE_RESET = 0x00, /*!< CRYP not yet initialized or disabled */
mbed_official 610:813dcc80987e 105 HAL_CRYP_STATE_READY = 0x01, /*!< CRYP initialized and ready for use */
mbed_official 610:813dcc80987e 106 HAL_CRYP_STATE_BUSY = 0x02, /*!< CRYP internal processing is ongoing */
mbed_official 610:813dcc80987e 107 HAL_CRYP_STATE_TIMEOUT = 0x03, /*!< CRYP timeout state */
mbed_official 610:813dcc80987e 108 HAL_CRYP_STATE_ERROR = 0x04, /*!< CRYP error state */
mbed_official 610:813dcc80987e 109 HAL_CRYP_STATE_SUSPENDED = 0x05 /*!< CRYP suspended */
mbed_official 610:813dcc80987e 110 }HAL_CRYP_STATETypeDef;
mbed_official 610:813dcc80987e 111
mbed_official 610:813dcc80987e 112 /**
mbed_official 610:813dcc80987e 113 * @brief HAL CRYP phase structures definition
mbed_official 610:813dcc80987e 114 */
mbed_official 610:813dcc80987e 115 typedef enum
mbed_official 610:813dcc80987e 116 {
mbed_official 610:813dcc80987e 117 HAL_CRYP_PHASE_READY = 0x01, /*!< CRYP peripheral is ready for initialization. */
mbed_official 610:813dcc80987e 118 HAL_CRYP_PHASE_PROCESS = 0x02, /*!< CRYP peripheral is in processing phase */
mbed_official 610:813dcc80987e 119 HAL_CRYP_PHASE_START = 0x03, /*!< CRYP peripheral has been initialized but GCM/GMAC/CMAC
mbed_official 610:813dcc80987e 120 initialization phase has not started */
mbed_official 610:813dcc80987e 121 HAL_CRYP_PHASE_INIT_OVER = 0x04, /*!< GCM/GMAC/CMAC init phase has been carried out */
mbed_official 610:813dcc80987e 122 HAL_CRYP_PHASE_HEADER_OVER = 0x05, /*!< GCM/GMAC/CMAC header phase has been carried out */
mbed_official 610:813dcc80987e 123 HAL_CRYP_PHASE_PAYLOAD_OVER = 0x06, /*!< GCM/GMAC/CMAC payload phase has been carried out */
mbed_official 610:813dcc80987e 124 HAL_CRYP_PHASE_FINAL_OVER = 0x07, /*!< GCM/GMAC/CMAC final phase has been carried out */
mbed_official 610:813dcc80987e 125 HAL_CRYP_PHASE_HEADER_SUSPENDED = 0x08, /*!< GCM/GMAC/CMAC header phase has been suspended */
mbed_official 610:813dcc80987e 126 HAL_CRYP_PHASE_PAYLOAD_SUSPENDED = 0x09, /*!< GCM/GMAC payload phase has been suspended */
mbed_official 610:813dcc80987e 127 HAL_CRYP_PHASE_NOT_USED = 0x0a /*!< Phase is irrelevant to the current chaining mode */
mbed_official 610:813dcc80987e 128 }HAL_PhaseTypeDef;
mbed_official 610:813dcc80987e 129
mbed_official 610:813dcc80987e 130 /**
mbed_official 610:813dcc80987e 131 * @brief HAL CRYP mode suspend definitions
mbed_official 610:813dcc80987e 132 */
mbed_official 610:813dcc80987e 133 typedef enum
mbed_official 610:813dcc80987e 134 {
mbed_official 610:813dcc80987e 135 HAL_CRYP_SUSPEND_NONE = 0x00, /*!< CRYP peripheral suspension not requested */
mbed_official 610:813dcc80987e 136 HAL_CRYP_SUSPEND = 0x01 /*!< CRYP peripheral suspension requested */
mbed_official 610:813dcc80987e 137 }HAL_SuspendTypeDef;
mbed_official 610:813dcc80987e 138
mbed_official 610:813dcc80987e 139
mbed_official 610:813dcc80987e 140 /**
mbed_official 610:813dcc80987e 141 * @brief HAL CRYP Error Codes definition
mbed_official 610:813dcc80987e 142 */
mbed_official 610:813dcc80987e 143 #define HAL_CRYP_ERROR_NONE ((uint32_t)0x00000000) /*!< No error */
mbed_official 610:813dcc80987e 144 #define HAL_CRYP_WRITE_ERROR ((uint32_t)0x00000001) /*!< Write error */
mbed_official 610:813dcc80987e 145 #define HAL_CRYP_READ_ERROR ((uint32_t)0x00000002) /*!< Read error */
mbed_official 610:813dcc80987e 146 #define HAL_CRYP_DMA_ERROR ((uint32_t)0x00000004) /*!< DMA error */
mbed_official 610:813dcc80987e 147
mbed_official 610:813dcc80987e 148
mbed_official 610:813dcc80987e 149 /**
mbed_official 610:813dcc80987e 150 * @brief CRYP handle Structure definition
mbed_official 610:813dcc80987e 151 */
mbed_official 610:813dcc80987e 152 typedef struct
mbed_official 610:813dcc80987e 153 {
mbed_official 610:813dcc80987e 154 AES_TypeDef *Instance; /*!< Register base address */
mbed_official 610:813dcc80987e 155
mbed_official 610:813dcc80987e 156 CRYP_InitTypeDef Init; /*!< CRYP initialization parameters */
mbed_official 610:813dcc80987e 157
mbed_official 610:813dcc80987e 158 uint8_t *pCrypInBuffPtr; /*!< Pointer to CRYP processing (encryption, decryption,...) input buffer */
mbed_official 610:813dcc80987e 159
mbed_official 610:813dcc80987e 160 uint8_t *pCrypOutBuffPtr; /*!< Pointer to CRYP processing (encryption, decryption,...) output buffer */
mbed_official 610:813dcc80987e 161
mbed_official 610:813dcc80987e 162 __IO uint16_t CrypInCount; /*!< Input data size in bytes or, after suspension, the remaining
mbed_official 610:813dcc80987e 163 number of bytes to process */
mbed_official 610:813dcc80987e 164
mbed_official 610:813dcc80987e 165 __IO uint16_t CrypOutCount; /*!< Output data size in bytes */
mbed_official 610:813dcc80987e 166
mbed_official 610:813dcc80987e 167 HAL_PhaseTypeDef Phase; /*!< CRYP peripheral processing phase for GCM, GMAC or CMAC modes.
mbed_official 610:813dcc80987e 168 Indicates the last phase carried out to ease
mbed_official 610:813dcc80987e 169 phase transitions */
mbed_official 610:813dcc80987e 170
mbed_official 610:813dcc80987e 171 DMA_HandleTypeDef *hdmain; /*!< CRYP peripheral Input DMA handle parameters */
mbed_official 610:813dcc80987e 172
mbed_official 610:813dcc80987e 173 DMA_HandleTypeDef *hdmaout; /*!< CRYP peripheral Output DMA handle parameters */
mbed_official 610:813dcc80987e 174
mbed_official 610:813dcc80987e 175 HAL_LockTypeDef Lock; /*!< CRYP locking object */
mbed_official 610:813dcc80987e 176
mbed_official 610:813dcc80987e 177 __IO HAL_CRYP_STATETypeDef State; /*!< CRYP peripheral state */
mbed_official 610:813dcc80987e 178
mbed_official 610:813dcc80987e 179 __IO uint32_t ErrorCode; /*!< CRYP peripheral error code */
mbed_official 610:813dcc80987e 180
mbed_official 610:813dcc80987e 181 HAL_SuspendTypeDef SuspendRequest; /*!< CRYP peripheral suspension request flag */
mbed_official 610:813dcc80987e 182 }CRYP_HandleTypeDef;
mbed_official 610:813dcc80987e 183
mbed_official 610:813dcc80987e 184 /**
mbed_official 610:813dcc80987e 185 * @}
mbed_official 610:813dcc80987e 186 */
mbed_official 610:813dcc80987e 187
mbed_official 610:813dcc80987e 188
mbed_official 610:813dcc80987e 189 /* Exported constants --------------------------------------------------------*/
mbed_official 610:813dcc80987e 190 /** @defgroup CRYP_Exported_Constants CRYP Exported Constants
mbed_official 610:813dcc80987e 191 * @{
mbed_official 610:813dcc80987e 192 */
mbed_official 610:813dcc80987e 193
mbed_official 610:813dcc80987e 194 /** @defgroup CRYP_Key_Size Key size selection
mbed_official 610:813dcc80987e 195 * @{
mbed_official 610:813dcc80987e 196 */
mbed_official 610:813dcc80987e 197 #define CRYP_KEYSIZE_128B ((uint32_t)0x00000000) /*!< 128-bit long key */
mbed_official 610:813dcc80987e 198 #define CRYP_KEYSIZE_256B AES_CR_KEYSIZE /*!< 256-bit long key */
mbed_official 610:813dcc80987e 199 /**
mbed_official 610:813dcc80987e 200 * @}
mbed_official 610:813dcc80987e 201 */
mbed_official 610:813dcc80987e 202
mbed_official 610:813dcc80987e 203 /** @defgroup CRYP_Data_Type AES Data Type selection
mbed_official 610:813dcc80987e 204 * @{
mbed_official 610:813dcc80987e 205 */
mbed_official 610:813dcc80987e 206 #define CRYP_DATATYPE_32B ((uint32_t)0x00000000) /*!< 32-bit data type (no swapping) */
mbed_official 610:813dcc80987e 207 #define CRYP_DATATYPE_16B AES_CR_DATATYPE_0 /*!< 16-bit data type (half-word swapping) */
mbed_official 610:813dcc80987e 208 #define CRYP_DATATYPE_8B AES_CR_DATATYPE_1 /*!< 8-bit data type (byte swapping) */
mbed_official 610:813dcc80987e 209 #define CRYP_DATATYPE_1B AES_CR_DATATYPE /*!< 1-bit data type (bit swapping) */
mbed_official 610:813dcc80987e 210 /**
mbed_official 610:813dcc80987e 211 * @}
mbed_official 610:813dcc80987e 212 */
mbed_official 610:813dcc80987e 213
mbed_official 610:813dcc80987e 214 /** @defgroup CRYP_AES_State AES Enable state
mbed_official 610:813dcc80987e 215 * @{
mbed_official 610:813dcc80987e 216 */
mbed_official 610:813dcc80987e 217 #define CRYP_AES_DISABLE ((uint32_t)0x00000000) /*!< Disable AES */
mbed_official 610:813dcc80987e 218 #define CRYP_AES_ENABLE AES_CR_EN /*!< Enable AES */
mbed_official 610:813dcc80987e 219 /**
mbed_official 610:813dcc80987e 220 * @}
mbed_official 610:813dcc80987e 221 */
mbed_official 610:813dcc80987e 222
mbed_official 610:813dcc80987e 223 /** @defgroup CRYP_AES_OperatingMode AES operating mode
mbed_official 610:813dcc80987e 224 * @{
mbed_official 610:813dcc80987e 225 */
mbed_official 610:813dcc80987e 226 #define CRYP_ALGOMODE_ENCRYPT ((uint32_t)0x00000000) /*!< Encryption mode */
mbed_official 610:813dcc80987e 227 #define CRYP_ALGOMODE_KEYDERIVATION AES_CR_MODE_0 /*!< Key derivation mode */
mbed_official 610:813dcc80987e 228 #define CRYP_ALGOMODE_DECRYPT AES_CR_MODE_1 /*!< Decryption */
mbed_official 610:813dcc80987e 229 #define CRYP_ALGOMODE_KEYDERIVATION_DECRYPT AES_CR_MODE /*!< Key derivation and decryption */
mbed_official 610:813dcc80987e 230 #define CRYP_ALGOMODE_TAG_GENERATION ((uint32_t)0x00000000) /*!< GMAC or CMAC authentication tag generation */
mbed_official 610:813dcc80987e 231 /**
mbed_official 610:813dcc80987e 232 * @}
mbed_official 610:813dcc80987e 233 */
mbed_official 610:813dcc80987e 234
mbed_official 610:813dcc80987e 235 /** @defgroup CRYP_AES_ChainingMode AES chaining mode
mbed_official 610:813dcc80987e 236 * @{
mbed_official 610:813dcc80987e 237 */
mbed_official 610:813dcc80987e 238 #define CRYP_CHAINMODE_AES_ECB ((uint32_t)0x00000000) /*!< Electronic codebook chaining algorithm */
mbed_official 610:813dcc80987e 239 #define CRYP_CHAINMODE_AES_CBC AES_CR_CHMOD_0 /*!< Cipher block chaining algorithm */
mbed_official 610:813dcc80987e 240 #define CRYP_CHAINMODE_AES_CTR AES_CR_CHMOD_1 /*!< Counter mode chaining algorithm */
mbed_official 610:813dcc80987e 241 #define CRYP_CHAINMODE_AES_GCM_GMAC (AES_CR_CHMOD_0 | AES_CR_CHMOD_1) /*!< Galois counter mode - Galois message authentication code */
mbed_official 610:813dcc80987e 242 #define CRYP_CHAINMODE_AES_CMAC AES_CR_CHMOD_2 /*!< Cipher message authentication code */
mbed_official 610:813dcc80987e 243 /**
mbed_official 610:813dcc80987e 244 * @}
mbed_official 610:813dcc80987e 245 */
mbed_official 610:813dcc80987e 246
mbed_official 610:813dcc80987e 247 /** @defgroup CRYP_Key_Write AES decryption key write-up flag
mbed_official 610:813dcc80987e 248 * @{
mbed_official 610:813dcc80987e 249 */
mbed_official 610:813dcc80987e 250 #define CRYP_KEY_WRITE_ENABLE ((uint32_t)0x00000000) /*!< Enable decryption key writing */
mbed_official 610:813dcc80987e 251 #define CRYP_KEY_WRITE_DISABLE ((uint32_t)0x00000001) /*!< Disable decryption key writing */
mbed_official 610:813dcc80987e 252 /**
mbed_official 610:813dcc80987e 253 * @}
mbed_official 610:813dcc80987e 254 */
mbed_official 610:813dcc80987e 255
mbed_official 610:813dcc80987e 256 /** @defgroup CRYP_DMAIN DMA Input phase management enable state
mbed_official 610:813dcc80987e 257 * @{
mbed_official 610:813dcc80987e 258 */
mbed_official 610:813dcc80987e 259 #define CRYP_DMAIN_DISABLE ((uint32_t)0x00000000) /*!< Disable DMA Input phase management */
mbed_official 610:813dcc80987e 260 #define CRYP_DMAIN_ENABLE AES_CR_DMAINEN /*!< Enable DMA Input phase management */
mbed_official 610:813dcc80987e 261 /**
mbed_official 610:813dcc80987e 262 * @}
mbed_official 610:813dcc80987e 263 */
mbed_official 610:813dcc80987e 264
mbed_official 610:813dcc80987e 265 /** @defgroup CRYP_DMAOUT DMA Output phase management enable state
mbed_official 610:813dcc80987e 266 * @{
mbed_official 610:813dcc80987e 267 */
mbed_official 610:813dcc80987e 268 #define CRYP_DMAOUT_DISABLE ((uint32_t)0x00000000) /*!< Disable DMA Output phase management */
mbed_official 610:813dcc80987e 269 #define CRYP_DMAOUT_ENABLE AES_CR_DMAOUTEN /*!< Enable DMA Output phase management */
mbed_official 610:813dcc80987e 270 /**
mbed_official 610:813dcc80987e 271 * @}
mbed_official 610:813dcc80987e 272 */
mbed_official 610:813dcc80987e 273
mbed_official 610:813dcc80987e 274
mbed_official 610:813dcc80987e 275 /** @defgroup CRYP_GCM_CMAC_Phase GCM/GMAC and CMAC processing phase selection
mbed_official 610:813dcc80987e 276 * @{
mbed_official 610:813dcc80987e 277 */
mbed_official 610:813dcc80987e 278 #define CRYP_GCM_INIT_PHASE ((uint32_t)0x00000000) /*!< GCM/GMAC init phase */
mbed_official 610:813dcc80987e 279 #define CRYP_GCMCMAC_HEADER_PHASE AES_CR_GCMPH_0 /*!< GCM/GMAC or CMAC header phase */
mbed_official 610:813dcc80987e 280 #define CRYP_GCM_PAYLOAD_PHASE AES_CR_GCMPH_1 /*!< GCM payload phaset */
mbed_official 610:813dcc80987e 281 #define CRYP_GCMCMAC_FINAL_PHASE AES_CR_GCMPH /*!< GCM/GMAC or CMAC final phase */
mbed_official 610:813dcc80987e 282 /**
mbed_official 610:813dcc80987e 283 * @}
mbed_official 610:813dcc80987e 284 */
mbed_official 610:813dcc80987e 285
mbed_official 610:813dcc80987e 286 /** @defgroup CRYP_Flags AES status flags
mbed_official 610:813dcc80987e 287 * @{
mbed_official 610:813dcc80987e 288 */
mbed_official 610:813dcc80987e 289
mbed_official 610:813dcc80987e 290 #define CRYP_FLAG_BUSY AES_SR_BUSY /*!< GCM process suspension forbidden */
mbed_official 610:813dcc80987e 291 #define CRYP_FLAG_WRERR AES_SR_WRERR /*!< Write Error */
mbed_official 610:813dcc80987e 292 #define CRYP_FLAG_RDERR AES_SR_RDERR /*!< Read error */
mbed_official 610:813dcc80987e 293 #define CRYP_FLAG_CCF AES_SR_CCF /*!< Computation completed */
mbed_official 610:813dcc80987e 294 /**
mbed_official 610:813dcc80987e 295 * @}
mbed_official 610:813dcc80987e 296 */
mbed_official 610:813dcc80987e 297
mbed_official 610:813dcc80987e 298 /** @defgroup CRYP_Clear_Flags AES clearing flags
mbed_official 610:813dcc80987e 299 * @{
mbed_official 610:813dcc80987e 300 */
mbed_official 610:813dcc80987e 301
mbed_official 610:813dcc80987e 302 #define CRYP_CCF_CLEAR AES_CR_CCFC /*!< Computation Complete Flag Clear */
mbed_official 610:813dcc80987e 303 #define CRYP_ERR_CLEAR AES_CR_ERRC /*!< Error Flag Clear */
mbed_official 610:813dcc80987e 304 /**
mbed_official 610:813dcc80987e 305 * @}
mbed_official 610:813dcc80987e 306 */
mbed_official 610:813dcc80987e 307
mbed_official 610:813dcc80987e 308 /** @defgroup AES_Interrupts_Enable AES Interrupts Enable bits
mbed_official 610:813dcc80987e 309 * @{
mbed_official 610:813dcc80987e 310 */
mbed_official 610:813dcc80987e 311 #define CRYP_IT_CCFIE AES_CR_CCFIE /*!< Computation Complete interrupt enable */
mbed_official 610:813dcc80987e 312 #define CRYP_IT_ERRIE AES_CR_ERRIE /*!< Error interrupt enable */
mbed_official 610:813dcc80987e 313 /**
mbed_official 610:813dcc80987e 314 * @}
mbed_official 610:813dcc80987e 315 */
mbed_official 610:813dcc80987e 316
mbed_official 610:813dcc80987e 317 /** @defgroup CRYP_Interrupts_Flags AES Interrupts flags
mbed_official 610:813dcc80987e 318 * @{
mbed_official 610:813dcc80987e 319 */
mbed_official 610:813dcc80987e 320 #define CRYP_IT_WRERR AES_SR_WRERR /*!< Write Error */
mbed_official 610:813dcc80987e 321 #define CRYP_IT_RDERR AES_SR_RDERR /*!< Read Error */
mbed_official 610:813dcc80987e 322 #define CRYP_IT_CCF AES_SR_CCF /*!< Computation completed */
mbed_official 610:813dcc80987e 323 /**
mbed_official 610:813dcc80987e 324 * @}
mbed_official 610:813dcc80987e 325 */
mbed_official 610:813dcc80987e 326
mbed_official 610:813dcc80987e 327 /**
mbed_official 610:813dcc80987e 328 * @}
mbed_official 610:813dcc80987e 329 */
mbed_official 610:813dcc80987e 330
mbed_official 610:813dcc80987e 331 /* Exported macros -----------------------------------------------------------*/
mbed_official 610:813dcc80987e 332 /** @defgroup CRYP_Exported_Macros CRYP Exported Macros
mbed_official 610:813dcc80987e 333 * @{
mbed_official 610:813dcc80987e 334 */
mbed_official 610:813dcc80987e 335
mbed_official 610:813dcc80987e 336 /** @brief Reset CRYP handle state.
mbed_official 610:813dcc80987e 337 * @param __HANDLE__: specifies the CRYP handle.
mbed_official 610:813dcc80987e 338 * @retval None
mbed_official 610:813dcc80987e 339 */
mbed_official 610:813dcc80987e 340 #define __HAL_CRYP_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_CRYP_STATE_RESET)
mbed_official 610:813dcc80987e 341
mbed_official 610:813dcc80987e 342 /**
mbed_official 610:813dcc80987e 343 * @brief Enable the CRYP AES peripheral.
mbed_official 610:813dcc80987e 344 * @retval None
mbed_official 610:813dcc80987e 345 */
mbed_official 610:813dcc80987e 346 #define __HAL_CRYP_ENABLE() (AES->CR |= AES_CR_EN)
mbed_official 610:813dcc80987e 347
mbed_official 610:813dcc80987e 348 /**
mbed_official 610:813dcc80987e 349 * @brief Disable the CRYP AES peripheral.
mbed_official 610:813dcc80987e 350 * @retval None
mbed_official 610:813dcc80987e 351 */
mbed_official 610:813dcc80987e 352 #define __HAL_CRYP_DISABLE() (AES->CR &= ~AES_CR_EN)
mbed_official 610:813dcc80987e 353
mbed_official 610:813dcc80987e 354 /**
mbed_official 610:813dcc80987e 355 * @brief Set the algorithm operating mode.
mbed_official 610:813dcc80987e 356 * @param __OPERATING_MODE__: specifies the operating mode
mbed_official 610:813dcc80987e 357 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 358 * @arg CRYP_ALGOMODE_ENCRYPT: encryption
mbed_official 610:813dcc80987e 359 * @arg CRYP_ALGOMODE_KEYDERIVATION: key derivation
mbed_official 610:813dcc80987e 360 * @arg CRYP_ALGOMODE_DECRYPT: decryption
mbed_official 610:813dcc80987e 361 * @arg CRYP_ALGOMODE_KEYDERIVATION_DECRYPT: key derivation and decryption
mbed_official 610:813dcc80987e 362 * @retval None
mbed_official 610:813dcc80987e 363 */
mbed_official 610:813dcc80987e 364 #define __HAL_CRYP_SET_OPERATINGMODE(__OPERATING_MODE__) MODIFY_REG(AES->CR, AES_CR_MODE, (__OPERATING_MODE__))
mbed_official 610:813dcc80987e 365
mbed_official 610:813dcc80987e 366
mbed_official 610:813dcc80987e 367 /**
mbed_official 610:813dcc80987e 368 * @brief Set the algorithm chaining mode.
mbed_official 610:813dcc80987e 369 * @param __CHAINING_MODE__: specifies the chaining mode
mbed_official 610:813dcc80987e 370 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 371 * @arg CRYP_CHAINMODE_AES_ECB: Electronic CodeBook
mbed_official 610:813dcc80987e 372 * @arg CRYP_CHAINMODE_AES_CBC: Cipher Block Chaining
mbed_official 610:813dcc80987e 373 * @arg CRYP_CHAINMODE_AES_CTR: CounTeR mode
mbed_official 610:813dcc80987e 374 * @arg CRYP_CHAINMODE_AES_GCM_GMAC: Galois Counter Mode or Galois Message Authentication Code
mbed_official 610:813dcc80987e 375 * @arg CRYP_CHAINMODE_AES_CMAC: Cipher Message Authentication Code
mbed_official 610:813dcc80987e 376 * @retval None
mbed_official 610:813dcc80987e 377 */
mbed_official 610:813dcc80987e 378 #define __HAL_CRYP_SET_CHAININGMODE(__CHAINING_MODE__) MODIFY_REG(AES->CR, AES_CR_CHMOD, (__CHAINING_MODE__))
mbed_official 610:813dcc80987e 379
mbed_official 610:813dcc80987e 380
mbed_official 610:813dcc80987e 381
mbed_official 610:813dcc80987e 382 /** @brief Check whether the specified CRYP status flag is set or not.
mbed_official 610:813dcc80987e 383 * @param __FLAG__: specifies the flag to check.
mbed_official 610:813dcc80987e 384 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 385 * @arg CRYP_FLAG_BUSY: GCM process suspension forbidden
mbed_official 610:813dcc80987e 386 * @arg CRYP_IT_WRERR: Write Error
mbed_official 610:813dcc80987e 387 * @arg CRYP_IT_RDERR: Read Error
mbed_official 610:813dcc80987e 388 * @arg CRYP_IT_CCF: Computation Complete
mbed_official 610:813dcc80987e 389 * @retval The state of __FLAG__ (TRUE or FALSE).
mbed_official 610:813dcc80987e 390 */
mbed_official 610:813dcc80987e 391 #define __HAL_CRYP_GET_FLAG(__FLAG__) ((AES->SR & (__FLAG__)) == (__FLAG__))
mbed_official 610:813dcc80987e 392
mbed_official 610:813dcc80987e 393
mbed_official 610:813dcc80987e 394 /** @brief Clear the CRYP pending status flag.
mbed_official 610:813dcc80987e 395 * @param __FLAG__: specifies the flag to clear.
mbed_official 610:813dcc80987e 396 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 397 * @arg CRYP_ERR_CLEAR: Read (RDERR) or Write Error (WRERR) Flag Clear
mbed_official 610:813dcc80987e 398 * @arg CRYP_CCF_CLEAR: Computation Complete Flag (CCF) Clear
mbed_official 610:813dcc80987e 399 * @retval None
mbed_official 610:813dcc80987e 400 */
mbed_official 610:813dcc80987e 401 #define __HAL_CRYP_CLEAR_FLAG(__FLAG__) SET_BIT(AES->CR, (__FLAG__))
mbed_official 610:813dcc80987e 402
mbed_official 610:813dcc80987e 403
mbed_official 610:813dcc80987e 404
mbed_official 610:813dcc80987e 405 /** @brief Check whether the specified CRYP interrupt source is enabled or not.
mbed_official 610:813dcc80987e 406 * @param __INTERRUPT__: CRYP interrupt source to check
mbed_official 610:813dcc80987e 407 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 408 * @arg CRYP_IT_ERRIE: Error interrupt (used for RDERR and WRERR)
mbed_official 610:813dcc80987e 409 * @arg CRYP_IT_CCFIE: Computation Complete interrupt
mbed_official 610:813dcc80987e 410 * @retval State of interruption (TRUE or FALSE).
mbed_official 610:813dcc80987e 411 */
mbed_official 610:813dcc80987e 412 #define __HAL_CRYP_GET_IT_SOURCE(__INTERRUPT__) ((AES->CR & (__INTERRUPT__)) == (__INTERRUPT__))
mbed_official 610:813dcc80987e 413
mbed_official 610:813dcc80987e 414
mbed_official 610:813dcc80987e 415 /** @brief Check whether the specified CRYP interrupt is set or not.
mbed_official 610:813dcc80987e 416 * @param __INTERRUPT__: specifies the interrupt to check.
mbed_official 610:813dcc80987e 417 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 418 * @arg CRYP_IT_WRERR: Write Error
mbed_official 610:813dcc80987e 419 * @arg CRYP_IT_RDERR: Read Error
mbed_official 610:813dcc80987e 420 * @arg CRYP_IT_CCF: Computation Complete
mbed_official 610:813dcc80987e 421 * @retval The state of __INTERRUPT__ (TRUE or FALSE).
mbed_official 610:813dcc80987e 422 */
mbed_official 610:813dcc80987e 423 #define __HAL_CRYP_GET_IT(__INTERRUPT__) ((AES->SR & (__INTERRUPT__)) == (__INTERRUPT__))
mbed_official 610:813dcc80987e 424
mbed_official 610:813dcc80987e 425
mbed_official 610:813dcc80987e 426
mbed_official 610:813dcc80987e 427 /** @brief Clear the CRYP pending interrupt.
mbed_official 610:813dcc80987e 428 * @param __INTERRUPT__: specifies the IT to clear.
mbed_official 610:813dcc80987e 429 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 430 * @arg CRYP_ERR_CLEAR: Read (RDERR) or Write Error (WRERR) Flag Clear
mbed_official 610:813dcc80987e 431 * @arg CRYP_CCF_CLEAR: Computation Complete Flag (CCF) Clear
mbed_official 610:813dcc80987e 432 * @retval None
mbed_official 610:813dcc80987e 433 */
mbed_official 610:813dcc80987e 434 #define __HAL_CRYP_CLEAR_IT(__INTERRUPT__) SET_BIT(AES->CR, (__INTERRUPT__))
mbed_official 610:813dcc80987e 435
mbed_official 610:813dcc80987e 436
mbed_official 610:813dcc80987e 437 /**
mbed_official 610:813dcc80987e 438 * @brief Enable the CRYP interrupt.
mbed_official 610:813dcc80987e 439 * @param __INTERRUPT__: CRYP Interrupt.
mbed_official 610:813dcc80987e 440 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 441 * @arg CRYP_IT_ERRIE: Error interrupt (used for RDERR and WRERR)
mbed_official 610:813dcc80987e 442 * @arg CRYP_IT_CCFIE: Computation Complete interrupt
mbed_official 610:813dcc80987e 443 * @retval None
mbed_official 610:813dcc80987e 444 */
mbed_official 610:813dcc80987e 445 #define __HAL_CRYP_ENABLE_IT(__INTERRUPT__) ((AES->CR) |= (__INTERRUPT__))
mbed_official 610:813dcc80987e 446
mbed_official 610:813dcc80987e 447
mbed_official 610:813dcc80987e 448 /**
mbed_official 610:813dcc80987e 449 * @brief Disable the CRYP interrupt.
mbed_official 610:813dcc80987e 450 * @param __INTERRUPT__: CRYP Interrupt.
mbed_official 610:813dcc80987e 451 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 452 * @arg CRYP_IT_ERRIE: Error interrupt (used for RDERR and WRERR)
mbed_official 610:813dcc80987e 453 * @arg CRYP_IT_CCFIE: Computation Complete interrupt
mbed_official 610:813dcc80987e 454 * @retval None
mbed_official 610:813dcc80987e 455 */
mbed_official 610:813dcc80987e 456 #define __HAL_CRYP_DISABLE_IT(__INTERRUPT__) ((AES->CR) &= ~(__INTERRUPT__))
mbed_official 610:813dcc80987e 457
mbed_official 610:813dcc80987e 458 /**
mbed_official 610:813dcc80987e 459 * @}
mbed_official 610:813dcc80987e 460 */
mbed_official 610:813dcc80987e 461
mbed_official 610:813dcc80987e 462 /* Private macros --------------------------------------------------------*/
mbed_official 610:813dcc80987e 463 /** @addtogroup CRYP_Private_Macros CRYP Private Macros
mbed_official 610:813dcc80987e 464 * @{
mbed_official 610:813dcc80987e 465 */
mbed_official 610:813dcc80987e 466
mbed_official 610:813dcc80987e 467 /**
mbed_official 610:813dcc80987e 468 * @brief Verify the key size length.
mbed_official 610:813dcc80987e 469 * @param __KEYSIZE__: Ciphering/deciphering algorithm key size.
mbed_official 610:813dcc80987e 470 * @retval SET (__KEYSIZE__ is a valid value) or RESET (__KEYSIZE__ is invalid)
mbed_official 610:813dcc80987e 471 */
mbed_official 610:813dcc80987e 472 #define IS_CRYP_KEYSIZE(__KEYSIZE__) (((__KEYSIZE__) == CRYP_KEYSIZE_128B) || \
mbed_official 610:813dcc80987e 473 ((__KEYSIZE__) == CRYP_KEYSIZE_256B))
mbed_official 610:813dcc80987e 474
mbed_official 610:813dcc80987e 475 /**
mbed_official 610:813dcc80987e 476 * @brief Verify the input data type.
mbed_official 610:813dcc80987e 477 * @param __DATATYPE__: Ciphering/deciphering algorithm input data type.
mbed_official 610:813dcc80987e 478 * @retval SET (__DATATYPE__ is valid) or RESET (__DATATYPE__ is invalid)
mbed_official 610:813dcc80987e 479 */
mbed_official 610:813dcc80987e 480 #define IS_CRYP_DATATYPE(__DATATYPE__) (((__DATATYPE__) == CRYP_DATATYPE_32B) || \
mbed_official 610:813dcc80987e 481 ((__DATATYPE__) == CRYP_DATATYPE_16B) || \
mbed_official 610:813dcc80987e 482 ((__DATATYPE__) == CRYP_DATATYPE_8B) || \
mbed_official 610:813dcc80987e 483 ((__DATATYPE__) == CRYP_DATATYPE_1B))
mbed_official 610:813dcc80987e 484
mbed_official 610:813dcc80987e 485 /**
mbed_official 610:813dcc80987e 486 * @brief Verify the CRYP AES IP running mode.
mbed_official 610:813dcc80987e 487 * @param __MODE__: CRYP AES IP running mode.
mbed_official 610:813dcc80987e 488 * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
mbed_official 610:813dcc80987e 489 */
mbed_official 610:813dcc80987e 490 #define IS_CRYP_AES(__MODE__) (((__MODE__) == CRYP_AES_DISABLE) || \
mbed_official 610:813dcc80987e 491 ((__MODE__) == CRYP_AES_ENABLE))
mbed_official 610:813dcc80987e 492
mbed_official 610:813dcc80987e 493 /**
mbed_official 610:813dcc80987e 494 * @brief Verify the selected CRYP algorithm.
mbed_official 610:813dcc80987e 495 * @param __ALGOMODE__: Selected CRYP algorithm (ciphering, deciphering, key derivation or a combination of the latter).
mbed_official 610:813dcc80987e 496 * @retval SET (__ALGOMODE__ is valid) or RESET (__ALGOMODE__ is invalid)
mbed_official 610:813dcc80987e 497 */
mbed_official 610:813dcc80987e 498 #define IS_CRYP_ALGOMODE(__ALGOMODE__) (((__ALGOMODE__) == CRYP_ALGOMODE_ENCRYPT) || \
mbed_official 610:813dcc80987e 499 ((__ALGOMODE__) == CRYP_ALGOMODE_KEYDERIVATION) || \
mbed_official 610:813dcc80987e 500 ((__ALGOMODE__) == CRYP_ALGOMODE_DECRYPT) || \
mbed_official 610:813dcc80987e 501 ((__ALGOMODE__) == CRYP_ALGOMODE_TAG_GENERATION) || \
mbed_official 610:813dcc80987e 502 ((__ALGOMODE__) == CRYP_ALGOMODE_KEYDERIVATION_DECRYPT))
mbed_official 610:813dcc80987e 503
mbed_official 610:813dcc80987e 504 /**
mbed_official 610:813dcc80987e 505 * @brief Verify the selected CRYP chaining algorithm.
mbed_official 610:813dcc80987e 506 * @param __CHAINMODE__: Selected CRYP chaining algorithm.
mbed_official 610:813dcc80987e 507 * @retval SET (__CHAINMODE__ is valid) or RESET (__CHAINMODE__ is invalid)
mbed_official 610:813dcc80987e 508 */
mbed_official 610:813dcc80987e 509 #define IS_CRYP_CHAINMODE(__CHAINMODE__) (((__CHAINMODE__) == CRYP_CHAINMODE_AES_ECB) || \
mbed_official 610:813dcc80987e 510 ((__CHAINMODE__) == CRYP_CHAINMODE_AES_CBC) || \
mbed_official 610:813dcc80987e 511 ((__CHAINMODE__) == CRYP_CHAINMODE_AES_CTR) || \
mbed_official 610:813dcc80987e 512 ((__CHAINMODE__) == CRYP_CHAINMODE_AES_GCM_GMAC) || \
mbed_official 610:813dcc80987e 513 ((__CHAINMODE__) == CRYP_CHAINMODE_AES_CMAC))
mbed_official 610:813dcc80987e 514
mbed_official 610:813dcc80987e 515 /**
mbed_official 610:813dcc80987e 516 * @brief Verify the deciphering key write option.
mbed_official 610:813dcc80987e 517 * @param __WRITE__: deciphering key write option.
mbed_official 610:813dcc80987e 518 * @retval SET (__WRITE__ is valid) or RESET (__WRITE__ is invalid)
mbed_official 610:813dcc80987e 519 */
mbed_official 610:813dcc80987e 520 #define IS_CRYP_WRITE(__WRITE__) (((__WRITE__) == CRYP_KEY_WRITE_ENABLE) || \
mbed_official 610:813dcc80987e 521 ((__WRITE__) == CRYP_KEY_WRITE_DISABLE))
mbed_official 610:813dcc80987e 522
mbed_official 610:813dcc80987e 523 /**
mbed_official 610:813dcc80987e 524 * @brief Verify the CRYP input data DMA mode.
mbed_official 610:813dcc80987e 525 * @param __MODE__: CRYP input data DMA mode.
mbed_official 610:813dcc80987e 526 * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
mbed_official 610:813dcc80987e 527 */
mbed_official 610:813dcc80987e 528 #define IS_CRYP_DMAIN(__MODE__) (((__MODE__) == CRYP_DMAIN_DISABLE) || \
mbed_official 610:813dcc80987e 529 ((__MODE__) == CRYP_DMAIN_ENABLE))
mbed_official 610:813dcc80987e 530
mbed_official 610:813dcc80987e 531 /**
mbed_official 610:813dcc80987e 532 * @brief Verify the CRYP output data DMA mode.
mbed_official 610:813dcc80987e 533 * @param __MODE__: CRYP output data DMA mode.
mbed_official 610:813dcc80987e 534 * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
mbed_official 610:813dcc80987e 535 */
mbed_official 610:813dcc80987e 536 #define IS_CRYP_DMAOUT(__MODE__) (((__MODE__) == CRYP_DMAOUT_DISABLE) || \
mbed_official 610:813dcc80987e 537 ((__MODE__) == CRYP_DMAOUT_ENABLE))
mbed_official 610:813dcc80987e 538
mbed_official 610:813dcc80987e 539 /**
mbed_official 610:813dcc80987e 540 * @brief Verify the CRYP AES ciphering/deciphering/authentication algorithm phase.
mbed_official 610:813dcc80987e 541 * @param __PHASE__: CRYP AES ciphering/deciphering/authentication algorithm phase.
mbed_official 610:813dcc80987e 542 * @retval SET (__PHASE__ is valid) or RESET (__PHASE__ is invalid)
mbed_official 610:813dcc80987e 543 */
mbed_official 610:813dcc80987e 544 #define IS_CRYP_GCMCMAC_PHASE(__PHASE__) (((__PHASE__) == CRYP_GCM_INIT_PHASE) || \
mbed_official 610:813dcc80987e 545 ((__PHASE__) == CRYP_GCMCMAC_HEADER_PHASE) || \
mbed_official 610:813dcc80987e 546 ((__PHASE__) == CRYP_GCM_PAYLOAD_PHASE) || \
mbed_official 610:813dcc80987e 547 ((__PHASE__) == CRYP_GCMCMAC_FINAL_PHASE))
mbed_official 610:813dcc80987e 548
mbed_official 610:813dcc80987e 549 /**
mbed_official 610:813dcc80987e 550 * @}
mbed_official 610:813dcc80987e 551 */
mbed_official 610:813dcc80987e 552
mbed_official 610:813dcc80987e 553 /* Include CRYP HAL Extended module */
mbed_official 610:813dcc80987e 554 #include "stm32l4xx_hal_cryp_ex.h"
mbed_official 610:813dcc80987e 555
mbed_official 610:813dcc80987e 556 /* Exported functions --------------------------------------------------------*/
mbed_official 610:813dcc80987e 557 /** @addtogroup CRYP_Exported_Functions CRYP Exported Functions
mbed_official 610:813dcc80987e 558 * @{
mbed_official 610:813dcc80987e 559 */
mbed_official 610:813dcc80987e 560
mbed_official 610:813dcc80987e 561 /** @addtogroup CRYP_Group1 Initialization and deinitialization functions
mbed_official 610:813dcc80987e 562 * @{
mbed_official 610:813dcc80987e 563 */
mbed_official 610:813dcc80987e 564
mbed_official 610:813dcc80987e 565 /* Initialization/de-initialization functions ********************************/
mbed_official 610:813dcc80987e 566 HAL_StatusTypeDef HAL_CRYP_Init(CRYP_HandleTypeDef *hcryp);
mbed_official 610:813dcc80987e 567 HAL_StatusTypeDef HAL_CRYP_DeInit(CRYP_HandleTypeDef *hcryp);
mbed_official 610:813dcc80987e 568
mbed_official 610:813dcc80987e 569 /* MSP initialization/de-initialization functions ****************************/
mbed_official 610:813dcc80987e 570 void HAL_CRYP_MspInit(CRYP_HandleTypeDef *hcryp);
mbed_official 610:813dcc80987e 571 void HAL_CRYP_MspDeInit(CRYP_HandleTypeDef *hcryp);
mbed_official 610:813dcc80987e 572
mbed_official 610:813dcc80987e 573 /**
mbed_official 610:813dcc80987e 574 * @}
mbed_official 610:813dcc80987e 575 */
mbed_official 610:813dcc80987e 576
mbed_official 610:813dcc80987e 577 /** @addtogroup CRYP_Group2 AES processing functions
mbed_official 610:813dcc80987e 578 * @{
mbed_official 610:813dcc80987e 579 */
mbed_official 610:813dcc80987e 580
mbed_official 610:813dcc80987e 581 /* AES encryption/decryption processing functions ****************************/
mbed_official 610:813dcc80987e 582
mbed_official 610:813dcc80987e 583 /* AES encryption/decryption using polling ***********************************/
mbed_official 610:813dcc80987e 584 HAL_StatusTypeDef HAL_CRYP_AESECB_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
mbed_official 610:813dcc80987e 585 HAL_StatusTypeDef HAL_CRYP_AESECB_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout);
mbed_official 610:813dcc80987e 586 HAL_StatusTypeDef HAL_CRYP_AESCBC_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
mbed_official 610:813dcc80987e 587 HAL_StatusTypeDef HAL_CRYP_AESCBC_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout);
mbed_official 610:813dcc80987e 588 HAL_StatusTypeDef HAL_CRYP_AESCTR_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
mbed_official 610:813dcc80987e 589 HAL_StatusTypeDef HAL_CRYP_AESCTR_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout);
mbed_official 610:813dcc80987e 590
mbed_official 610:813dcc80987e 591 /* AES encryption/decryption using interrupt *********************************/
mbed_official 610:813dcc80987e 592 HAL_StatusTypeDef HAL_CRYP_AESECB_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
mbed_official 610:813dcc80987e 593 HAL_StatusTypeDef HAL_CRYP_AESCBC_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
mbed_official 610:813dcc80987e 594 HAL_StatusTypeDef HAL_CRYP_AESCTR_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
mbed_official 610:813dcc80987e 595 HAL_StatusTypeDef HAL_CRYP_AESECB_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
mbed_official 610:813dcc80987e 596 HAL_StatusTypeDef HAL_CRYP_AESCTR_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
mbed_official 610:813dcc80987e 597 HAL_StatusTypeDef HAL_CRYP_AESCBC_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
mbed_official 610:813dcc80987e 598
mbed_official 610:813dcc80987e 599 /* AES encryption/decryption using DMA ***************************************/
mbed_official 610:813dcc80987e 600 HAL_StatusTypeDef HAL_CRYP_AESECB_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
mbed_official 610:813dcc80987e 601 HAL_StatusTypeDef HAL_CRYP_AESECB_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
mbed_official 610:813dcc80987e 602 HAL_StatusTypeDef HAL_CRYP_AESCBC_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
mbed_official 610:813dcc80987e 603 HAL_StatusTypeDef HAL_CRYP_AESCBC_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
mbed_official 610:813dcc80987e 604 HAL_StatusTypeDef HAL_CRYP_AESCTR_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
mbed_official 610:813dcc80987e 605 HAL_StatusTypeDef HAL_CRYP_AESCTR_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
mbed_official 610:813dcc80987e 606
mbed_official 610:813dcc80987e 607 /**
mbed_official 610:813dcc80987e 608 * @}
mbed_official 610:813dcc80987e 609 */
mbed_official 610:813dcc80987e 610
mbed_official 610:813dcc80987e 611 /** @addtogroup CRYP_Group3 Callback functions
mbed_official 610:813dcc80987e 612 * @{
mbed_official 610:813dcc80987e 613 */
mbed_official 610:813dcc80987e 614 /* CallBack functions ********************************************************/
mbed_official 610:813dcc80987e 615 void HAL_CRYP_InCpltCallback(CRYP_HandleTypeDef *hcryp);
mbed_official 610:813dcc80987e 616 void HAL_CRYP_OutCpltCallback(CRYP_HandleTypeDef *hcryp);
mbed_official 610:813dcc80987e 617 void HAL_CRYP_ErrorCallback(CRYP_HandleTypeDef *hcryp);
mbed_official 610:813dcc80987e 618
mbed_official 610:813dcc80987e 619 /**
mbed_official 610:813dcc80987e 620 * @}
mbed_official 610:813dcc80987e 621 */
mbed_official 610:813dcc80987e 622
mbed_official 610:813dcc80987e 623 /** @addtogroup CRYP_Group4 CRYP IRQ handler
mbed_official 610:813dcc80987e 624 * @{
mbed_official 610:813dcc80987e 625 */
mbed_official 610:813dcc80987e 626
mbed_official 610:813dcc80987e 627 /* AES interrupt handling function *******************************************/
mbed_official 610:813dcc80987e 628 void HAL_CRYP_IRQHandler(CRYP_HandleTypeDef *hcryp);
mbed_official 610:813dcc80987e 629
mbed_official 610:813dcc80987e 630 /**
mbed_official 610:813dcc80987e 631 * @}
mbed_official 610:813dcc80987e 632 */
mbed_official 610:813dcc80987e 633
mbed_official 610:813dcc80987e 634 /** @addtogroup CRYP_Group5 Peripheral State functions
mbed_official 610:813dcc80987e 635 * @{
mbed_official 610:813dcc80987e 636 */
mbed_official 610:813dcc80987e 637
mbed_official 610:813dcc80987e 638 /* Peripheral State functions ************************************************/
mbed_official 610:813dcc80987e 639 HAL_CRYP_STATETypeDef HAL_CRYP_GetState(CRYP_HandleTypeDef *hcryp);
mbed_official 610:813dcc80987e 640 uint32_t HAL_CRYP_GetError(CRYP_HandleTypeDef *hcryp);
mbed_official 610:813dcc80987e 641
mbed_official 610:813dcc80987e 642 /**
mbed_official 610:813dcc80987e 643 * @}
mbed_official 610:813dcc80987e 644 */
mbed_official 610:813dcc80987e 645
mbed_official 610:813dcc80987e 646 /**
mbed_official 610:813dcc80987e 647 * @}
mbed_official 610:813dcc80987e 648 */
mbed_official 610:813dcc80987e 649
mbed_official 610:813dcc80987e 650 /**
mbed_official 610:813dcc80987e 651 * @}
mbed_official 610:813dcc80987e 652 */
mbed_official 610:813dcc80987e 653
mbed_official 610:813dcc80987e 654 /**
mbed_official 610:813dcc80987e 655 * @}
mbed_official 610:813dcc80987e 656 */
mbed_official 610:813dcc80987e 657
mbed_official 610:813dcc80987e 658 #endif /* defined(STM32L485xx) || defined(STM32L486xx) */
mbed_official 610:813dcc80987e 659
mbed_official 610:813dcc80987e 660 #ifdef __cplusplus
mbed_official 610:813dcc80987e 661 }
mbed_official 610:813dcc80987e 662 #endif
mbed_official 610:813dcc80987e 663
mbed_official 610:813dcc80987e 664 #endif /* __STM32L4xx_HAL_CRYP_H */
mbed_official 610:813dcc80987e 665
mbed_official 610:813dcc80987e 666 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/