STM32F439xx HAL User Manual
stm32f4xx_hal_hash_ex.h
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32f4xx_hal_hash_ex.h
00004   * @author  MCD Application Team
00005   * @brief   Header file of HASH HAL Extension module.
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
00010   *
00011   * Redistribution and use in source and binary forms, with or without modification,
00012   * are permitted provided that the following conditions are met:
00013   *   1. Redistributions of source code must retain the above copyright notice,
00014   *      this list of conditions and the following disclaimer.
00015   *   2. Redistributions in binary form must reproduce the above copyright notice,
00016   *      this list of conditions and the following disclaimer in the documentation
00017   *      and/or other materials provided with the distribution.
00018   *   3. Neither the name of STMicroelectronics nor the names of its contributors
00019   *      may be used to endorse or promote products derived from this software
00020   *      without specific prior written permission.
00021   *
00022   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00023   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00024   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00025   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00026   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00027   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00028   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00029   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00030   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00031   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00032   *
00033   ******************************************************************************
00034   */ 
00035 
00036 /* Define to prevent recursive inclusion -------------------------------------*/
00037 #ifndef __STM32F4xx_HAL_HASH_EX_H
00038 #define __STM32F4xx_HAL_HASH_EX_H
00039 
00040 #ifdef __cplusplus
00041  extern "C" {
00042 #endif
00043 
00044 #if defined(STM32F437xx) || defined(STM32F439xx) || defined(STM32F479xx)
00045 /* Includes ------------------------------------------------------------------*/
00046 #include "stm32f4xx_hal_def.h"
00047 
00048 /** @addtogroup STM32F4xx_HAL_Driver
00049   * @{
00050   */
00051 
00052 /** @addtogroup HASHEx    
00053   * @brief HASHEx HAL Extension module driver 
00054   *  @{
00055   */ 
00056   
00057 /* Exported types ------------------------------------------------------------*/ 
00058 /* Exported constants --------------------------------------------------------*/
00059 /* Exported macro ------------------------------------------------------------*/
00060 /* Exported functions --------------------------------------------------------*/
00061 
00062 /** @defgroup HASHEx_Exported_Functions HASHEx Exported Functions
00063   * @{
00064   */
00065 
00066 /** @defgroup HASHEx_Exported_Functions_Group1 HASHEx processing using polling functions
00067   * @{
00068   */  
00069 
00070 HAL_StatusTypeDef HAL_HASHEx_SHA224_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
00071 HAL_StatusTypeDef HAL_HASHEx_SHA256_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
00072 HAL_StatusTypeDef HAL_HASHEx_SHA224_Accumulate(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
00073 HAL_StatusTypeDef HAL_HASHEx_SHA256_Accumulate(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
00074 
00075 /**
00076   * @}
00077   */ 
00078   
00079 /** @defgroup HASHEx_Exported_Functions_Group2 HMAC processing using polling functions
00080   * @{
00081   */ 
00082   
00083 HAL_StatusTypeDef HAL_HMACEx_SHA224_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
00084 HAL_StatusTypeDef HAL_HMACEx_SHA256_Start(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer, uint32_t Timeout);
00085 
00086 /**
00087   * @}
00088   */ 
00089   
00090 /** @defgroup HASHEx_Exported_Functions_Group3 HASHEx processing using  functions
00091   * @{
00092   */ 
00093   
00094 HAL_StatusTypeDef HAL_HASHEx_SHA224_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer);
00095 HAL_StatusTypeDef HAL_HASHEx_SHA256_Start_IT(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size, uint8_t* pOutBuffer);
00096 
00097 /**
00098   * @}
00099   */ 
00100   
00101 /** @defgroup HASHEx_Exported_Functions_Group4 HASHEx processing using DMA
00102   * @{
00103   */
00104   
00105 HAL_StatusTypeDef HAL_HASHEx_SHA224_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
00106 HAL_StatusTypeDef HAL_HASHEx_SHA224_Finish(HASH_HandleTypeDef *hhash, uint8_t* pOutBuffer, uint32_t Timeout);
00107 HAL_StatusTypeDef HAL_HASHEx_SHA256_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
00108 HAL_StatusTypeDef HAL_HASHEx_SHA256_Finish(HASH_HandleTypeDef *hhash, uint8_t* pOutBuffer, uint32_t Timeout);
00109 
00110 /**
00111   * @}
00112   */ 
00113   
00114 /** @defgroup HASHEx_Exported_Functions_Group5 HMAC processing using DMA
00115   * @{
00116   */
00117   
00118 HAL_StatusTypeDef HAL_HMACEx_SHA224_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
00119 HAL_StatusTypeDef HAL_HMACEx_SHA256_Start_DMA(HASH_HandleTypeDef *hhash, uint8_t *pInBuffer, uint32_t Size);
00120 /**
00121   * @}
00122   */ 
00123   
00124 /** @defgroup HASHEx_Exported_Functions_Group6 HASHEx processing functions
00125   * @{
00126   */
00127   
00128 void HAL_HASHEx_IRQHandler(HASH_HandleTypeDef *hhash);
00129 
00130 /**
00131   * @}
00132   */ 
00133 
00134 /**
00135   * @}
00136   */
00137  
00138  /* Private types -------------------------------------------------------------*/
00139 /** @defgroup HASHEx_Private_Types HASHEx Private Types
00140   * @{
00141   */
00142 
00143 /**
00144   * @}
00145   */ 
00146 
00147 /* Private variables ---------------------------------------------------------*/
00148 /** @defgroup HASHEx_Private_Variables HASHEx Private Variables
00149   * @{
00150   */
00151 
00152 /**
00153   * @}
00154   */ 
00155 
00156 /* Private constants ---------------------------------------------------------*/
00157 /** @defgroup HASHEx_Private_Constants HASHEx Private Constants
00158   * @{
00159   */
00160 
00161 /**
00162   * @}
00163   */ 
00164 
00165 /* Private macros ------------------------------------------------------------*/
00166 /** @defgroup HASHEx_Private_Macros HASHEx Private Macros
00167   * @{
00168   */
00169 
00170 /**
00171   * @}
00172   */ 
00173 
00174 /* Private functions ---------------------------------------------------------*/
00175 /** @defgroup HASHEx_Private_Functions HASHEx Private Functions
00176   * @{
00177   */
00178 
00179 /**
00180   * @}
00181   */
00182    
00183 #endif /* STM32F437xx || STM32F439xx || STM32F479xx */
00184 /**
00185   * @}
00186   */ 
00187 
00188 /**
00189   * @}
00190   */ 
00191   
00192 #ifdef __cplusplus
00193 }
00194 #endif
00195 
00196 #endif /* __STM32F4xx_HAL_HASH_EX_H */
00197 
00198 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/