mbed library sources

Dependents:   Marvino mbot

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Fri Jun 19 09:15:11 2015 +0100
Revision:
573:ad23fe03a082
Child:
610:813dcc80987e
Synchronized with git revision d47834cd4d729e5b36b4c1ad4650f8b8f6a9ab86

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

DISCO_F746NG - Add new target

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 573:ad23fe03a082 5 * @version V1.0.0
mbed_official 573:ad23fe03a082 6 * @date 12-May-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 573:ad23fe03a082 71 This parameter can be a value of @ref HASH DataType */
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 573:ad23fe03a082 176 /** @defgroup HASH_Exported_Constants_Group3 HASH DataType
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 573:ad23fe03a082 212 #define HASH_IT_DINI HASH_IMR_DINIM /*!< A new block can be entered into the input buffer (DIN) */
mbed_official 573:ad23fe03a082 213 #define HASH_IT_DCI HASH_IMR_DCIM /*!< 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 573:ad23fe03a082 243 #define __HAL_HASH_GET_FLAG(__FLAG__) ((HASH->SR & (__FLAG__)) == (__FLAG__))
mbed_official 573:ad23fe03a082 244
mbed_official 573:ad23fe03a082 245 /**
mbed_official 573:ad23fe03a082 246 * @brief Enable the multiple DMA mode.
mbed_official 573:ad23fe03a082 247 * This feature is available only in STM32F429x and STM32F439x devices.
mbed_official 573:ad23fe03a082 248 * @retval None
mbed_official 573:ad23fe03a082 249 */
mbed_official 573:ad23fe03a082 250 #define __HAL_HASH_SET_MDMAT() HASH->CR |= HASH_CR_MDMAT
mbed_official 573:ad23fe03a082 251
mbed_official 573:ad23fe03a082 252 /**
mbed_official 573:ad23fe03a082 253 * @brief Disable the multiple DMA mode.
mbed_official 573:ad23fe03a082 254 * @retval None
mbed_official 573:ad23fe03a082 255 */
mbed_official 573:ad23fe03a082 256 #define __HAL_HASH_RESET_MDMAT() HASH->CR &= (uint32_t)(~HASH_CR_MDMAT)
mbed_official 573:ad23fe03a082 257
mbed_official 573:ad23fe03a082 258 /**
mbed_official 573:ad23fe03a082 259 * @brief Start the digest computation
mbed_official 573:ad23fe03a082 260 * @retval None
mbed_official 573:ad23fe03a082 261 */
mbed_official 573:ad23fe03a082 262 #define __HAL_HASH_START_DIGEST() HASH->STR |= HASH_STR_DCAL
mbed_official 573:ad23fe03a082 263
mbed_official 573:ad23fe03a082 264 /**
mbed_official 573:ad23fe03a082 265 * @brief Set the number of valid bits in last word written in Data register
mbed_official 573:ad23fe03a082 266 * @param SIZE: size in byte of last data written in Data register.
mbed_official 573:ad23fe03a082 267 * @retval None
mbed_official 573:ad23fe03a082 268 */
mbed_official 573:ad23fe03a082 269 #define __HAL_HASH_SET_NBVALIDBITS(SIZE) do{HASH->STR &= ~(HASH_STR_NBW);\
mbed_official 573:ad23fe03a082 270 HASH->STR |= 8 * ((SIZE) % 4);\
mbed_official 573:ad23fe03a082 271 }while(0)
mbed_official 573:ad23fe03a082 272
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 /* Include HASH HAL Extension module */
mbed_official 573:ad23fe03a082 278 #include "stm32f7xx_hal_hash_ex.h"
mbed_official 573:ad23fe03a082 279 /* Exported functions --------------------------------------------------------*/
mbed_official 573:ad23fe03a082 280
mbed_official 573:ad23fe03a082 281 /** @defgroup HASH_Exported_Functions HASH Exported Functions
mbed_official 573:ad23fe03a082 282 * @{
mbed_official 573:ad23fe03a082 283 */
mbed_official 573:ad23fe03a082 284
mbed_official 573:ad23fe03a082 285 /** @addtogroup HASH_Exported_Functions_Group1
mbed_official 573:ad23fe03a082 286 * @{
mbed_official 573:ad23fe03a082 287 */
mbed_official 573:ad23fe03a082 288 HAL_StatusTypeDef HAL_HASH_Init(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 289 HAL_StatusTypeDef HAL_HASH_DeInit(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 290 /**
mbed_official 573:ad23fe03a082 291 * @}
mbed_official 573:ad23fe03a082 292 */
mbed_official 573:ad23fe03a082 293
mbed_official 573:ad23fe03a082 294 /** @addtogroup HASH_Exported_Functions_Group2
mbed_official 573:ad23fe03a082 295 * @{
mbed_official 573:ad23fe03a082 296 */
mbed_official 573:ad23fe03a082 297 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 298 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 299 HAL_StatusTypeDef HAL_HASH_MD5_Accumulate(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
mbed_official 573:ad23fe03a082 300 HAL_StatusTypeDef HAL_HASH_SHA1_Accumulate(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
mbed_official 573:ad23fe03a082 301 /**
mbed_official 573:ad23fe03a082 302 * @}
mbed_official 573:ad23fe03a082 303 */
mbed_official 573:ad23fe03a082 304
mbed_official 573:ad23fe03a082 305 /** @addtogroup HASH_Exported_Functions_Group3
mbed_official 573:ad23fe03a082 306 * @{
mbed_official 573:ad23fe03a082 307 */
mbed_official 573:ad23fe03a082 308 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 309 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 310 /**
mbed_official 573:ad23fe03a082 311 * @}
mbed_official 573:ad23fe03a082 312 */
mbed_official 573:ad23fe03a082 313
mbed_official 573:ad23fe03a082 314 /** @addtogroup HASH_Exported_Functions_Group4
mbed_official 573:ad23fe03a082 315 * @{
mbed_official 573:ad23fe03a082 316 */
mbed_official 573:ad23fe03a082 317 HAL_StatusTypeDef HAL_HASH_SHA1_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer);
mbed_official 573:ad23fe03a082 318 HAL_StatusTypeDef HAL_HASH_MD5_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer);
mbed_official 573:ad23fe03a082 319 /**
mbed_official 573:ad23fe03a082 320 * @}
mbed_official 573:ad23fe03a082 321 */
mbed_official 573:ad23fe03a082 322
mbed_official 573:ad23fe03a082 323 /** @addtogroup HASH_Exported_Functions_Group5
mbed_official 573:ad23fe03a082 324 * @{
mbed_official 573:ad23fe03a082 325 */
mbed_official 573:ad23fe03a082 326 HAL_StatusTypeDef HAL_HASH_SHA1_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
mbed_official 573:ad23fe03a082 327 HAL_StatusTypeDef HAL_HASH_SHA1_Finish(HASH_HandleTypeDef *hhash, uint8_t* pOutBuffer, uint32_t Timeout);
mbed_official 573:ad23fe03a082 328 HAL_StatusTypeDef HAL_HASH_MD5_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
mbed_official 573:ad23fe03a082 329 HAL_StatusTypeDef HAL_HASH_MD5_Finish(HASH_HandleTypeDef *hhash, uint8_t* pOutBuffer, uint32_t Timeout);
mbed_official 573:ad23fe03a082 330 /**
mbed_official 573:ad23fe03a082 331 * @}
mbed_official 573:ad23fe03a082 332 */
mbed_official 573:ad23fe03a082 333
mbed_official 573:ad23fe03a082 334 /** @addtogroup HASH_Exported_Functions_Group6
mbed_official 573:ad23fe03a082 335 * @{
mbed_official 573:ad23fe03a082 336 */
mbed_official 573:ad23fe03a082 337 HAL_StatusTypeDef HAL_HMAC_SHA1_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
mbed_official 573:ad23fe03a082 338 HAL_StatusTypeDef HAL_HMAC_MD5_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
mbed_official 573:ad23fe03a082 339 /**
mbed_official 573:ad23fe03a082 340 * @}
mbed_official 573:ad23fe03a082 341 */
mbed_official 573:ad23fe03a082 342
mbed_official 573:ad23fe03a082 343 /** @addtogroup HASH_Exported_Functions_Group7
mbed_official 573:ad23fe03a082 344 * @{
mbed_official 573:ad23fe03a082 345 */
mbed_official 573:ad23fe03a082 346 void HAL_HASH_IRQHandler(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 347 /**
mbed_official 573:ad23fe03a082 348 * @}
mbed_official 573:ad23fe03a082 349 */
mbed_official 573:ad23fe03a082 350
mbed_official 573:ad23fe03a082 351 /** @addtogroup HASH_Exported_Functions_Group8
mbed_official 573:ad23fe03a082 352 * @{
mbed_official 573:ad23fe03a082 353 */
mbed_official 573:ad23fe03a082 354 HAL_HASH_STATETypeDef HAL_HASH_GetState(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 355 void HAL_HASH_MspInit(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 356 void HAL_HASH_MspDeInit(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 357 void HAL_HASH_InCpltCallback(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 358 void HAL_HASH_DgstCpltCallback(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 359 void HAL_HASH_ErrorCallback(HASH_HandleTypeDef *hhash);
mbed_official 573:ad23fe03a082 360 /**
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 /* Private types -------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 369 /** @defgroup HASH_Private_Types HASH Private Types
mbed_official 573:ad23fe03a082 370 * @{
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 /* Private variables ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 378 /** @defgroup HASH_Private_Variables HASH Private Variables
mbed_official 573:ad23fe03a082 379 * @{
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 /* Private constants ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 387 /** @defgroup HASH_Private_Constants HASH Private Constants
mbed_official 573:ad23fe03a082 388 * @{
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 /* Private macros ------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 396 /** @defgroup HASH_Private_Macros HASH Private Macros
mbed_official 573:ad23fe03a082 397 * @{
mbed_official 573:ad23fe03a082 398 */
mbed_official 573:ad23fe03a082 399 #define IS_HASH_ALGOSELECTION(__ALGOSELECTION__) (((__ALGOSELECTION__) == HASH_ALGOSELECTION_SHA1) || \
mbed_official 573:ad23fe03a082 400 ((__ALGOSELECTION__) == HASH_ALGOSELECTION_SHA224) || \
mbed_official 573:ad23fe03a082 401 ((__ALGOSELECTION__) == HASH_ALGOSELECTION_SHA256) || \
mbed_official 573:ad23fe03a082 402 ((__ALGOSELECTION__) == HASH_ALGOSELECTION_MD5))
mbed_official 573:ad23fe03a082 403
mbed_official 573:ad23fe03a082 404
mbed_official 573:ad23fe03a082 405 #define IS_HASH_ALGOMODE(__ALGOMODE__) (((__ALGOMODE__) == HASH_ALGOMODE_HASH) || \
mbed_official 573:ad23fe03a082 406 ((__ALGOMODE__) == HASH_ALGOMODE_HMAC))
mbed_official 573:ad23fe03a082 407
mbed_official 573:ad23fe03a082 408
mbed_official 573:ad23fe03a082 409 #define IS_HASH_DATATYPE(__DATATYPE__) (((__DATATYPE__) == HASH_DATATYPE_32B)|| \
mbed_official 573:ad23fe03a082 410 ((__DATATYPE__) == HASH_DATATYPE_16B)|| \
mbed_official 573:ad23fe03a082 411 ((__DATATYPE__) == HASH_DATATYPE_8B) || \
mbed_official 573:ad23fe03a082 412 ((__DATATYPE__) == HASH_DATATYPE_1B))
mbed_official 573:ad23fe03a082 413
mbed_official 573:ad23fe03a082 414
mbed_official 573:ad23fe03a082 415 #define IS_HASH_HMAC_KEYTYPE(__KEYTYPE__) (((__KEYTYPE__) == HASH_HMAC_KEYTYPE_SHORTKEY) || \
mbed_official 573:ad23fe03a082 416 ((__KEYTYPE__) == HASH_HMAC_KEYTYPE_LONGKEY))
mbed_official 573:ad23fe03a082 417
mbed_official 573:ad23fe03a082 418 /**
mbed_official 573:ad23fe03a082 419 * @}
mbed_official 573:ad23fe03a082 420 */
mbed_official 573:ad23fe03a082 421
mbed_official 573:ad23fe03a082 422 /* Private functions ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 423 /** @defgroup HASH_Private_Functions HASH Private Functions
mbed_official 573:ad23fe03a082 424 * @{
mbed_official 573:ad23fe03a082 425 */
mbed_official 573:ad23fe03a082 426
mbed_official 573:ad23fe03a082 427 /**
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 #endif /* STM32F756xx */
mbed_official 573:ad23fe03a082 435 /**
mbed_official 573:ad23fe03a082 436 * @}
mbed_official 573:ad23fe03a082 437 */
mbed_official 573:ad23fe03a082 438
mbed_official 573:ad23fe03a082 439 #ifdef __cplusplus
mbed_official 573:ad23fe03a082 440 }
mbed_official 573:ad23fe03a082 441 #endif
mbed_official 573:ad23fe03a082 442
mbed_official 573:ad23fe03a082 443
mbed_official 573:ad23fe03a082 444 #endif /* __STM32F7xx_HAL_HASH_H */
mbed_official 573:ad23fe03a082 445
mbed_official 573:ad23fe03a082 446 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/