mbed library sources

Dependents:   Marvino mbot

Fork of mbed-src by mbed official

Committer:
jaerts
Date:
Tue Dec 22 13:22:16 2015 +0000
Revision:
637:ed69428d4850
Parent:
610:813dcc80987e
Add very shady LPC1768 CAN Filter implementation

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****/