Go to the documentation of this file.
52 #ifndef __GR55xx_HAL_HMAC_H__
53 #define __GR55xx_HAL_HMAC_H__
198 #define HAL_HMAC_ERROR_NONE ((uint32_t)0x00000000)
199 #define HAL_HMAC_ERROR_TIMEOUT ((uint32_t)0x00000001)
200 #define HAL_HMAC_ERROR_TRANSFER ((uint32_t)0x00000002)
201 #define HAL_HMAC_ERROR_INVALID_PARAM ((uint32_t)0x00000004)
207 #define HMAC_MODE_SHA LL_HMAC_CALCULATETYPE_SHA
208 #define HMAC_MODE_HMAC LL_HMAC_CALCULATETYPE_HMAC
214 #define HMAC_BLOCK_MAX (512)
215 #define HMAC_BLOCKSIZE_BITS (512)
216 #define HMAC_BLOCKSIZE_BYTES (HMAC_BLOCKSIZE_BITS >> 3)
217 #define HMAC_BLOCKSIZE_WORDS (HMAC_BLOCKSIZE_BYTES >> 2)
218 #define HMAC_DIGESTSIZE_BITS (256)
219 #define HMAC_DIGESTSIZE_BYTES (HMAC_DIGESTSIZE_BITS >> 3)
220 #define HMAC_DIGESTSIZE_WORDS (HMAC_DIGESTSIZE_BYTES >> 2)
221 #define HMAC_DMA_BLOCK_MAX (512)
227 #define HMAC_FLAG_DATAREADY_SHA LL_HMAC_FLAG_DATAREADY_SHA
228 #define HMAC_FLAG_DATAREADY_HMAC LL_HMAC_FLAG_DATAREADY_HMAC
229 #define HMAC_FLAG_DMA_MESSAGEDONE LL_HMAC_FLAG_DMA_MESSAGEDONE
230 #define HMAC_FLAG_DMA_DONE LL_HMAC_FLAG_DMA_DONE
231 #define HMAC_FLAG_DMA_ERR LL_HMAC_FLAG_DMA_ERR
232 #define HMAC_FLAG_KEY_VALID LL_HMAC_FLAG_KEY_VALID
238 #define HAL_HMAC_KEYTYPE_MCU LL_HMAC_KEYTYPE_MCU
240 #define HAL_HMAC_KEYTYPE_AHB LL_HMAC_KEYTYPE_AHB
242 #define HAL_HMAC_KEYTYPE_KRAM LL_HMAC_KEYTYPE_KRAM
248 #define HAL_HMAC_ENABLE_IRQ (0x1)
249 #define HAL_HMAC_DISABLE_IRQ (0x0)
255 #define HAL_HMAC_ENABLE_DMA (0x1)
256 #define HAL_HMAC_DISABLE_DMA (0x0)
262 #define HMAC_IT_DONE ((uint32_t)0x00000001)
268 #define HAL_HMAC_TIMEOUT_DEFAULT_VALUE ((uint32_t)5000)
282 #define __HAL_HMAC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->state = HAL_HMAC_STATE_RESET)
288 #define __HAL_HMAC_ENABLE(__HANDLE__) SET_BITS((__HANDLE__)->p_instance->CTRL, HMAC_CTRL_ENABLE)
294 #define __HAL_HMAC_DISABLE(__HANDLE__) CLEAR_BITS((__HANDLE__)->p_instance->CTRL, HMAC_CTRL_ENABLE)
300 #define __HAL_HMAC_ENABLE_IT(__HANDLE__) ll_hmac_enable_it_done((__HANDLE__)->p_instance)
306 #define __HAL_HMAC_DISABLE_IT(__HANDLE__) ll_hmac_disable_it_done((__HANDLE__)->p_instance)
315 #define __HAL_HMAC_GET_FLAG_IT(__HANDLE__, __FLAG__) (READ_BITS((__HANDLE__)->p_instance->INTERRUPT, (__FLAG__)) == (__FLAG__))
324 #define __HAL_HMAC_CLEAR_FLAG_IT(__HANDLE__, __FLAG__) SET_BITS((__HANDLE__)->p_instance->INTERRUPT, (__FLAG__))
337 #define __HAL_HMAC_GET_FLAG(__HANDLE__, __FLAG__) ((READ_BITS((__HANDLE__)->p_instance->STATUS, (__FLAG__)) != 0) ? SET : RESET)
uint32_t key_fetch_type
Definition: gr55xx_hal_hmac.h:110
uint32_t * p_user_hash
Definition: gr55xx_hal_hmac.h:108
uint32_t hal_hmac_get_error(hmac_handle_t *p_hmac)
Return the HMAC error code.
hal_status_t hal_hmac_resume_reg(hmac_handle_t *p_hmac)
Restore some registers related to HMAC configuration after sleep. This function must be used in conju...
void hal_hmac_irq_handler(hmac_handle_t *p_hmac)
Handle HMAC interrupt request.
HMAC init Structure definition.
Definition: gr55xx_hal_hmac.h:103
hal_lock_t
HAL Lock structures definition.
Definition: gr55xx_hal_def.h:81
void(* hmac_msp_init)(hmac_handle_t *p_hmac)
Definition: gr55xx_hal_hmac.h:175
uint32_t * p_message
Definition: gr55xx_hal_hmac.h:135
struct _hmac_handle hmac_handle_t
HMAC handle Structure definition.
hal_status_t hal_hmac_suspend_reg(hmac_handle_t *p_hmac)
Suspend some registers related to HMAC configuration before sleep.
__IO hal_hmac_state_t state
Definition: gr55xx_hal_hmac.h:147
@ HAL_HMAC_STATE_TIMEOUT
Definition: gr55xx_hal_hmac.h:82
void hal_hmac_msp_init(hmac_handle_t *p_hmac)
Initialize the HMAC MSP.
__IO uint32_t error_code
Definition: gr55xx_hal_hmac.h:149
@ HAL_HMAC_STATE_SUSPENDED
Definition: gr55xx_hal_hmac.h:83
hmac_init_t init
Definition: gr55xx_hal_hmac.h:133
void hal_hmac_msp_deinit(hmac_handle_t *p_hmac)
De-initialize the HMAC MSP.
hal_status_t hal_hmac_init(hmac_handle_t *p_hmac)
Initialize the HMAC according to the specified parameters in the hmac_init_t and initialize the assoc...
void(* hmac_error_callback)(hmac_handle_t *p_hmac)
Definition: gr55xx_hal_hmac.h:178
@ HAL_HMAC_STATE_ERROR
Definition: gr55xx_hal_hmac.h:81
hal_status_t hal_hmac_sha256_digest_poll(hmac_handle_t *p_hmac, uint32_t *p_message, uint32_t number, uint32_t *p_digest, uint32_t timeout)
xxx in polling mode in HMAC/SHA mode.
struct _hal_hmac_callback hal_hmac_callback_t
HAL_HMAC Callback function definition.
hmac_regs_t * p_instance
Definition: gr55xx_hal_hmac.h:131
@ HAL_HMAC_STATE_RESET
Definition: gr55xx_hal_hmac.h:78
struct _hmac_init hmac_init_t
HMAC init Structure definition.
uint32_t enable_dma_mode
Definition: gr55xx_hal_hmac.h:117
void hal_hmac_set_timeout(hmac_handle_t *p_hmac, uint32_t timeout)
Set the HMAC internal process timeout value.
hal_status_t hal_hmac_sha256_digest_it(hmac_handle_t *p_hmac, uint32_t *p_message, uint32_t number, uint32_t *p_digest, uint32_t timeout)
xxx in interrupt mode in HMAC/SHA mode.
hal_status_t hal_hmac_sha256_digest_dma(hmac_handle_t *p_hmac, uint32_t *p_message, uint32_t number, uint32_t *p_digest, uint32_t timeout)
xxx in DMA mode in HMAC/SHA mode.
void hal_hmac_error_callback(hmac_handle_t *p_hmac)
HMAC error callback.
uint32_t dpa_mode
Definition: gr55xx_hal_hmac.h:115
uint32_t block_count
Definition: gr55xx_hal_hmac.h:141
__IO hal_lock_t lock
Definition: gr55xx_hal_hmac.h:145
uint32_t * p_key
Definition: gr55xx_hal_hmac.h:106
hal_hmac_state_t hal_hmac_get_state(hmac_handle_t *p_hmac)
Return the HMAC handle state.
hal_status_t hal_hmac_sha256_digest(hmac_handle_t *p_hmac, uint32_t *p_message, uint32_t number, uint32_t *p_digest, uint32_t timeout)
xxx in blocking mode in SHA mode.
HMAC handle Structure definition.
Definition: gr55xx_hal_hmac.h:130
uint32_t enable_irq
Definition: gr55xx_hal_hmac.h:116
hal_status_t
HAL Status structures definition.
Definition: gr55xx_hal_def.h:70
void(* hmac_msp_deinit)(hmac_handle_t *p_hmac)
Definition: gr55xx_hal_hmac.h:176
void(* hmac_done_callback)(hmac_handle_t *p_hmac)
Definition: gr55xx_hal_hmac.h:177
void hal_hmac_done_callback(hmac_handle_t *p_hmac)
Digest Done callback.
@ HAL_HMAC_STATE_READY
Definition: gr55xx_hal_hmac.h:79
uint32_t mode
Definition: gr55xx_hal_hmac.h:104
uint32_t is_last_trans
Definition: gr55xx_hal_hmac.h:143
hal_hmac_state_t
HAL HMAC State enumerations definition.
Definition: gr55xx_hal_hmac.h:77
uint32_t block_size
Definition: gr55xx_hal_hmac.h:139
hal_status_t hal_hmac_deinit(hmac_handle_t *p_hmac)
De-initialize the HMAC peripheral.
uint32_t * p_digest
Definition: gr55xx_hal_hmac.h:137
uint32_t retention[17]
Definition: gr55xx_hal_hmac.h:153
uint32_t timeout
Definition: gr55xx_hal_hmac.h:151
Header file containing functions prototypes of HMAC LL library.
HAL_HMAC Callback function definition.
Definition: gr55xx_hal_hmac.h:174
This file contains HAL common definitions, enumeration, macros and structures definitions.
@ HAL_HMAC_STATE_BUSY
Definition: gr55xx_hal_hmac.h:80