CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!
无匹配项 共计114个匹配页面

HMAC驱动API描述

HMAC驱动的API主要包括:

表 182 HMAC驱动的APIs
API类别 API名称 描述

初始化

hal_hmac_init()

初始化HMAC外设,配置计算模式等参数。

hal_hmac_deinit()

反初始化HMAC外设。

hal_hmac_msp_init()

初始化HMAC外设所使用的NVIC中断、DMA通道。

hal_hmac_msp_deinit()

反初始化HMAC外设所使用的NVIC中断、DMA通道。

IO操作

hal_hmac_sha256_digest()

通过配置enable_irq和enable_dma_mode来区分使用轮询、中断和DMA计算模式。

通过配置mode来区分SHA还是HMAC模式。

中断处理及回调函数

hal_hmac_irq_handler()

中断处理函数。

hal_hmac_done_callback()

计算完成中断回调函数。

hal_hmac_error_callback()

错误中断回调函数。

状态及错误

hal_hmac_get_state()

获取驱动运行状态。

hal_hmac_get_error()

获取错误码。

控制

hal_hmac_set_timeout()

设置超时时间。

睡眠相关

hal_hmac_suspend_reg()

睡眠时挂起HMAC配置相关的寄存器。

hal_hmac_resume_reg()

唤醒时恢复HMAC配置相关的寄存器。

下面章节将对各API进行详细描述。

hal_hmac_init

表 183 hal_hmac_init接口
函数原型

hal_status_t hal_hmac_init(hmac_handle_t *p_hmac)

功能说明

根据hmac_init_t结构体里的参数初始化HMAC外设。

输入参数

p_hmac:指向hmac_handle_t结构体变量的指针,该结构体变量包含指定的HMAC配置信息。

返回值

HAL状态。

备注

hal_hmac_deinit

表 184 hal_hmac_deinit接口
函数原型

hal_status_t hal_hmac_deinit(hmac_handle_t *p_hmac)

功能说明

反初始化HMAC外设。

输入参数

p_hmac:指向hmac_handle_t结构体变量的指针,包含指定的寄存器基址。

返回值

HAL状态。

备注

hal_hmac_msp_init

表 185 hal_hmac_msp_init接口
函数原型

void hal_hmac_msp_init(hmac_handle_t *p_hmac)

功能说明

初始化HMAC外设所使用的NVIC中断等配置。

输入参数

p_hmac:指向hmac_handle_t结构体变量的指针。

返回值

备注

该函数为weak类型的空函数,开发者需重写该API完成NVIC中断、DMA通道的初始化。

hal_hmac_msp_deinit

表 186 hal_hmac_msp_deinit接口
函数原型

void hal_hmac_msp_deinit(hmac_handle_t *p_hmac)

功能说明

反初始化HMAC外设所使用的NVIC中断等配置。

输入参数

p_hmac:指向hmac_handle_t结构体变量的指针。

返回值

备注

该函数为weak类型的空函数,开发者需重写该API完成NVIC中断、DMA通道的反初始化。

hal_hmac_sha256_digest

表 187 hal_hmac_sha256_digest接口
函数原型

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)

功能说明

基于SHA-256计算消息摘要/签名,支持轮询、中断、DMA方式。

输入参数

p_hmac:指向hmac_handle_t结构体变量的指针。

p_message:指向待计算消息的指针。

number:待计算消息的长度,单位byte,最大取值为32768,且必须为64的整数倍。

p_digest:指向计算结果的指针。

timeout:计算超时时间,单位ms。

返回值

HAL状态。

备注

待计算消息数据量超过最大长度时,可分多次计算。

hal_hmac_irq_handler

表 188 hal_hmac_irq_handler接口
函数原型

void hal_hmac_irq_handler(hmac_handle_t *p_hmac)

功能说明

处理HMAC中断请求。

输入参数

p_hmac:指向hmac_handle_t结构体变量的指针。

返回值

备注

hal_hmac_done_callback

表 189 hal_hmac_done_callback接口
函数原型

void hal_hmac_done_callback(hmac_handle_t *p_hmac)

功能说明

HMAC计算完成回调函数。

输入参数

p_hmac:指向hmac_handle_t结构体变量的指针。

返回值

备注

中断或DMA方式下计算操作完成时该接口会被调用。该函数为weak类型的空函数,当开发者需要使用该回调函数时,可重写该API。

hal_hmac_error_callback

表 190 hal_hmac_error_callback接口
函数原型

void hal_hmac_error_callback(hmac_handle_t *p_hmac)

功能说明

HMAC计算错误回调函数。

输入参数

p_hmac:指向hmac_handle_t结构体变量的指针。

返回值

备注

中断或DMA方式下计算操作错误时该接口会被调用。该函数为weak类型的空函数,当开发者需要使用该回调函数时,可重写该API。

hal_hmac_get_state

表 191 hal_hmac_get_state接口
函数原型

hal_hmac_state_t hal_hmac_get_state(hmac_handle_t *p_hmac)

功能说明

获取HMAC运行状态。

输入参数

p_hmac:指向hmac_handle_t结构体变量的指针。

返回值

HMAC运行状态,该参数的取值可能是下列值中的任意一个:

  • HAL_HMAC_STATE_RESET(未初始化)
  • HAL_HMAC_STATE_READY(已初始化且空闲)
  • HAL_HMAC_STATE_BUSY(忙)
  • HAL_HMAC_STATE_ERROR(错误)
  • HAL_HMAC_STATE_TIMEOUT(超时)
  • HAL_HMAC_STATE_SUSPENDED(已挂起)
备注

hal_hmac_get_error

表 192 hal_hmac_get_error接口
函数原型

unit32_t hal_hmac_get_error(hmac_handle_t *p_hmac)

功能说明

获取HMAC错误码。

输入参数

p_hmac:指向hmac_handle_t结构体变量的指针。

返回值

HMAC错误码,该参数的取值可以是下列值中的任意一个:

  • HAL_HMAC_ERROR_NONE(无错误)
  • HAL_HMAC_ERROR_TIMEOUT(超时)
  • HAL_HMAC_ERROR_TRANSFER(传输错误)
  • HAL_HMAC_ERROR_INVALID_PARAM(非法参数)
备注

hal_hmac_set_timeout

表 193 hal_hmac_set_timeout接口
函数原型

void hal_hmac_set_timeout(hmac_handle_t *p_hmac)

功能说明

设置HMAC超时时间。

输入参数

p_hmac:指向hmac_handle_t结构体变量的指针。

返回值

备注

hal_hmac_suspend_reg

表 194 hal_hmac_suspend_reg接口
函数原型

hal_status_t hal_hmac_suspend_reg(hmac_handle_t *p_hmac)

功能说明

睡眠时挂起HMAC配置相关的寄存器

输入参数

p_hmac:指向hmac_handle_t结构体变量的指针。

返回值

HAL状态

备注

hal_hmac_resume_reg

表 195 hal_hmac_resume_reg接口
函数原型

hal_status_t hal_hmac_resume_reg(hmac_handle_t *p_hmac)

功能说明

唤醒时恢复HMAC配置相关的寄存器

输入参数

p_hmac:指向hmac_handle_t结构体变量的指针。

返回值

HAL状态

备注

扫描关注

打开微信,使用“扫一扫”即可关注。