SHA

简要说明

SHA(Secure Hash Algorithm)安全哈希算法是一个种散列算法,接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码,并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。可用于实现数字签名。

接口描述

csi_sha_initialize

sha_handle_t csi_sha_initialize(int32_t idx, void *context, sha_event_cb_t cb_event)
  • 功能描述:

    • 通过传入设备数初始化对应的sha实例,返回sha实例的句柄。
  • 参数:

    • idx: 设别号。

    • context: 保存sha context。

    • cb_event: sha实例的事件回调函数。回调函数原型定义见sha_event_cb_t。

      回调函数类型sha_event_cb_t定义如下:

      typedef void (*sha_event_cb_t)(int32_t idx, sha_event_e event);
      

      其中idx为设备号,event 为传给回调函数的事件类型,sha回调事件枚举类型见 sha_event_e定义。

  • 返回值:

    • NULL: 初始化失败。

    • 其它: 实例句柄。

sha_event_e:

名字 定义 备注
SHA_EVENT_COMPLETE 计算完成事件

csi_sha_uninitialize

int32_t csi_sha_uninitialize(sha_handle_t handle)
  • 功能描述:

    • sha实例反初始化。该接口会停止sha实例正在进行的工作(如果有),并且释放相关的软硬件资源。
  • 参数:

    • handle: 实例句柄。
  • 返回值:

    • 错误码。

csi_sha_power_control

int32_t csi_sha_power_control(sha_handle_t handle, csi_power_stat_e state)
  • 功能描述:

    • 配置设备实例的功耗模式。
  • 参数:

    • handle: 实例句柄。

    • state: 设备实例的功耗模式,参看 csi_power_stat_e 的定义。

  • 返回值:

    • 错误码。

csi_power_stat_e:

名字 定义 备注
DRV_POWER_OFF 关电源状态
DRV_POWER_LOW 低电平状态
DRV_POWER_FULL 全电源状态
DRV_POWER_SUSPEND 挂起电源状态

csi_sha_get_capabilities

sha_capabilities_t csi_sha_get_capabilities(int32_t idx)
  • 功能描述:

    • 获取sha实例支持的能力。
  • 参数:

    • idx: 设备号。
  • 返回值:

    • 描述sha能力的结构体,sha的能力定义见 sha_capabilities_t。

sha_capabilities_t:

名字 定义 备注
uint32_t sha1 :1 支持sha1模式
uint32_t sha224 :1 支持sha224模式
uint32_t sha256 :1 支持sha256模式
uint32_t sha384 :1 支持sha384模式
uint32_t sha512 :1 支持sha512模式
uint32_t sha512_224 :1 支持sha512_224模式
uint32_t sha512_256 :1 支持sha512_256模式
uint32_t endianmode :1 大小端模式
uint32_t interruptmode :1 中断模式

csi_sha_config

int32_t csi_sha_config(sha_handle_t handle,
                       sha_mode_e mode,
                       sha_endian_mode_e endian)
  • 功能描述:

    • 配置sha实例的工作模式及大小端模式。
  • 参数:

    • handle: 实例句柄。

    • mode: sha 模式,参看 sha_mode_e 定义。

    • endian: sha 大小端模式,参看 sha_endian_mode_e的定义。

  • 返回值:

    • 错误码。

sha_mode_e:

名字 定义 备注
SHA_MODE_1 SHA1模式
SHA_MODE_224 SHA224模式
SHA_MODE_256 SHA256模式
SHA_MODE_512 SHA512模式
SHA_MODE_384 SHA384模式
SHA_MODE_512_224 SHA512_224模式
SHA_MODE_512_256 SHA512_256模式

sha_endian_mode_e:

名字 定义 备注
SHA_ENDIAN_MODE_BIG SHA 大端模式
SHA_ENDIAN_MODE_LITTLE SHA 小端模式

csi_sha_start

int32_t csi_sha_start(sha_handle_t handle, void *context)
  • 功能描述:

    • 开始sha计算。
  • 参数:

    • handle: 实例句柄。

    • context: sha的context的缓冲区地址。

  • 返回值:

    • 错误码。

csi_sha_update

int32_t csi_sha_update(sha_handle_t handle, void *context, const void *input, uint32_t len)
  • 功能描述:

    • 更新sha的计算。
  • 参数:

    • handle: 实例句柄。

    • context: sha的context的缓冲区。

    • input: 待输入数据的缓冲区地址。

    • len : 待输入的数据的长度。

  • 返回值:

    • 错误码。

csi_sha_finish

int32_t csi_sha_finish(sha_handle_t handle, void *context, void *output)
  • 功能描述:

    • 计算sha的最后一次hash。
  • 参数:

    • handle: 实例句柄。

    • context: sha的context的缓冲区地址。

    • output: 待接收的hash结果的缓冲区地址。

  • 返回值:

    • 错误码。

csi_sha_get_status

sha_status_t csi_sha_get_status(sha_handle_t handle)
  • 功能描述:

    • 获取当前时刻sha的状态。
  • 参数:

    • handle: 实例句柄。
  • 返回值:

    • sha状态的结构体,sha的状态定义见 sha_status_t。

sha_status_t:

名字 定义 备注
uint32_t busy :1 计算忙

results matching ""

    No results matching ""