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

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /**
AnnaBridge 171:3a7713b1edbc 2 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 3 * @file stm32l1xx_hal_cryp.h
AnnaBridge 171:3a7713b1edbc 4 * @author MCD Application Team
AnnaBridge 171:3a7713b1edbc 5 * @brief Header file of CRYP HAL module.
AnnaBridge 171:3a7713b1edbc 6 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 7 * @attention
AnnaBridge 171:3a7713b1edbc 8 *
AnnaBridge 171:3a7713b1edbc 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 171:3a7713b1edbc 10 *
AnnaBridge 171:3a7713b1edbc 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 171:3a7713b1edbc 12 * are permitted provided that the following conditions are met:
AnnaBridge 171:3a7713b1edbc 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 171:3a7713b1edbc 14 * this list of conditions and the following disclaimer.
AnnaBridge 171:3a7713b1edbc 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 171:3a7713b1edbc 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 171:3a7713b1edbc 17 * and/or other materials provided with the distribution.
AnnaBridge 171:3a7713b1edbc 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 171:3a7713b1edbc 19 * may be used to endorse or promote products derived from this software
AnnaBridge 171:3a7713b1edbc 20 * without specific prior written permission.
AnnaBridge 171:3a7713b1edbc 21 *
AnnaBridge 171:3a7713b1edbc 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 171:3a7713b1edbc 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 171:3a7713b1edbc 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 171:3a7713b1edbc 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 171:3a7713b1edbc 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 171:3a7713b1edbc 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 171:3a7713b1edbc 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 171:3a7713b1edbc 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 171:3a7713b1edbc 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 171:3a7713b1edbc 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 171:3a7713b1edbc 32 *
AnnaBridge 171:3a7713b1edbc 33 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 34 */
AnnaBridge 171:3a7713b1edbc 35
AnnaBridge 171:3a7713b1edbc 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 171:3a7713b1edbc 37 #ifndef __STM32L1xx_HAL_CRYP_H
AnnaBridge 171:3a7713b1edbc 38 #define __STM32L1xx_HAL_CRYP_H
AnnaBridge 171:3a7713b1edbc 39
AnnaBridge 171:3a7713b1edbc 40 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 41 extern "C" {
AnnaBridge 171:3a7713b1edbc 42 #endif
AnnaBridge 171:3a7713b1edbc 43
AnnaBridge 171:3a7713b1edbc 44 #if defined(STM32L162xC) || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L162xE) || defined(STM32L162xDX)
AnnaBridge 171:3a7713b1edbc 45
AnnaBridge 171:3a7713b1edbc 46 /* Includes ------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 47 #include "stm32l1xx_hal_def.h"
AnnaBridge 171:3a7713b1edbc 48
AnnaBridge 171:3a7713b1edbc 49 /** @addtogroup STM32L1xx_HAL_Driver
AnnaBridge 171:3a7713b1edbc 50 * @{
AnnaBridge 171:3a7713b1edbc 51 */
AnnaBridge 171:3a7713b1edbc 52
AnnaBridge 171:3a7713b1edbc 53 /** @addtogroup CRYP
AnnaBridge 171:3a7713b1edbc 54 * @{
AnnaBridge 171:3a7713b1edbc 55 */
AnnaBridge 171:3a7713b1edbc 56
AnnaBridge 171:3a7713b1edbc 57 /* Exported types ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 58
AnnaBridge 171:3a7713b1edbc 59 /** @defgroup CRYP_Exported_Types CRYP Exported Types
AnnaBridge 171:3a7713b1edbc 60 * @{
AnnaBridge 171:3a7713b1edbc 61 */
AnnaBridge 171:3a7713b1edbc 62
AnnaBridge 171:3a7713b1edbc 63 /**
AnnaBridge 171:3a7713b1edbc 64 * @brief CRYP Configuration Structure definition
AnnaBridge 171:3a7713b1edbc 65 */
AnnaBridge 171:3a7713b1edbc 66 typedef struct
AnnaBridge 171:3a7713b1edbc 67 {
AnnaBridge 171:3a7713b1edbc 68 uint32_t DataType; /*!< 32-bit data, 16-bit data, 8-bit data or 1-bit string.
AnnaBridge 171:3a7713b1edbc 69 This parameter can be a value of @ref CRYP_Data_Type */
AnnaBridge 171:3a7713b1edbc 70
AnnaBridge 171:3a7713b1edbc 71 uint8_t* pKey; /*!< The key used for encryption/decryption */
AnnaBridge 171:3a7713b1edbc 72
AnnaBridge 171:3a7713b1edbc 73 uint8_t* pInitVect; /*!< The initialization vector used also as initialization
AnnaBridge 171:3a7713b1edbc 74 counter in CTR mode */
AnnaBridge 171:3a7713b1edbc 75
AnnaBridge 171:3a7713b1edbc 76 }CRYP_InitTypeDef;
AnnaBridge 171:3a7713b1edbc 77
AnnaBridge 171:3a7713b1edbc 78 /**
AnnaBridge 171:3a7713b1edbc 79 * @brief HAL CRYP State structures definition
AnnaBridge 171:3a7713b1edbc 80 */
AnnaBridge 171:3a7713b1edbc 81 typedef enum
AnnaBridge 171:3a7713b1edbc 82 {
AnnaBridge 171:3a7713b1edbc 83 HAL_CRYP_STATE_RESET = 0x00, /*!< CRYP not yet initialized or disabled */
AnnaBridge 171:3a7713b1edbc 84 HAL_CRYP_STATE_READY = 0x01, /*!< CRYP initialized and ready for use */
AnnaBridge 171:3a7713b1edbc 85 HAL_CRYP_STATE_BUSY = 0x02, /*!< CRYP internal processing is ongoing */
AnnaBridge 171:3a7713b1edbc 86 HAL_CRYP_STATE_TIMEOUT = 0x03, /*!< CRYP timeout state */
AnnaBridge 171:3a7713b1edbc 87 HAL_CRYP_STATE_ERROR = 0x04 /*!< CRYP error state */
AnnaBridge 171:3a7713b1edbc 88
AnnaBridge 171:3a7713b1edbc 89 }HAL_CRYP_STATETypeDef;
AnnaBridge 171:3a7713b1edbc 90
AnnaBridge 171:3a7713b1edbc 91 /**
AnnaBridge 171:3a7713b1edbc 92 * @brief HAL CRYP phase structures definition
AnnaBridge 171:3a7713b1edbc 93 */
AnnaBridge 171:3a7713b1edbc 94 typedef enum
AnnaBridge 171:3a7713b1edbc 95 {
AnnaBridge 171:3a7713b1edbc 96 HAL_CRYP_PHASE_READY = 0x01, /*!< CRYP peripheral is ready for initialization. */
AnnaBridge 171:3a7713b1edbc 97 HAL_CRYP_PHASE_PROCESS = 0x02, /*!< CRYP peripheral is in processing phase */
AnnaBridge 171:3a7713b1edbc 98 }HAL_PhaseTypeDef;
AnnaBridge 171:3a7713b1edbc 99
AnnaBridge 171:3a7713b1edbc 100 /**
AnnaBridge 171:3a7713b1edbc 101 * @brief CRYP handle Structure definition
AnnaBridge 171:3a7713b1edbc 102 */
AnnaBridge 171:3a7713b1edbc 103 typedef struct
AnnaBridge 171:3a7713b1edbc 104 {
AnnaBridge 171:3a7713b1edbc 105 AES_TypeDef *Instance; /*!< Register base address */
AnnaBridge 171:3a7713b1edbc 106
AnnaBridge 171:3a7713b1edbc 107 CRYP_InitTypeDef Init; /*!< CRYP required parameters */
AnnaBridge 171:3a7713b1edbc 108
AnnaBridge 171:3a7713b1edbc 109 uint8_t *pCrypInBuffPtr; /*!< Pointer to CRYP processing (encryption, decryption,...) buffer */
AnnaBridge 171:3a7713b1edbc 110
AnnaBridge 171:3a7713b1edbc 111 uint8_t *pCrypOutBuffPtr; /*!< Pointer to CRYP processing (encryption, decryption,...) buffer */
AnnaBridge 171:3a7713b1edbc 112
AnnaBridge 171:3a7713b1edbc 113 __IO uint16_t CrypInCount; /*!< Counter of inputed data */
AnnaBridge 171:3a7713b1edbc 114
AnnaBridge 171:3a7713b1edbc 115 __IO uint16_t CrypOutCount; /*!< Counter of outputed data */
AnnaBridge 171:3a7713b1edbc 116
AnnaBridge 171:3a7713b1edbc 117 HAL_StatusTypeDef Status; /*!< CRYP peripheral status */
AnnaBridge 171:3a7713b1edbc 118
AnnaBridge 171:3a7713b1edbc 119 HAL_PhaseTypeDef Phase; /*!< CRYP peripheral phase */
AnnaBridge 171:3a7713b1edbc 120
AnnaBridge 171:3a7713b1edbc 121 DMA_HandleTypeDef *hdmain; /*!< CRYP In DMA handle parameters */
AnnaBridge 171:3a7713b1edbc 122
AnnaBridge 171:3a7713b1edbc 123 DMA_HandleTypeDef *hdmaout; /*!< CRYP Out DMA handle parameters */
AnnaBridge 171:3a7713b1edbc 124
AnnaBridge 171:3a7713b1edbc 125 HAL_LockTypeDef Lock; /*!< CRYP locking object */
AnnaBridge 171:3a7713b1edbc 126
AnnaBridge 171:3a7713b1edbc 127 __IO HAL_CRYP_STATETypeDef State; /*!< CRYP peripheral state */
AnnaBridge 171:3a7713b1edbc 128
AnnaBridge 171:3a7713b1edbc 129 }CRYP_HandleTypeDef;
AnnaBridge 171:3a7713b1edbc 130
AnnaBridge 171:3a7713b1edbc 131 /**
AnnaBridge 171:3a7713b1edbc 132 * @}
AnnaBridge 171:3a7713b1edbc 133 */
AnnaBridge 171:3a7713b1edbc 134
AnnaBridge 171:3a7713b1edbc 135 /* Exported constants --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 136
AnnaBridge 171:3a7713b1edbc 137 /** @defgroup CRYP_Exported_Constants CRYP Exported Constants
AnnaBridge 171:3a7713b1edbc 138 * @{
AnnaBridge 171:3a7713b1edbc 139 */
AnnaBridge 171:3a7713b1edbc 140
AnnaBridge 171:3a7713b1edbc 141 /** @defgroup CRYP_Data_Type CRYP Data Type
AnnaBridge 171:3a7713b1edbc 142 * @{
AnnaBridge 171:3a7713b1edbc 143 */
AnnaBridge 171:3a7713b1edbc 144 #define CRYP_DATATYPE_32B (0x00000000U)
AnnaBridge 171:3a7713b1edbc 145 #define CRYP_DATATYPE_16B AES_CR_DATATYPE_0
AnnaBridge 171:3a7713b1edbc 146 #define CRYP_DATATYPE_8B AES_CR_DATATYPE_1
AnnaBridge 171:3a7713b1edbc 147 #define CRYP_DATATYPE_1B AES_CR_DATATYPE
AnnaBridge 171:3a7713b1edbc 148
AnnaBridge 171:3a7713b1edbc 149 #define IS_CRYP_DATATYPE(DATATYPE) (((DATATYPE) == CRYP_DATATYPE_32B) || \
AnnaBridge 171:3a7713b1edbc 150 ((DATATYPE) == CRYP_DATATYPE_16B) || \
AnnaBridge 171:3a7713b1edbc 151 ((DATATYPE) == CRYP_DATATYPE_8B) || \
AnnaBridge 171:3a7713b1edbc 152 ((DATATYPE) == CRYP_DATATYPE_1B))
AnnaBridge 171:3a7713b1edbc 153 /**
AnnaBridge 171:3a7713b1edbc 154 * @}
AnnaBridge 171:3a7713b1edbc 155 */
AnnaBridge 171:3a7713b1edbc 156
AnnaBridge 171:3a7713b1edbc 157 /** @defgroup CRYP_AlgoModeDirection CRYP Algo Mode Direction
AnnaBridge 171:3a7713b1edbc 158 * @{
AnnaBridge 171:3a7713b1edbc 159 */
AnnaBridge 171:3a7713b1edbc 160 #define CRYP_CR_ALGOMODE_DIRECTION (uint32_t)(AES_CR_MODE|AES_CR_CHMOD)
AnnaBridge 171:3a7713b1edbc 161
AnnaBridge 171:3a7713b1edbc 162 #define CRYP_CR_ALGOMODE_AES_ECB_ENCRYPT (0x00000000U)
AnnaBridge 171:3a7713b1edbc 163 #define CRYP_CR_ALGOMODE_AES_ECB_KEYDERDECRYPT (AES_CR_MODE)
AnnaBridge 171:3a7713b1edbc 164 #define CRYP_CR_ALGOMODE_AES_CBC_ENCRYPT (AES_CR_CHMOD_0)
AnnaBridge 171:3a7713b1edbc 165 #define CRYP_CR_ALGOMODE_AES_CBC_KEYDERDECRYPT ((uint32_t)(AES_CR_CHMOD_0|AES_CR_MODE))
AnnaBridge 171:3a7713b1edbc 166 #define CRYP_CR_ALGOMODE_AES_CTR_ENCRYPT (AES_CR_CHMOD_1)
AnnaBridge 171:3a7713b1edbc 167 #define CRYP_CR_ALGOMODE_AES_CTR_DECRYPT ((uint32_t)(AES_CR_CHMOD_1 | AES_CR_MODE_1))
AnnaBridge 171:3a7713b1edbc 168 /**
AnnaBridge 171:3a7713b1edbc 169 * @}
AnnaBridge 171:3a7713b1edbc 170 */
AnnaBridge 171:3a7713b1edbc 171
AnnaBridge 171:3a7713b1edbc 172 /** @defgroup CRYP_AES_Interrupts AES Interrupts
AnnaBridge 171:3a7713b1edbc 173 * @{
AnnaBridge 171:3a7713b1edbc 174 */
AnnaBridge 171:3a7713b1edbc 175 #define CRYP_IT_CC AES_CR_CCIE /*!< Computation Complete interrupt */
AnnaBridge 171:3a7713b1edbc 176 #define CRYP_IT_ERR AES_CR_ERRIE /*!< Error interrupt */
AnnaBridge 171:3a7713b1edbc 177
AnnaBridge 171:3a7713b1edbc 178 /**
AnnaBridge 171:3a7713b1edbc 179 * @}
AnnaBridge 171:3a7713b1edbc 180 */
AnnaBridge 171:3a7713b1edbc 181
AnnaBridge 171:3a7713b1edbc 182
AnnaBridge 171:3a7713b1edbc 183 /** @defgroup CRYP_AES_Flags AES Flags
AnnaBridge 171:3a7713b1edbc 184 * @{
AnnaBridge 171:3a7713b1edbc 185 */
AnnaBridge 171:3a7713b1edbc 186 #define CRYP_FLAG_CCF AES_SR_CCF /*!< Computation Complete Flag */
AnnaBridge 171:3a7713b1edbc 187 #define CRYP_FLAG_RDERR AES_SR_RDERR /*!< Read Error Flag */
AnnaBridge 171:3a7713b1edbc 188 #define CRYP_FLAG_WRERR AES_SR_WRERR /*!< Write Error Flag */
AnnaBridge 171:3a7713b1edbc 189
AnnaBridge 171:3a7713b1edbc 190 /**
AnnaBridge 171:3a7713b1edbc 191 * @}
AnnaBridge 171:3a7713b1edbc 192 */
AnnaBridge 171:3a7713b1edbc 193
AnnaBridge 171:3a7713b1edbc 194 /** @defgroup CRYP_AES_Clear_Flags AES Clear Flags
AnnaBridge 171:3a7713b1edbc 195 * @{
AnnaBridge 171:3a7713b1edbc 196 */
AnnaBridge 171:3a7713b1edbc 197 #define CRYP_CLEARFLAG_CCF AES_CR_CCFC /*!< Computation Complete Flag Clear */
AnnaBridge 171:3a7713b1edbc 198 #define CRYP_CLEARFLAG_RDERR AES_CR_ERRC /*!< Read Error Clear */
AnnaBridge 171:3a7713b1edbc 199 #define CRYP_CLEARFLAG_WRERR AES_CR_ERRC /*!< Write Error Clear */
AnnaBridge 171:3a7713b1edbc 200
AnnaBridge 171:3a7713b1edbc 201 /**
AnnaBridge 171:3a7713b1edbc 202 * @}
AnnaBridge 171:3a7713b1edbc 203 */
AnnaBridge 171:3a7713b1edbc 204
AnnaBridge 171:3a7713b1edbc 205 /**
AnnaBridge 171:3a7713b1edbc 206 * @}
AnnaBridge 171:3a7713b1edbc 207 */
AnnaBridge 171:3a7713b1edbc 208
AnnaBridge 171:3a7713b1edbc 209 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 210
AnnaBridge 171:3a7713b1edbc 211 /** @defgroup CRYP_Exported_Macros CRYP Exported Macros
AnnaBridge 171:3a7713b1edbc 212 * @{
AnnaBridge 171:3a7713b1edbc 213 */
AnnaBridge 171:3a7713b1edbc 214
AnnaBridge 171:3a7713b1edbc 215 /** @brief Reset CRYP handle state
AnnaBridge 171:3a7713b1edbc 216 * @param __HANDLE__: specifies the CRYP handle.
AnnaBridge 171:3a7713b1edbc 217 * @retval None
AnnaBridge 171:3a7713b1edbc 218 */
AnnaBridge 171:3a7713b1edbc 219 #define __HAL_CRYP_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_CRYP_STATE_RESET)
AnnaBridge 171:3a7713b1edbc 220
AnnaBridge 171:3a7713b1edbc 221 /**
AnnaBridge 171:3a7713b1edbc 222 * @brief Enable/Disable the CRYP peripheral.
AnnaBridge 171:3a7713b1edbc 223 * @param __HANDLE__: specifies the CRYP handle.
AnnaBridge 171:3a7713b1edbc 224 * @retval None
AnnaBridge 171:3a7713b1edbc 225 */
AnnaBridge 171:3a7713b1edbc 226 #define __HAL_CRYP_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR, AES_CR_EN)
AnnaBridge 171:3a7713b1edbc 227 #define __HAL_CRYP_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR, AES_CR_EN)
AnnaBridge 171:3a7713b1edbc 228
AnnaBridge 171:3a7713b1edbc 229 /**
AnnaBridge 171:3a7713b1edbc 230 * @brief Set the algorithm mode: AES-ECB, AES-CBC, AES-CTR, DES-ECB, DES-CBC,...
AnnaBridge 171:3a7713b1edbc 231 * @param __HANDLE__: specifies the CRYP handle.
AnnaBridge 171:3a7713b1edbc 232 * @param __MODE__: The algorithm mode.
AnnaBridge 171:3a7713b1edbc 233 * @retval None
AnnaBridge 171:3a7713b1edbc 234 */
AnnaBridge 171:3a7713b1edbc 235 #define __HAL_CRYP_SET_MODE(__HANDLE__,__MODE__) SET_BIT((__HANDLE__)->Instance->CR, (__MODE__))
AnnaBridge 171:3a7713b1edbc 236
AnnaBridge 171:3a7713b1edbc 237
AnnaBridge 171:3a7713b1edbc 238 /** @brief Check whether the specified CRYP flag is set or not.
AnnaBridge 171:3a7713b1edbc 239 * @param __HANDLE__: specifies the CRYP handle.
AnnaBridge 171:3a7713b1edbc 240 * @param __FLAG__: specifies the flag to check.
AnnaBridge 171:3a7713b1edbc 241 * This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 242 * @arg CRYP_FLAG_CCF : Computation Complete Flag
AnnaBridge 171:3a7713b1edbc 243 * @arg CRYP_FLAG_RDERR : Read Error Flag
AnnaBridge 171:3a7713b1edbc 244 * @arg CRYP_FLAG_WRERR : Write Error Flag
AnnaBridge 171:3a7713b1edbc 245 * @retval The new state of __FLAG__ (TRUE or FALSE).
AnnaBridge 171:3a7713b1edbc 246 */
AnnaBridge 171:3a7713b1edbc 247 #define __HAL_CRYP_GET_FLAG(__HANDLE__,__FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__))
AnnaBridge 171:3a7713b1edbc 248
AnnaBridge 171:3a7713b1edbc 249 /** @brief Clear the CRYP pending flag.
AnnaBridge 171:3a7713b1edbc 250 * @param __HANDLE__: specifies the CRYP handle.
AnnaBridge 171:3a7713b1edbc 251 * @param __FLAG__: specifies the flag to clear.
AnnaBridge 171:3a7713b1edbc 252 * This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 253 * @arg CRYP_CLEARFLAG_CCF : Computation Complete Clear Flag
AnnaBridge 171:3a7713b1edbc 254 * @arg CRYP_CLEARFLAG_RDERR : Read Error Clear
AnnaBridge 171:3a7713b1edbc 255 * @arg CRYP_CLEARFLAG_WRERR : Write Error Clear
AnnaBridge 171:3a7713b1edbc 256 * @retval None
AnnaBridge 171:3a7713b1edbc 257 */
AnnaBridge 171:3a7713b1edbc 258 #define __HAL_CRYP_CLEAR_FLAG(__HANDLE__, __FLAG__) SET_BIT((__HANDLE__)->Instance->CR, (__FLAG__))
AnnaBridge 171:3a7713b1edbc 259
AnnaBridge 171:3a7713b1edbc 260 /**
AnnaBridge 171:3a7713b1edbc 261 * @brief Enable the CRYP interrupt.
AnnaBridge 171:3a7713b1edbc 262 * @param __HANDLE__: specifies the CRYP handle.
AnnaBridge 171:3a7713b1edbc 263 * @param __INTERRUPT__: CRYP Interrupt.
AnnaBridge 171:3a7713b1edbc 264 * @retval None
AnnaBridge 171:3a7713b1edbc 265 */
AnnaBridge 171:3a7713b1edbc 266 #define __HAL_CRYP_ENABLE_IT(__HANDLE__,__INTERRUPT__) SET_BIT((__HANDLE__)->Instance->CR, (__INTERRUPT__))
AnnaBridge 171:3a7713b1edbc 267
AnnaBridge 171:3a7713b1edbc 268 /**
AnnaBridge 171:3a7713b1edbc 269 * @brief Disable the CRYP interrupt.
AnnaBridge 171:3a7713b1edbc 270 * @param __HANDLE__: specifies the CRYP handle.
AnnaBridge 171:3a7713b1edbc 271 * @param __INTERRUPT__: CRYP interrupt.
AnnaBridge 171:3a7713b1edbc 272 * @retval None
AnnaBridge 171:3a7713b1edbc 273 */
AnnaBridge 171:3a7713b1edbc 274 #define __HAL_CRYP_DISABLE_IT(__HANDLE__,__INTERRUPT__) CLEAR_BIT((__HANDLE__)->Instance->CR, (__INTERRUPT__))
AnnaBridge 171:3a7713b1edbc 275
AnnaBridge 171:3a7713b1edbc 276 /** @brief Checks if the specified CRYP interrupt source is enabled or disabled.
AnnaBridge 171:3a7713b1edbc 277 * @param __HANDLE__: specifies the CRYP handle.
AnnaBridge 171:3a7713b1edbc 278 * @param __INTERRUPT__: CRYP interrupt source to check
AnnaBridge 171:3a7713b1edbc 279 * This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 280 * @arg CRYP_IT_CC : Computation Complete interrupt
AnnaBridge 171:3a7713b1edbc 281 * @arg CRYP_IT_ERR : Error interrupt (used for RDERR and WRERR)
AnnaBridge 171:3a7713b1edbc 282 * @retval State of interruption (SET or RESET)
AnnaBridge 171:3a7713b1edbc 283 */
AnnaBridge 171:3a7713b1edbc 284 #define __HAL_CRYP_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) \
AnnaBridge 171:3a7713b1edbc 285 (( ((__HANDLE__)->Instance->CR & (__INTERRUPT__)) == (__INTERRUPT__) \
AnnaBridge 171:3a7713b1edbc 286 )? SET : RESET \
AnnaBridge 171:3a7713b1edbc 287 )
AnnaBridge 171:3a7713b1edbc 288
AnnaBridge 171:3a7713b1edbc 289 /** @brief Clear the CRYP pending IT.
AnnaBridge 171:3a7713b1edbc 290 * @param __HANDLE__: specifies the CRYP handle.
AnnaBridge 171:3a7713b1edbc 291 * @param __IT__: specifies the IT to clear.
AnnaBridge 171:3a7713b1edbc 292 * This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 293 * @arg CRYP_CLEARFLAG_CCF : Computation Complete Clear Flag
AnnaBridge 171:3a7713b1edbc 294 * @arg CRYP_CLEARFLAG_RDERR : Read Error Clear
AnnaBridge 171:3a7713b1edbc 295 * @arg CRYP_CLEARFLAG_WRERR : Write Error Clear
AnnaBridge 171:3a7713b1edbc 296 * @retval None
AnnaBridge 171:3a7713b1edbc 297 */
AnnaBridge 171:3a7713b1edbc 298 #define __HAL_CRYP_CLEAR_IT(__HANDLE__, __IT__) SET_BIT((__HANDLE__)->Instance->CR, (__IT__))
AnnaBridge 171:3a7713b1edbc 299
AnnaBridge 171:3a7713b1edbc 300 /**
AnnaBridge 171:3a7713b1edbc 301 * @}
AnnaBridge 171:3a7713b1edbc 302 */
AnnaBridge 171:3a7713b1edbc 303
AnnaBridge 171:3a7713b1edbc 304 /* Include CRYP HAL Extension module */
AnnaBridge 171:3a7713b1edbc 305 #include "stm32l1xx_hal_cryp_ex.h"
AnnaBridge 171:3a7713b1edbc 306
AnnaBridge 171:3a7713b1edbc 307 /* Exported functions --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 308
AnnaBridge 171:3a7713b1edbc 309 /** @addtogroup CRYP_Exported_Functions
AnnaBridge 171:3a7713b1edbc 310 * @{
AnnaBridge 171:3a7713b1edbc 311 */
AnnaBridge 171:3a7713b1edbc 312
AnnaBridge 171:3a7713b1edbc 313 /** @addtogroup CRYP_Exported_Functions_Group1
AnnaBridge 171:3a7713b1edbc 314 * @{
AnnaBridge 171:3a7713b1edbc 315 */
AnnaBridge 171:3a7713b1edbc 316
AnnaBridge 171:3a7713b1edbc 317 /* Initialization/de-initialization functions *********************************/
AnnaBridge 171:3a7713b1edbc 318 HAL_StatusTypeDef HAL_CRYP_Init(CRYP_HandleTypeDef *hcryp);
AnnaBridge 171:3a7713b1edbc 319 HAL_StatusTypeDef HAL_CRYP_DeInit(CRYP_HandleTypeDef *hcryp);
AnnaBridge 171:3a7713b1edbc 320
AnnaBridge 171:3a7713b1edbc 321 /* MSP functions *************************************************************/
AnnaBridge 171:3a7713b1edbc 322 void HAL_CRYP_MspInit(CRYP_HandleTypeDef *hcryp);
AnnaBridge 171:3a7713b1edbc 323 void HAL_CRYP_MspDeInit(CRYP_HandleTypeDef *hcryp);
AnnaBridge 171:3a7713b1edbc 324
AnnaBridge 171:3a7713b1edbc 325 /**
AnnaBridge 171:3a7713b1edbc 326 * @}
AnnaBridge 171:3a7713b1edbc 327 */
AnnaBridge 171:3a7713b1edbc 328
AnnaBridge 171:3a7713b1edbc 329 /** @addtogroup CRYP_Exported_Functions_Group2
AnnaBridge 171:3a7713b1edbc 330 * @{
AnnaBridge 171:3a7713b1edbc 331 */
AnnaBridge 171:3a7713b1edbc 332
AnnaBridge 171:3a7713b1edbc 333 /* AES encryption/decryption using polling ***********************************/
AnnaBridge 171:3a7713b1edbc 334 HAL_StatusTypeDef HAL_CRYP_AESECB_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
AnnaBridge 171:3a7713b1edbc 335 HAL_StatusTypeDef HAL_CRYP_AESECB_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout);
AnnaBridge 171:3a7713b1edbc 336 HAL_StatusTypeDef HAL_CRYP_AESCBC_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
AnnaBridge 171:3a7713b1edbc 337 HAL_StatusTypeDef HAL_CRYP_AESCBC_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout);
AnnaBridge 171:3a7713b1edbc 338 HAL_StatusTypeDef HAL_CRYP_AESCTR_Encrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData, uint32_t Timeout);
AnnaBridge 171:3a7713b1edbc 339 HAL_StatusTypeDef HAL_CRYP_AESCTR_Decrypt(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData, uint32_t Timeout);
AnnaBridge 171:3a7713b1edbc 340
AnnaBridge 171:3a7713b1edbc 341 /* AES encryption/decryption using interrupt *********************************/
AnnaBridge 171:3a7713b1edbc 342 HAL_StatusTypeDef HAL_CRYP_AESECB_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
AnnaBridge 171:3a7713b1edbc 343 HAL_StatusTypeDef HAL_CRYP_AESCBC_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
AnnaBridge 171:3a7713b1edbc 344 HAL_StatusTypeDef HAL_CRYP_AESCTR_Encrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
AnnaBridge 171:3a7713b1edbc 345 HAL_StatusTypeDef HAL_CRYP_AESECB_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
AnnaBridge 171:3a7713b1edbc 346 HAL_StatusTypeDef HAL_CRYP_AESCTR_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
AnnaBridge 171:3a7713b1edbc 347 HAL_StatusTypeDef HAL_CRYP_AESCBC_Decrypt_IT(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
AnnaBridge 171:3a7713b1edbc 348
AnnaBridge 171:3a7713b1edbc 349 /* AES encryption/decryption using DMA ***************************************/
AnnaBridge 171:3a7713b1edbc 350 HAL_StatusTypeDef HAL_CRYP_AESECB_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
AnnaBridge 171:3a7713b1edbc 351 HAL_StatusTypeDef HAL_CRYP_AESECB_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
AnnaBridge 171:3a7713b1edbc 352 HAL_StatusTypeDef HAL_CRYP_AESCBC_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
AnnaBridge 171:3a7713b1edbc 353 HAL_StatusTypeDef HAL_CRYP_AESCBC_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
AnnaBridge 171:3a7713b1edbc 354 HAL_StatusTypeDef HAL_CRYP_AESCTR_Encrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pPlainData, uint16_t Size, uint8_t *pCypherData);
AnnaBridge 171:3a7713b1edbc 355 HAL_StatusTypeDef HAL_CRYP_AESCTR_Decrypt_DMA(CRYP_HandleTypeDef *hcryp, uint8_t *pCypherData, uint16_t Size, uint8_t *pPlainData);
AnnaBridge 171:3a7713b1edbc 356
AnnaBridge 171:3a7713b1edbc 357 /**
AnnaBridge 171:3a7713b1edbc 358 * @}
AnnaBridge 171:3a7713b1edbc 359 */
AnnaBridge 171:3a7713b1edbc 360
AnnaBridge 171:3a7713b1edbc 361 /** @addtogroup CRYP_Exported_Functions_Group3
AnnaBridge 171:3a7713b1edbc 362 * @{
AnnaBridge 171:3a7713b1edbc 363 */
AnnaBridge 171:3a7713b1edbc 364
AnnaBridge 171:3a7713b1edbc 365 /* CallBack functions ********************************************************/
AnnaBridge 171:3a7713b1edbc 366 void HAL_CRYP_InCpltCallback(CRYP_HandleTypeDef *hcryp);
AnnaBridge 171:3a7713b1edbc 367 void HAL_CRYP_OutCpltCallback(CRYP_HandleTypeDef *hcryp);
AnnaBridge 171:3a7713b1edbc 368 void HAL_CRYP_ErrorCallback(CRYP_HandleTypeDef *hcryp);
AnnaBridge 171:3a7713b1edbc 369
AnnaBridge 171:3a7713b1edbc 370 /**
AnnaBridge 171:3a7713b1edbc 371 * @}
AnnaBridge 171:3a7713b1edbc 372 */
AnnaBridge 171:3a7713b1edbc 373
AnnaBridge 171:3a7713b1edbc 374 /** @addtogroup CRYP_Exported_Functions_Group4
AnnaBridge 171:3a7713b1edbc 375 * @{
AnnaBridge 171:3a7713b1edbc 376 */
AnnaBridge 171:3a7713b1edbc 377
AnnaBridge 171:3a7713b1edbc 378 /* Processing functions ********************************************************/
AnnaBridge 171:3a7713b1edbc 379 void HAL_CRYP_IRQHandler(CRYP_HandleTypeDef *hcryp);
AnnaBridge 171:3a7713b1edbc 380
AnnaBridge 171:3a7713b1edbc 381 /**
AnnaBridge 171:3a7713b1edbc 382 * @}
AnnaBridge 171:3a7713b1edbc 383 */
AnnaBridge 171:3a7713b1edbc 384
AnnaBridge 171:3a7713b1edbc 385 /** @addtogroup CRYP_Exported_Functions_Group5
AnnaBridge 171:3a7713b1edbc 386 * @{
AnnaBridge 171:3a7713b1edbc 387 */
AnnaBridge 171:3a7713b1edbc 388
AnnaBridge 171:3a7713b1edbc 389 /* Peripheral State functions **************************************************/
AnnaBridge 171:3a7713b1edbc 390 HAL_CRYP_STATETypeDef HAL_CRYP_GetState(CRYP_HandleTypeDef *hcryp);
AnnaBridge 171:3a7713b1edbc 391
AnnaBridge 171:3a7713b1edbc 392 /**
AnnaBridge 171:3a7713b1edbc 393 * @}
AnnaBridge 171:3a7713b1edbc 394 */
AnnaBridge 171:3a7713b1edbc 395
AnnaBridge 171:3a7713b1edbc 396 /**
AnnaBridge 171:3a7713b1edbc 397 * @}
AnnaBridge 171:3a7713b1edbc 398 */
AnnaBridge 171:3a7713b1edbc 399
AnnaBridge 171:3a7713b1edbc 400 /**
AnnaBridge 171:3a7713b1edbc 401 * @}
AnnaBridge 171:3a7713b1edbc 402 */
AnnaBridge 171:3a7713b1edbc 403
AnnaBridge 171:3a7713b1edbc 404 /**
AnnaBridge 171:3a7713b1edbc 405 * @}
AnnaBridge 171:3a7713b1edbc 406 */
AnnaBridge 171:3a7713b1edbc 407
AnnaBridge 171:3a7713b1edbc 408 #endif /* STM32L162xC || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX*/
AnnaBridge 171:3a7713b1edbc 409
AnnaBridge 171:3a7713b1edbc 410 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 411 }
AnnaBridge 171:3a7713b1edbc 412 #endif
AnnaBridge 171:3a7713b1edbc 413
AnnaBridge 171:3a7713b1edbc 414 #endif /* __STM32L1xx_HAL_CRYP_H */
AnnaBridge 171:3a7713b1edbc 415
AnnaBridge 171:3a7713b1edbc 416 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/