GR551x API Reference
V1_6_06_B5676
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
HAL_HMAC_KEYTYPE_MCU Fetch key from ram; { Start_private HAL_HMAC_KEYTYPE_AHB Fetch key from AHB; } E...
uint32_t * p_user_hash
Initialization HASH value
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.
void hal_hmac_irq_handler(hmac_handle_t *p_hmac)
Handle HMAC interrupt request.
HMAC init Structure definition.
hal_lock_t
HAL Lock structures definition.
void(* hmac_msp_init)(hmac_handle_t *p_hmac)
HMAC init MSP callback
uint32_t * p_message
Pointer to message input buffer
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
HMAC operation state
@ HAL_HMAC_STATE_TIMEOUT
Peripheral in timeout
void hal_hmac_msp_init(hmac_handle_t *p_hmac)
Initialize the HMAC MSP.
__IO uint32_t error_code
HMAC Error code
@ HAL_HMAC_STATE_SUSPENDED
Peripheral in suspended
hmac_init_t init
HMAC operation parameters
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)
HMAC error callback
@ HAL_HMAC_STATE_ERROR
Peripheral in error
struct _hal_hmac_callback hal_hmac_callback_t
HAL_HMAC Callback function definition.
hmac_regs_t * p_instance
HMAC registers base address
@ HAL_HMAC_STATE_RESET
Peripheral not initialized
struct _hmac_init hmac_init_t
HMAC init Structure definition.
uint32_t enable_dma_mode
Enable mode
void hal_hmac_set_timeout(hmac_handle_t *p_hmac, uint32_t timeout)
Set the HMAC internal process timeout value.
void hal_hmac_error_callback(hmac_handle_t *p_hmac)
HMAC error callback.
uint32_t dpa_mode
DPA Mode
uint32_t block_count
Blocks count
__IO hal_lock_t lock
Locking object
uint32_t * p_key
Encryption/Decryption Key
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.
uint32_t enable_irq
Ctrl IRQ when MCU mode
hal_status_t
HAL Status structures definition.
void(* hmac_msp_deinit)(hmac_handle_t *p_hmac)
HMAC de-init MSP callback
void(* hmac_done_callback)(hmac_handle_t *p_hmac)
HMAC digest done callback
void hal_hmac_done_callback(hmac_handle_t *p_hmac)
Digest Done callback.
@ HAL_HMAC_STATE_READY
Peripheral initialized and ready for use
uint32_t mode
Operating mode
uint32_t is_last_trans
Flag for last transfer
hal_hmac_state_t
HAL HMAC State enumerations definition.
uint32_t block_size
Data size in blocks (64 bytes per block)
hal_status_t hal_hmac_deinit(hmac_handle_t *p_hmac)
De-initialize the HMAC peripheral.
uint32_t * p_digest
Pointer to digest output buffer
uint32_t retention[17]
HMAC important register information.
uint32_t timeout
Timeout for the HMAC operation
Header file containing functions prototypes of HMAC LL library.
HAL_HMAC Callback function definition.
This file contains HAL common definitions, enumeration, macros and structures definitions.
@ HAL_HMAC_STATE_BUSY
Peripheral in indirect mode and busy