Modified version of the mbed library for use with the Nucleo boards.

Dependents:   EEPROMWrite Full-Project

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Thu Aug 20 10:45:13 2015 +0100
Revision:
613:bc40b8d2aec4
Parent:
532:fe11edbda85c
Synchronized with git revision 92ca8c7b60a283b6bb60eb65b183dac1599f0ade

Full URL: https://github.com/mbedmicro/mbed/commit/92ca8c7b60a283b6bb60eb65b183dac1599f0ade/

Nordic: update application start address in GCC linker script

Who changed what in which revision?

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