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:
Wed Jul 01 09:45:11 2015 +0100
Revision:
579:53297373a894
Parent:
573:ad23fe03a082
Child:
610:813dcc80987e
Synchronized with git revision d5b4d2ab9c47edb4dc5776e7177b0c2263459081

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

Initial version of drivers for SAMR21

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****/