mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

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

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

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

Import librarymbed

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

Committer:
mbed_official
Date:
Thu Jul 02 16:30:08 2015 +0100
Revision:
581:39197bcd20f2
Parent:
532:fe11edbda85c
Child:
613:bc40b8d2aec4
Synchronized with git revision ae2d3cdffe70184eb8736d94f76c45c93f4b7724

Full URL: https://github.com/mbedmicro/mbed/commit/ae2d3cdffe70184eb8736d94f76c45c93f4b7724/

Make it possible to build the core mbed library with yotta

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 532:fe11edbda85c 5 * @version V1.3.0
mbed_official 532:fe11edbda85c 6 * @date 09-March-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 87:085cde657901 213 #define HASH_IT_DINI HASH_IMR_DINIM /*!< A new block can be entered into the input buffer (DIN) */
mbed_official 87:085cde657901 214 #define HASH_IT_DCI HASH_IMR_DCIM /*!< 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 87:085cde657901 244 #define __HAL_HASH_GET_FLAG(__FLAG__) ((HASH->SR & (__FLAG__)) == (__FLAG__))
mbed_official 87:085cde657901 245
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 87:085cde657901 270 #define __HAL_HASH_SET_NBVALIDBITS(SIZE) do{HASH->STR &= ~(HASH_STR_NBW);\
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 532:fe11edbda85c 419 /**
mbed_official 532:fe11edbda85c 420 * @}
mbed_official 532:fe11edbda85c 421 */
mbed_official 532:fe11edbda85c 422
mbed_official 532:fe11edbda85c 423 /* Private functions ---------------------------------------------------------*/
mbed_official 532:fe11edbda85c 424 /** @defgroup HASH_Private_Functions HASH Private Functions
mbed_official 532:fe11edbda85c 425 * @{
mbed_official 532:fe11edbda85c 426 */
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 87:085cde657901 432 #endif /* STM32F415xx || STM32F417xx || STM32F437xx || STM32F439xx */
mbed_official 87:085cde657901 433 /**
mbed_official 87:085cde657901 434 * @}
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 #ifdef __cplusplus
mbed_official 87:085cde657901 442 }
mbed_official 87:085cde657901 443 #endif
mbed_official 87:085cde657901 444
mbed_official 87:085cde657901 445
mbed_official 87:085cde657901 446 #endif /* __STM32F4xx_HAL_HASH_H */
mbed_official 87:085cde657901 447
mbed_official 87:085cde657901 448 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/