mbed library sources, include can_api for nucleo-f091rc

Dependents:   CanNucleoF0_example

Fork of mbed-src by mbed official

Committer:
ptpaterson
Date:
Thu Jan 07 05:49:05 2016 +0000
Revision:
645:13c87cbecd54
Parent:
610:813dcc80987e
corrected freeze on CAN_RECEIVE_IT

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 573:ad23fe03a082 1 /**
mbed_official 573:ad23fe03a082 2 ******************************************************************************
mbed_official 573:ad23fe03a082 3 * @file stm32f7xx_hal_hash.h
mbed_official 573:ad23fe03a082 4 * @author MCD Application Team
mbed_official 610:813dcc80987e 5 * @version V1.0.1
mbed_official 610:813dcc80987e 6 * @date 25-June-2015
mbed_official 573:ad23fe03a082 7 * @brief Header file of HASH HAL module.
mbed_official 573:ad23fe03a082 8 ******************************************************************************
mbed_official 573:ad23fe03a082 9 * @attention
mbed_official 573:ad23fe03a082 10 *
mbed_official 573:ad23fe03a082 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 573:ad23fe03a082 12 *
mbed_official 573:ad23fe03a082 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 573:ad23fe03a082 14 * are permitted provided that the following conditions are met:
mbed_official 573:ad23fe03a082 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 573:ad23fe03a082 16 * this list of conditions and the following disclaimer.
mbed_official 573:ad23fe03a082 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 573:ad23fe03a082 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 573:ad23fe03a082 19 * and/or other materials provided with the distribution.
mbed_official 573:ad23fe03a082 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 573:ad23fe03a082 21 * may be used to endorse or promote products derived from this software
mbed_official 573:ad23fe03a082 22 * without specific prior written permission.
mbed_official 573:ad23fe03a082 23 *
mbed_official 573:ad23fe03a082 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 573:ad23fe03a082 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 573:ad23fe03a082 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 573:ad23fe03a082 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 573:ad23fe03a082 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 573:ad23fe03a082 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 573:ad23fe03a082 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 573:ad23fe03a082 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 573:ad23fe03a082 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 573:ad23fe03a082 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 573:ad23fe03a082 34 *
mbed_official 573:ad23fe03a082 35 ******************************************************************************
mbed_official 573:ad23fe03a082 36 */
mbed_official 573:ad23fe03a082 37
mbed_official 573:ad23fe03a082 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 573:ad23fe03a082 39 #ifndef __STM32F7xx_HAL_HASH_H
mbed_official 573:ad23fe03a082 40 #define __STM32F7xx_HAL_HASH_H
mbed_official 573:ad23fe03a082 41
mbed_official 573:ad23fe03a082 42 #ifdef __cplusplus
mbed_official 573:ad23fe03a082 43 extern "C" {
mbed_official 573:ad23fe03a082 44 #endif
mbed_official 573:ad23fe03a082 45
mbed_official 573:ad23fe03a082 46 #if defined(STM32F756xx)
mbed_official 573:ad23fe03a082 47 /* Includes ------------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 48 #include "stm32f7xx_hal_def.h"
mbed_official 573:ad23fe03a082 49
mbed_official 573:ad23fe03a082 50 /** @addtogroup STM32F7xx_HAL_Driver
mbed_official 573:ad23fe03a082 51 * @{
mbed_official 573:ad23fe03a082 52 */
mbed_official 573:ad23fe03a082 53
mbed_official 573:ad23fe03a082 54 /** @addtogroup HASH
mbed_official 573:ad23fe03a082 55 * @brief HASH HAL module driver
mbed_official 573:ad23fe03a082 56 * @{
mbed_official 573:ad23fe03a082 57 */
mbed_official 573:ad23fe03a082 58
mbed_official 573:ad23fe03a082 59 /* Exported types ------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 60 /** @defgroup HASH_Exported_Types HASH Exported Types
mbed_official 573:ad23fe03a082 61 * @{
mbed_official 573:ad23fe03a082 62 */
mbed_official 573:ad23fe03a082 63
mbed_official 573:ad23fe03a082 64 /** @defgroup HASH_Exported_Types_Group1 HASH Configuration Structure definition
mbed_official 573:ad23fe03a082 65 * @{
mbed_official 573:ad23fe03a082 66 */
mbed_official 573:ad23fe03a082 67
mbed_official 573:ad23fe03a082 68 typedef struct
mbed_official 573:ad23fe03a082 69 {
mbed_official 573:ad23fe03a082 70 uint32_t DataType; /*!< 32-bit data, 16-bit data, 8-bit data or 1-bit string.
mbed_official 610:813dcc80987e 71 This parameter can be a value of @ref HASH_Data_Type */
mbed_official 573:ad23fe03a082 72
mbed_official 573:ad23fe03a082 73 uint32_t KeySize; /*!< The key size is used only in HMAC operation */
mbed_official 573:ad23fe03a082 74
mbed_official 573:ad23fe03a082 75 uint8_t* pKey; /*!< The key is used only in HMAC operation */
mbed_official 573:ad23fe03a082 76 }HASH_InitTypeDef;
mbed_official 573:ad23fe03a082 77
mbed_official 573:ad23fe03a082 78 /**
mbed_official 573:ad23fe03a082 79 * @}
mbed_official 573:ad23fe03a082 80 */
mbed_official 573:ad23fe03a082 81
mbed_official 573:ad23fe03a082 82 /** @defgroup HASH_Exported_Types_Group2 HASH State structures definition
mbed_official 573:ad23fe03a082 83 * @{
mbed_official 573:ad23fe03a082 84 */
mbed_official 573:ad23fe03a082 85
mbed_official 573:ad23fe03a082 86 typedef enum
mbed_official 573:ad23fe03a082 87 {
mbed_official 573:ad23fe03a082 88 HAL_HASH_STATE_RESET = 0x00, /*!< HASH not yet initialized or disabled */
mbed_official 573:ad23fe03a082 89 HAL_HASH_STATE_READY = 0x01, /*!< HASH initialized and ready for use */
mbed_official 573:ad23fe03a082 90 HAL_HASH_STATE_BUSY = 0x02, /*!< HASH internal process is ongoing */
mbed_official 573:ad23fe03a082 91 HAL_HASH_STATE_TIMEOUT = 0x03, /*!< HASH timeout state */
mbed_official 573:ad23fe03a082 92 HAL_HASH_STATE_ERROR = 0x04 /*!< HASH error state */
mbed_official 573:ad23fe03a082 93 }HAL_HASH_STATETypeDef;
mbed_official 573:ad23fe03a082 94
mbed_official 573:ad23fe03a082 95 /**
mbed_official 573:ad23fe03a082 96 * @}
mbed_official 573:ad23fe03a082 97 */
mbed_official 573:ad23fe03a082 98
mbed_official 573:ad23fe03a082 99 /** @defgroup HASH_Exported_Types_Group3 HASH phase structures definition
mbed_official 573:ad23fe03a082 100 * @{
mbed_official 573:ad23fe03a082 101 */
mbed_official 573:ad23fe03a082 102
mbed_official 573:ad23fe03a082 103 typedef enum
mbed_official 573:ad23fe03a082 104 {
mbed_official 573:ad23fe03a082 105 HAL_HASH_PHASE_READY = 0x01, /*!< HASH peripheral is ready for initialization */
mbed_official 573:ad23fe03a082 106 HAL_HASH_PHASE_PROCESS = 0x02, /*!< HASH peripheral is in processing phase */
mbed_official 573:ad23fe03a082 107 }HAL_HASHPhaseTypeDef;
mbed_official 573:ad23fe03a082 108
mbed_official 573:ad23fe03a082 109 /**
mbed_official 573:ad23fe03a082 110 * @}
mbed_official 573:ad23fe03a082 111 */
mbed_official 573:ad23fe03a082 112
mbed_official 573:ad23fe03a082 113 /** @defgroup HASH_Exported_Types_Group4 HASH Handle structures definition
mbed_official 573:ad23fe03a082 114 * @{
mbed_official 573:ad23fe03a082 115 */
mbed_official 573:ad23fe03a082 116
mbed_official 573:ad23fe03a082 117 typedef struct
mbed_official 573:ad23fe03a082 118 {
mbed_official 573:ad23fe03a082 119 HASH_InitTypeDef Init; /*!< HASH required parameters */
mbed_official 573:ad23fe03a082 120
mbed_official 573:ad23fe03a082 121 uint8_t *pHashInBuffPtr; /*!< Pointer to input buffer */
mbed_official 573:ad23fe03a082 122
mbed_official 573:ad23fe03a082 123 uint8_t *pHashOutBuffPtr; /*!< Pointer to input buffer */
mbed_official 573:ad23fe03a082 124
mbed_official 573:ad23fe03a082 125 __IO uint32_t HashBuffSize; /*!< Size of buffer to be processed */
mbed_official 573:ad23fe03a082 126
mbed_official 573:ad23fe03a082 127 __IO uint32_t HashInCount; /*!< Counter of inputed data */
mbed_official 573:ad23fe03a082 128
mbed_official 573:ad23fe03a082 129 __IO uint32_t HashITCounter; /*!< Counter of issued interrupts */
mbed_official 573:ad23fe03a082 130
mbed_official 573:ad23fe03a082 131 HAL_StatusTypeDef Status; /*!< HASH peripheral status */
mbed_official 573:ad23fe03a082 132
mbed_official 573:ad23fe03a082 133 HAL_HASHPhaseTypeDef Phase; /*!< HASH peripheral phase */
mbed_official 573:ad23fe03a082 134
mbed_official 573:ad23fe03a082 135 DMA_HandleTypeDef *hdmain; /*!< HASH In DMA handle parameters */
mbed_official 573:ad23fe03a082 136
mbed_official 573:ad23fe03a082 137 HAL_LockTypeDef Lock; /*!< HASH locking object */
mbed_official 573:ad23fe03a082 138
mbed_official 573:ad23fe03a082 139 __IO HAL_HASH_STATETypeDef State; /*!< HASH peripheral state */
mbed_official 573:ad23fe03a082 140 } HASH_HandleTypeDef;
mbed_official 573:ad23fe03a082 141
mbed_official 573:ad23fe03a082 142 /**
mbed_official 573:ad23fe03a082 143 * @}
mbed_official 573:ad23fe03a082 144 */
mbed_official 573:ad23fe03a082 145
mbed_official 573:ad23fe03a082 146
mbed_official 573:ad23fe03a082 147 /**
mbed_official 573:ad23fe03a082 148 * @}
mbed_official 573:ad23fe03a082 149 */
mbed_official 573:ad23fe03a082 150
mbed_official 573:ad23fe03a082 151 /* Exported constants --------------------------------------------------------*/
mbed_official 573:ad23fe03a082 152 /** @defgroup HASH_Exported_Constants HASH Exported Constants
mbed_official 573:ad23fe03a082 153 * @{
mbed_official 573:ad23fe03a082 154 */
mbed_official 573:ad23fe03a082 155
mbed_official 573:ad23fe03a082 156 /** @defgroup HASH_Exported_Constants_Group1 HASH Algorithm Selection
mbed_official 573:ad23fe03a082 157 * @{
mbed_official 573:ad23fe03a082 158 */
mbed_official 573:ad23fe03a082 159 #define HASH_ALGOSELECTION_SHA1 ((uint32_t)0x0000) /*!< HASH function is SHA1 */
mbed_official 573:ad23fe03a082 160 #define HASH_ALGOSELECTION_SHA224 HASH_CR_ALGO_1 /*!< HASH function is SHA224 */
mbed_official 573:ad23fe03a082 161 #define HASH_ALGOSELECTION_SHA256 HASH_CR_ALGO /*!< HASH function is SHA256 */
mbed_official 573:ad23fe03a082 162 #define HASH_ALGOSELECTION_MD5 HASH_CR_ALGO_0 /*!< HASH function is MD5 */
mbed_official 573:ad23fe03a082 163 /**
mbed_official 573:ad23fe03a082 164 * @}
mbed_official 573:ad23fe03a082 165 */
mbed_official 573:ad23fe03a082 166
mbed_official 573:ad23fe03a082 167 /** @defgroup HASH_Exported_Constants_Group2 HASH Algorithm Mode
mbed_official 573:ad23fe03a082 168 * @{
mbed_official 573:ad23fe03a082 169 */
mbed_official 573:ad23fe03a082 170 #define HASH_ALGOMODE_HASH ((uint32_t)0x00000000) /*!< Algorithm is HASH */
mbed_official 573:ad23fe03a082 171 #define HASH_ALGOMODE_HMAC HASH_CR_MODE /*!< Algorithm is HMAC */
mbed_official 573:ad23fe03a082 172 /**
mbed_official 573:ad23fe03a082 173 * @}
mbed_official 573:ad23fe03a082 174 */
mbed_official 573:ad23fe03a082 175
mbed_official 610:813dcc80987e 176 /** @defgroup HASH_Data_Type HASH Data Type
mbed_official 573:ad23fe03a082 177 * @{
mbed_official 573:ad23fe03a082 178 */
mbed_official 573:ad23fe03a082 179 #define HASH_DATATYPE_32B ((uint32_t)0x0000) /*!< 32-bit data. No swapping */
mbed_official 573:ad23fe03a082 180 #define HASH_DATATYPE_16B HASH_CR_DATATYPE_0 /*!< 16-bit data. Each half word is swapped */
mbed_official 573:ad23fe03a082 181 #define HASH_DATATYPE_8B HASH_CR_DATATYPE_1 /*!< 8-bit data. All bytes are swapped */
mbed_official 573:ad23fe03a082 182 #define HASH_DATATYPE_1B HASH_CR_DATATYPE /*!< 1-bit data. In the word all bits are swapped */
mbed_official 573:ad23fe03a082 183 /**
mbed_official 573:ad23fe03a082 184 * @}
mbed_official 573:ad23fe03a082 185 */
mbed_official 573:ad23fe03a082 186
mbed_official 573:ad23fe03a082 187 /** @defgroup HASH_Exported_Constants_Group4 HASH HMAC Long key
mbed_official 573:ad23fe03a082 188 * @brief HASH HMAC Long key used only for HMAC mode
mbed_official 573:ad23fe03a082 189 * @{
mbed_official 573:ad23fe03a082 190 */
mbed_official 573:ad23fe03a082 191 #define HASH_HMAC_KEYTYPE_SHORTKEY ((uint32_t)0x00000000) /*!< HMAC Key is <= 64 bytes */
mbed_official 573:ad23fe03a082 192 #define HASH_HMAC_KEYTYPE_LONGKEY HASH_CR_LKEY /*!< HMAC Key is > 64 bytes */
mbed_official 573:ad23fe03a082 193 /**
mbed_official 573:ad23fe03a082 194 * @}
mbed_official 573:ad23fe03a082 195 */
mbed_official 573:ad23fe03a082 196
mbed_official 573:ad23fe03a082 197 /** @defgroup HASH_Exported_Constants_Group5 HASH Flags definition
mbed_official 573:ad23fe03a082 198 * @{
mbed_official 573:ad23fe03a082 199 */
mbed_official 573:ad23fe03a082 200 #define HASH_FLAG_DINIS HASH_SR_DINIS /*!< 16 locations are free in the DIN : A new block can be entered into the input buffer */
mbed_official 573:ad23fe03a082 201 #define HASH_FLAG_DCIS HASH_SR_DCIS /*!< Digest calculation complete */
mbed_official 573:ad23fe03a082 202 #define HASH_FLAG_DMAS HASH_SR_DMAS /*!< DMA interface is enabled (DMAE=1) or a transfer is ongoing */
mbed_official 573:ad23fe03a082 203 #define HASH_FLAG_BUSY HASH_SR_BUSY /*!< The hash core is Busy : processing a block of data */
mbed_official 573:ad23fe03a082 204 #define HASH_FLAG_DINNE HASH_CR_DINNE /*!< DIN not empty : The input buffer contains at least one word of data */
mbed_official 573:ad23fe03a082 205 /**
mbed_official 573:ad23fe03a082 206 * @}
mbed_official 573:ad23fe03a082 207 */
mbed_official 573:ad23fe03a082 208
mbed_official 573:ad23fe03a082 209 /** @defgroup HASH_Exported_Constants_Group6 HASH Interrupts definition
mbed_official 573:ad23fe03a082 210 * @{
mbed_official 573:ad23fe03a082 211 */
mbed_official 610:813dcc80987e 212 #define HASH_IT_DINI HASH_IMR_DINIE /*!< A new block can be entered into the input buffer (DIN) */
mbed_official 610:813dcc80987e 213 #define HASH_IT_DCI HASH_IMR_DCIE /*!< Digest calculation complete */
mbed_official 573:ad23fe03a082 214 /**
mbed_official 573:ad23fe03a082 215 * @}
mbed_official 573:ad23fe03a082 216 */
mbed_official 573:ad23fe03a082 217
mbed_official 573:ad23fe03a082 218 /**
mbed_official 573:ad23fe03a082 219 * @}
mbed_official 573:ad23fe03a082 220 */
mbed_official 573:ad23fe03a082 221
mbed_official 573:ad23fe03a082 222 /* Exported macro ------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 223 /** @defgroup HASH_Exported_Macros HASH Exported Macros
mbed_official 573:ad23fe03a082 224 * @{
mbed_official 573:ad23fe03a082 225 */
mbed_official 573:ad23fe03a082 226
mbed_official 573:ad23fe03a082 227 /** @brief Reset HASH handle state
mbed_official 573:ad23fe03a082 228 * @param __HANDLE__: specifies the HASH handle.
mbed_official 573:ad23fe03a082 229 * @retval None
mbed_official 573:ad23fe03a082 230 */
mbed_official 573:ad23fe03a082 231 #define __HAL_HASH_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_HASH_STATE_RESET)
mbed_official 573:ad23fe03a082 232
mbed_official 573:ad23fe03a082 233 /** @brief Check whether the specified HASH flag is set or not.
mbed_official 573:ad23fe03a082 234 * @param __FLAG__: specifies the flag to check.
mbed_official 573:ad23fe03a082 235 * This parameter can be one of the following values:
mbed_official 573:ad23fe03a082 236 * @arg HASH_FLAG_DINIS: A new block can be entered into the input buffer.
mbed_official 573:ad23fe03a082 237 * @arg HASH_FLAG_DCIS: Digest calculation complete
mbed_official 573:ad23fe03a082 238 * @arg HASH_FLAG_DMAS: DMA interface is enabled (DMAE=1) or a transfer is ongoing
mbed_official 573:ad23fe03a082 239 * @arg HASH_FLAG_BUSY: The hash core is Busy : processing a block of data
mbed_official 573:ad23fe03a082 240 * @arg HASH_FLAG_DINNE: DIN not empty : The input buffer contains at least one word of data
mbed_official 573:ad23fe03a082 241 * @retval The new state of __FLAG__ (TRUE or FALSE).
mbed_official 573:ad23fe03a082 242 */
mbed_official 610:813dcc80987e 243 #define __HAL_HASH_GET_FLAG(__FLAG__) (((__FLAG__) > 8U) ? ((HASH->CR & (__FLAG__)) == (__FLAG__)) :\
mbed_official 610:813dcc80987e 244 ((HASH->SR & (__FLAG__)) == (__FLAG__)))
mbed_official 573:ad23fe03a082 245
mbed_official 573:ad23fe03a082 246 /**
mbed_official 573:ad23fe03a082 247 * @brief Enable the multiple DMA mode.
mbed_official 573:ad23fe03a082 248 * This feature is available only in STM32F429x and STM32F439x devices.
mbed_official 573:ad23fe03a082 249 * @retval None
mbed_official 573:ad23fe03a082 250 */
mbed_official 573:ad23fe03a082 251 #define __HAL_HASH_SET_MDMAT() HASH->CR |= HASH_CR_MDMAT
mbed_official 573:ad23fe03a082 252
mbed_official 573:ad23fe03a082 253 /**
mbed_official 573:ad23fe03a082 254 * @brief Disable the multiple DMA mode.
mbed_official 573:ad23fe03a082 255 * @retval None
mbed_official 573:ad23fe03a082 256 */
mbed_official 573:ad23fe03a082 257 #define __HAL_HASH_RESET_MDMAT() HASH->CR &= (uint32_t)(~HASH_CR_MDMAT)
mbed_official 573:ad23fe03a082 258
mbed_official 573:ad23fe03a082 259 /**
mbed_official 573:ad23fe03a082 260 * @brief Start the digest computation
mbed_official 573:ad23fe03a082 261 * @retval None
mbed_official 573:ad23fe03a082 262 */
mbed_official 573:ad23fe03a082 263 #define __HAL_HASH_START_DIGEST() HASH->STR |= HASH_STR_DCAL
mbed_official 573:ad23fe03a082 264
mbed_official 573:ad23fe03a082 265 /**
mbed_official 573:ad23fe03a082 266 * @brief Set the number of valid bits in last word written in Data register
mbed_official 573:ad23fe03a082 267 * @param SIZE: size in byte of last data written in Data register.
mbed_official 573:ad23fe03a082 268 * @retval None
mbed_official 573:ad23fe03a082 269 */
mbed_official 573:ad23fe03a082 270 #define __HAL_HASH_SET_NBVALIDBITS(SIZE) do{HASH->STR &= ~(HASH_STR_NBW);\
mbed_official 573:ad23fe03a082 271 HASH->STR |= 8 * ((SIZE) % 4);\
mbed_official 573:ad23fe03a082 272 }while(0)
mbed_official 573:ad23fe03a082 273
mbed_official 573:ad23fe03a082 274 /**
mbed_official 573:ad23fe03a082 275 * @}
mbed_official 573:ad23fe03a082 276 */
mbed_official 573:ad23fe03a082 277
mbed_official 573:ad23fe03a082 278 /* Include HASH HAL Extension module */
mbed_official 573:ad23fe03a082 279 #include "stm32f7xx_hal_hash_ex.h"
mbed_official 573:ad23fe03a082 280 /* Exported functions --------------------------------------------------------*/
mbed_official 573:ad23fe03a082 281
mbed_official 573:ad23fe03a082 282 /** @defgroup HASH_Exported_Functions HASH Exported Functions
mbed_official 573:ad23fe03a082 283 * @{
mbed_official 573:ad23fe03a082 284 */
mbed_official 573:ad23fe03a082 285
mbed_official 573:ad23fe03a082 286 /** @addtogroup HASH_Exported_Functions_Group1
mbed_official 573:ad23fe03a082 287 * @{
mbed_official 573:ad23fe03a082 288 */
mbed_official 573:ad23fe03a082 289 HAL_StatusTypeDef HAL_HASH_Init(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 290 HAL_StatusTypeDef HAL_HASH_DeInit(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 291 /**
mbed_official 573:ad23fe03a082 292 * @}
mbed_official 573:ad23fe03a082 293 */
mbed_official 573:ad23fe03a082 294
mbed_official 573:ad23fe03a082 295 /** @addtogroup HASH_Exported_Functions_Group2
mbed_official 573:ad23fe03a082 296 * @{
mbed_official 573:ad23fe03a082 297 */
mbed_official 573:ad23fe03a082 298 HAL_StatusTypeDef HAL_HASH_SHA1_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
mbed_official 573:ad23fe03a082 299 HAL_StatusTypeDef HAL_HASH_MD5_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
mbed_official 573:ad23fe03a082 300 HAL_StatusTypeDef HAL_HASH_MD5_Accumulate(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
mbed_official 573:ad23fe03a082 301 HAL_StatusTypeDef HAL_HASH_SHA1_Accumulate(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
mbed_official 573:ad23fe03a082 302 /**
mbed_official 573:ad23fe03a082 303 * @}
mbed_official 573:ad23fe03a082 304 */
mbed_official 573:ad23fe03a082 305
mbed_official 573:ad23fe03a082 306 /** @addtogroup HASH_Exported_Functions_Group3
mbed_official 573:ad23fe03a082 307 * @{
mbed_official 573:ad23fe03a082 308 */
mbed_official 573:ad23fe03a082 309 HAL_StatusTypeDef HAL_HMAC_SHA1_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
mbed_official 573:ad23fe03a082 310 HAL_StatusTypeDef HAL_HMAC_MD5_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
mbed_official 573:ad23fe03a082 311 /**
mbed_official 573:ad23fe03a082 312 * @}
mbed_official 573:ad23fe03a082 313 */
mbed_official 573:ad23fe03a082 314
mbed_official 573:ad23fe03a082 315 /** @addtogroup HASH_Exported_Functions_Group4
mbed_official 573:ad23fe03a082 316 * @{
mbed_official 573:ad23fe03a082 317 */
mbed_official 573:ad23fe03a082 318 HAL_StatusTypeDef HAL_HASH_SHA1_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer);
mbed_official 573:ad23fe03a082 319 HAL_StatusTypeDef HAL_HASH_MD5_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer);
mbed_official 573:ad23fe03a082 320 /**
mbed_official 573:ad23fe03a082 321 * @}
mbed_official 573:ad23fe03a082 322 */
mbed_official 573:ad23fe03a082 323
mbed_official 573:ad23fe03a082 324 /** @addtogroup HASH_Exported_Functions_Group5
mbed_official 573:ad23fe03a082 325 * @{
mbed_official 573:ad23fe03a082 326 */
mbed_official 573:ad23fe03a082 327 HAL_StatusTypeDef HAL_HASH_SHA1_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
mbed_official 573:ad23fe03a082 328 HAL_StatusTypeDef HAL_HASH_SHA1_Finish(HASH_HandleTypeDef *hhash, uint8_t* pOutBuffer, uint32_t Timeout);
mbed_official 573:ad23fe03a082 329 HAL_StatusTypeDef HAL_HASH_MD5_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
mbed_official 573:ad23fe03a082 330 HAL_StatusTypeDef HAL_HASH_MD5_Finish(HASH_HandleTypeDef *hhash, uint8_t* pOutBuffer, uint32_t Timeout);
mbed_official 573:ad23fe03a082 331 /**
mbed_official 573:ad23fe03a082 332 * @}
mbed_official 573:ad23fe03a082 333 */
mbed_official 573:ad23fe03a082 334
mbed_official 573:ad23fe03a082 335 /** @addtogroup HASH_Exported_Functions_Group6
mbed_official 573:ad23fe03a082 336 * @{
mbed_official 573:ad23fe03a082 337 */
mbed_official 573:ad23fe03a082 338 HAL_StatusTypeDef HAL_HMAC_SHA1_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
mbed_official 573:ad23fe03a082 339 HAL_StatusTypeDef HAL_HMAC_MD5_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
mbed_official 573:ad23fe03a082 340 /**
mbed_official 573:ad23fe03a082 341 * @}
mbed_official 573:ad23fe03a082 342 */
mbed_official 573:ad23fe03a082 343
mbed_official 573:ad23fe03a082 344 /** @addtogroup HASH_Exported_Functions_Group7
mbed_official 573:ad23fe03a082 345 * @{
mbed_official 573:ad23fe03a082 346 */
mbed_official 573:ad23fe03a082 347 void HAL_HASH_IRQHandler(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 348 /**
mbed_official 573:ad23fe03a082 349 * @}
mbed_official 573:ad23fe03a082 350 */
mbed_official 573:ad23fe03a082 351
mbed_official 573:ad23fe03a082 352 /** @addtogroup HASH_Exported_Functions_Group8
mbed_official 573:ad23fe03a082 353 * @{
mbed_official 573:ad23fe03a082 354 */
mbed_official 573:ad23fe03a082 355 HAL_HASH_STATETypeDef HAL_HASH_GetState(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 356 void HAL_HASH_MspInit(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 357 void HAL_HASH_MspDeInit(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 358 void HAL_HASH_InCpltCallback(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 359 void HAL_HASH_DgstCpltCallback(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 360 void HAL_HASH_ErrorCallback(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 361 /**
mbed_official 573:ad23fe03a082 362 * @}
mbed_official 573:ad23fe03a082 363 */
mbed_official 573:ad23fe03a082 364
mbed_official 573:ad23fe03a082 365 /**
mbed_official 573:ad23fe03a082 366 * @}
mbed_official 573:ad23fe03a082 367 */
mbed_official 573:ad23fe03a082 368
mbed_official 573:ad23fe03a082 369 /* Private types -------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 370 /** @defgroup HASH_Private_Types HASH Private Types
mbed_official 573:ad23fe03a082 371 * @{
mbed_official 573:ad23fe03a082 372 */
mbed_official 573:ad23fe03a082 373
mbed_official 573:ad23fe03a082 374 /**
mbed_official 573:ad23fe03a082 375 * @}
mbed_official 573:ad23fe03a082 376 */
mbed_official 573:ad23fe03a082 377
mbed_official 573:ad23fe03a082 378 /* Private variables ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 379 /** @defgroup HASH_Private_Variables HASH Private Variables
mbed_official 573:ad23fe03a082 380 * @{
mbed_official 573:ad23fe03a082 381 */
mbed_official 573:ad23fe03a082 382
mbed_official 573:ad23fe03a082 383 /**
mbed_official 573:ad23fe03a082 384 * @}
mbed_official 573:ad23fe03a082 385 */
mbed_official 573:ad23fe03a082 386
mbed_official 573:ad23fe03a082 387 /* Private constants ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 388 /** @defgroup HASH_Private_Constants HASH Private Constants
mbed_official 573:ad23fe03a082 389 * @{
mbed_official 573:ad23fe03a082 390 */
mbed_official 573:ad23fe03a082 391
mbed_official 573:ad23fe03a082 392 /**
mbed_official 573:ad23fe03a082 393 * @}
mbed_official 573:ad23fe03a082 394 */
mbed_official 573:ad23fe03a082 395
mbed_official 573:ad23fe03a082 396 /* Private macros ------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 397 /** @defgroup HASH_Private_Macros HASH Private Macros
mbed_official 573:ad23fe03a082 398 * @{
mbed_official 573:ad23fe03a082 399 */
mbed_official 573:ad23fe03a082 400 #define IS_HASH_ALGOSELECTION(__ALGOSELECTION__) (((__ALGOSELECTION__) == HASH_ALGOSELECTION_SHA1) || \
mbed_official 573:ad23fe03a082 401 ((__ALGOSELECTION__) == HASH_ALGOSELECTION_SHA224) || \
mbed_official 573:ad23fe03a082 402 ((__ALGOSELECTION__) == HASH_ALGOSELECTION_SHA256) || \
mbed_official 573:ad23fe03a082 403 ((__ALGOSELECTION__) == HASH_ALGOSELECTION_MD5))
mbed_official 573:ad23fe03a082 404
mbed_official 573:ad23fe03a082 405
mbed_official 573:ad23fe03a082 406 #define IS_HASH_ALGOMODE(__ALGOMODE__) (((__ALGOMODE__) == HASH_ALGOMODE_HASH) || \
mbed_official 573:ad23fe03a082 407 ((__ALGOMODE__) == HASH_ALGOMODE_HMAC))
mbed_official 573:ad23fe03a082 408
mbed_official 573:ad23fe03a082 409
mbed_official 573:ad23fe03a082 410 #define IS_HASH_DATATYPE(__DATATYPE__) (((__DATATYPE__) == HASH_DATATYPE_32B)|| \
mbed_official 573:ad23fe03a082 411 ((__DATATYPE__) == HASH_DATATYPE_16B)|| \
mbed_official 573:ad23fe03a082 412 ((__DATATYPE__) == HASH_DATATYPE_8B) || \
mbed_official 573:ad23fe03a082 413 ((__DATATYPE__) == HASH_DATATYPE_1B))
mbed_official 573:ad23fe03a082 414
mbed_official 573:ad23fe03a082 415
mbed_official 573:ad23fe03a082 416 #define IS_HASH_HMAC_KEYTYPE(__KEYTYPE__) (((__KEYTYPE__) == HASH_HMAC_KEYTYPE_SHORTKEY) || \
mbed_official 573:ad23fe03a082 417 ((__KEYTYPE__) == HASH_HMAC_KEYTYPE_LONGKEY))
mbed_official 610:813dcc80987e 418
mbed_official 610:813dcc80987e 419 #define IS_HASH_SHA1_BUFFER_SIZE(__SIZE__) ((((__SIZE__)%4) != 0)? 0U: 1U)
mbed_official 610:813dcc80987e 420
mbed_official 573:ad23fe03a082 421
mbed_official 573:ad23fe03a082 422 /**
mbed_official 573:ad23fe03a082 423 * @}
mbed_official 573:ad23fe03a082 424 */
mbed_official 573:ad23fe03a082 425
mbed_official 573:ad23fe03a082 426 /* Private functions ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 427 /** @defgroup HASH_Private_Functions HASH Private Functions
mbed_official 573:ad23fe03a082 428 * @{
mbed_official 573:ad23fe03a082 429 */
mbed_official 573:ad23fe03a082 430
mbed_official 573:ad23fe03a082 431 /**
mbed_official 573:ad23fe03a082 432 * @}
mbed_official 573:ad23fe03a082 433 */
mbed_official 573:ad23fe03a082 434
mbed_official 573:ad23fe03a082 435 /**
mbed_official 573:ad23fe03a082 436 * @}
mbed_official 573:ad23fe03a082 437 */
mbed_official 573:ad23fe03a082 438 #endif /* STM32F756xx */
mbed_official 573:ad23fe03a082 439 /**
mbed_official 573:ad23fe03a082 440 * @}
mbed_official 573:ad23fe03a082 441 */
mbed_official 573:ad23fe03a082 442
mbed_official 573:ad23fe03a082 443 #ifdef __cplusplus
mbed_official 573:ad23fe03a082 444 }
mbed_official 573:ad23fe03a082 445 #endif
mbed_official 573:ad23fe03a082 446
mbed_official 573:ad23fe03a082 447
mbed_official 573:ad23fe03a082 448 #endif /* __STM32F7xx_HAL_HASH_H */
mbed_official 573:ad23fe03a082 449
mbed_official 573:ad23fe03a082 450 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/