Go to the documentation of this file.
52 #ifndef __GR55xx_HAL_HMAC_H__
53 #define __GR55xx_HAL_HMAC_H__
196 #define HAL_HMAC_ERROR_NONE ((uint32_t)0x00000000)
197 #define HAL_HMAC_ERROR_TIMEOUT ((uint32_t)0x00000001)
198 #define HAL_HMAC_ERROR_TRANSFER ((uint32_t)0x00000002)
199 #define HAL_HMAC_ERROR_INVALID_PARAM ((uint32_t)0x00000004)
205 #define HMAC_MODE_SHA LL_HMAC_CALCULATETYPE_SHA
206 #define HMAC_MODE_HMAC LL_HMAC_CALCULATETYPE_HMAC
212 #define HMAC_BLOCK_MAX (512)
213 #define HMAC_BLOCKSIZE_BITS (512)
214 #define HMAC_BLOCKSIZE_BYTES (HMAC_BLOCKSIZE_BITS >> 3)
215 #define HMAC_BLOCKSIZE_WORDS (HMAC_BLOCKSIZE_BYTES >> 2)
216 #define HMAC_DIGESTSIZE_BITS (256)
217 #define HMAC_DIGESTSIZE_BYTES (HMAC_DIGESTSIZE_BITS >> 3)
218 #define HMAC_DIGESTSIZE_WORDS (HMAC_DIGESTSIZE_BYTES >> 2)
219 #define HMAC_DMA_BLOCK_MAX (512)
225 #define HMAC_FLAG_DATAREADY_SHA LL_HMAC_FLAG_DATAREADY_SHA
226 #define HMAC_FLAG_DATAREADY_HMAC LL_HMAC_FLAG_DATAREADY_HMAC
227 #define HMAC_FLAG_DMA_MESSAGEDONE LL_HMAC_FLAG_DMA_MESSAGEDONE
228 #define HMAC_FLAG_DMA_DONE LL_HMAC_FLAG_DMA_DONE
229 #define HMAC_FLAG_DMA_ERR LL_HMAC_FLAG_DMA_ERR
230 #define HMAC_FLAG_KEY_VALID LL_HMAC_FLAG_KEY_VALID
236 #define HAL_HMAC_KEYTYPE_MCU LL_HMAC_KEYTYPE_MCU
238 #define HAL_HMAC_KEYTYPE_AHB LL_HMAC_KEYTYPE_AHB
240 #define HAL_HMAC_KEYTYPE_KRAM LL_HMAC_KEYTYPE_KRAM
246 #define HMAC_IT_DONE ((uint32_t)0x00000001)
252 #define HAL_HMAC_TIMEOUT_DEFAULT_VALUE ((uint32_t)5000)
266 #define __HAL_HMAC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->state = HAL_HMAC_STATE_RESET)
272 #define __HAL_HMAC_ENABLE(__HANDLE__) SET_BITS((__HANDLE__)->p_instance->CTRL, HMAC_CTRL_ENABLE)
278 #define __HAL_HMAC_DISABLE(__HANDLE__) CLEAR_BITS((__HANDLE__)->p_instance->CTRL, HMAC_CTRL_ENABLE)
284 #define __HAL_HMAC_ENABLE_IT(__HANDLE__) ll_hmac_enable_it_done((__HANDLE__)->p_instance)
290 #define __HAL_HMAC_DISABLE_IT(__HANDLE__) ll_hmac_disable_it_done((__HANDLE__)->p_instance)
299 #define __HAL_HMAC_GET_FLAG_IT(__HANDLE__, __FLAG__) (READ_BITS((__HANDLE__)->p_instance->INTERRUPT, (__FLAG__)) == (__FLAG__))
308 #define __HAL_HMAC_CLEAR_FLAG_IT(__HANDLE__, __FLAG__) SET_BITS((__HANDLE__)->p_instance->INTERRUPT, (__FLAG__))
321 #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.
hal_status_t hal_hmac_sha256_digest_it(hmac_handle_t *p_hmac, uint32_t *p_message, uint32_t number, uint32_t *p_digest)
xxx in non-blocking mode with interrupt in SHA/HMAC 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/HMAC mode.
HMAC handle Structure definition.
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.
hal_status_t hal_hmac_sha256_digest_dma(hmac_handle_t *p_hmac, uint32_t *p_message, uint32_t number, uint32_t *p_digest)
xxx in non-blocking mode with DMA in SHA/HMAC mode.
This file contains HAL common definitions, enumeration, macros and structures definitions.
@ HAL_HMAC_STATE_BUSY
Peripheral in indirect mode and busy