1 /** 2 ****************************************************************************** 3 * @file stm32f7xx_hal_hash_ex.h 4 * @author MCD Application Team 5 * @version V1.0.1 6 * @date 25-June-2015 7 * @brief Header file of HASH HAL Extension module. 8 ****************************************************************************** 9 * @attention 10 * 11 * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> 12 * 13 * Redistribution and use in source and binary forms, with or without modification, 14 * are permitted provided that the following conditions are met: 15 * 1. Redistributions of source code must retain the above copyright notice, 16 * this list of conditions and the following disclaimer. 17 * 2. Redistributions in binary form must reproduce the above copyright notice, 18 * this list of conditions and the following disclaimer in the documentation 19 * and/or other materials provided with the distribution. 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors 21 * may be used to endorse or promote products derived from this software 22 * without specific prior written permission. 23 * 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34 * 35 ****************************************************************************** 36 */ 37 38 /* Define to prevent recursive inclusion -------------------------------------*/ 39 #ifndef __STM32F7xx_HAL_HASH_EX_H 40 #define __STM32F7xx_HAL_HASH_EX_H 41 42 #ifdef __cplusplus 43 extern "C" { 44 #endif 45 46 #if defined(STM32F756xx) 47 /* Includes ------------------------------------------------------------------*/ 48 #include "stm32f7xx_hal_def.h" 49 50 /** @addtogroup STM32F7xx_HAL_Driver 51 * @{ 52 */ 53 54 /** @addtogroup HASHEx 55 * @brief HASHEx HAL Extension module driver 56 * @{ 57 */ 58 59 /* Exported types ------------------------------------------------------------*/ 60 /* Exported constants --------------------------------------------------------*/ 61 /* Exported macro ------------------------------------------------------------*/ 62 /* Exported functions --------------------------------------------------------*/ 63 64 /** @defgroup HASHEx_Exported_Functions HASHEx Exported Functions 65 * @{ 66 */ 67 68 /** @defgroup HASHEx_Exported_Functions_Group1 HASHEx processing using polling functions 69 * @{ 70 */ 71 72 HAL_StatusTypeDef HAL_HASHEx_SHA224_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout); 73 HAL_StatusTypeDef HAL_HASHEx_SHA256_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout); 74 HAL_StatusTypeDef HAL_HASHEx_SHA224_Accumulate(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size); 75 HAL_StatusTypeDef HAL_HASHEx_SHA256_Accumulate(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size); 76 77 /** 78 * @} 79 */ 80 81 /** @defgroup HASHEx_Exported_Functions_Group2 HMAC processing using polling functions 82 * @{ 83 */ 84 85 HAL_StatusTypeDef HAL_HMACEx_SHA224_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout); 86 HAL_StatusTypeDef HAL_HMACEx_SHA256_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout); 87 88 /** 89 * @} 90 */ 91 92 /** @defgroup HASHEx_Exported_Functions_Group3 HASHEx processing using functions 93 * @{ 94 */ 95 96 HAL_StatusTypeDef HAL_HASHEx_SHA224_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer); 97 HAL_StatusTypeDef HAL_HASHEx_SHA256_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer); 98 99 /** 100 * @} 101 */ 102 103 /** @defgroup HASHEx_Exported_Functions_Group4 HASHEx processing using DMA 104 * @{ 105 */ 106 107 HAL_StatusTypeDef HAL_HASHEx_SHA224_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size); 108 HAL_StatusTypeDef HAL_HASHEx_SHA224_Finish(HASH_HandleTypeDef *hhash, uint8_t* pOutBuffer, uint32_t Timeout); 109 HAL_StatusTypeDef HAL_HASHEx_SHA256_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size); 110 HAL_StatusTypeDef HAL_HASHEx_SHA256_Finish(HASH_HandleTypeDef *hhash, uint8_t* pOutBuffer, uint32_t Timeout); 111 112 /** 113 * @} 114 */ 115 116 /** @defgroup HASHEx_Exported_Functions_Group5 HMAC processing using DMA 117 * @{ 118 */ 119 120 HAL_StatusTypeDef HAL_HMACEx_SHA224_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size); 121 HAL_StatusTypeDef HAL_HMACEx_SHA256_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size); 122 /** 123 * @} 124 */ 125 126 /** @defgroup HASHEx_Exported_Functions_Group6 HASHEx processing functions 127 * @{ 128 */ 129 130 void HAL_HASHEx_IRQHandler(HASH_HandleTypeDef *hhash); 131 132 /** 133 * @} 134 */ 135 136 /** 137 * @} 138 */ 139 140 /* Private types -------------------------------------------------------------*/ 141 /** @defgroup HASHEx_Private_Types HASHEx Private Types 142 * @{ 143 */ 144 145 /** 146 * @} 147 */ 148 149 /* Private variables ---------------------------------------------------------*/ 150 /** @defgroup HASHEx_Private_Variables HASHEx Private Variables 151 * @{ 152 */ 153 154 /** 155 * @} 156 */ 157 158 /* Private constants ---------------------------------------------------------*/ 159 /** @defgroup HASHEx_Private_Constants HASHEx Private Constants 160 * @{ 161 */ 162 163 /** 164 * @} 165 */ 166 167 /* Private macros ------------------------------------------------------------*/ 168 /** @defgroup HASHEx_Private_Macros HASHEx Private Macros 169 * @{ 170 */ 171 172 /** 173 * @} 174 */ 175 176 /* Private functions ---------------------------------------------------------*/ 177 /** @defgroup HASHEx_Private_Functions HASHEx Private Functions 178 * @{ 179 */ 180 181 /** 182 * @} 183 */ 184 185 /** 186 * @} 187 */ 188 #endif /* STM32F756xx */ 189 /** 190 * @} 191 */ 192 193 #ifdef __cplusplus 194 } 195 #endif 196 197 #endif /* __STM32F7xx_HAL_HASH_EX_H */ 198 199 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 200