RSA

简要说明

RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。

接口描述

csi_rsa_initialize

rsa_handle_t csi_rsa_initialize(int32_t idx, rsa_event_cb_t cb_event)
  • 功能描述:

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

  • 参数:

    idx: 设备号。

    cb_event:rsa实例的事件回调函数。回调函数原型定义见rsa_event_cb_t。

    • 回调函数类型rsa_event_cb_t定义如下:

      typedef void (*rsa_event_cb_t)(int32_t idx, rsa_event_e event);
      

      其中event 为传给回调函数的事件类型,rsa回调事件枚举见类型 rsa_event_e 定义。

  • 返回值:

    NULL: 初始化失败。

    其它: 实例句柄。

rsa_event_e:

名字 定义 备注
RSA_EVENT_ENCRYPT_COMPLETE RSA加密完成事件
RSA_EVENT_DECRYPT_COMPLETE RSA解密完成事件
RSA_EVENT_SIGN_COMPLETE RSA签名完成事件
RSA_EVENT_VERIFY_COMPLETE RSA校验完成事件

csi_rsa_uninitialize

int32_t csi_rsa_uninitialize(rsa_handle_t handle)
  • 功能描述:

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

  • 参数:

    handle: 实例句柄。

  • 返回值:

    错误码。

csi_rsa_power_control

int32_t csi_rsa_power_control(rsa_handle_t handle, csi_power_stat_e state)
  • 功能描述:

    配置设备实例的功耗模式。

  • 参数:

    handle: 实例句柄。

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

  • 返回值:

    错误码。

csi_rsa_get_capabilities

rsa_capabilities_t csi_rsa_get_capabilities(int32_t idx)
  • 功能描述:

    获取rsa实例支持的能力。

  • 参数:

    idx: 设备号。

  • 返回值:

    描述rsa能力的结构体,rsa的能力定义见 rsa_capabilities_t 。

rsa_capabilities_t:

名字 定义 备注
uint32_t bits_192 :1 支持192bits模式
uint32_t bits_256 :1 支持256bits模式
uint32_t bits_512 :1 支持512bits模式
uint32_t bits_1024 :1 支持1024bits模式
uint32_t bits_2048 :1 支持2048bits模式
uint32_t bits_3072 :1 支持3072bits模式

csi_rsa_config

int32_t csi_rsa_config(rsa_handle_t handle,
                       rsa_data_bits_e data_bits,
                       rsa_endian_mode_e endian,
                       void *arg)
  • 功能描述:

    配置rsa实例的bit长度及大小端模式。

  • 参数:

    handle: 实例句柄。

    data_bits: rsa 数据长度,参看rsa_data_bits_e定义。

endian: rsa 的大小端模式,参看rsa_endian_mode_e 的定义。

arg: 传模值的地址。

  • 返回值:

    错误码。

rsa_data_bits_e:

名字 定义 备注
RSA_DATA_BITS_192 192bits长度
RSA_DATA_BITS_256 256bits长度
RSA_DATA_BITS_512 512bits长度
RSA_DATA_BITS_1024 1024bits长度
RSA_DATA_BITS_2048 2048bits长度
RSA_DATA_BITS_3072 3072bits长度

rsa_endian_mode_e:

名字 定义 备注
RSA_ENDIAN_MODE_LITTLE RSA 小端模式
RSA_ENDIAN_MODE_BIG RSA 大端模式

csi_rsa_encrypt

int32_t csi_rsa_encrypt(rsa_handle_t handle, void *n, void *e, void *src, uint32_t src_size,
                        void *out, uint32_t *out_size, rsa_padding_t padding)
  • 功能描述:

    rsa 加密。

  • 参数:

    handle: 实例句柄。

    n: rsa的模值的缓冲区地址。

    e: rsa公钥的缓冲区地址。

    src: 明文的缓冲区地址。

    src_size: 明文的长度。

    out: 加密结果的缓冲区地址。

    out_size: 加密数据的长度缓冲区地址。

    padding: padding 模式,参见 rsa_padding_t 。

  • 返回值:

    错误码。

rsa_padding_t:

名字 定义 备注
rsa_padding_type_e padding_type Padding 类型
rsa_hash_type_e hash_type Padding 的哈希类型

rsa_padding_type_e:

名字 定义 备注
RSA_PADDING_MODE_PKCS1 PKCS1 PADDING 模式
RSA_PADDING_MODE_NO NO PADDING 模式
RSA_PADDING_MODE_SSLV23 SSLV23 PADDING 模式
RSA_PADDING_MODE_PKCS1_OAEP PKCS1_OAEP PADDING 模式
RSA_PADDING_MODE_X931 X931 PADDING 模式
RSA_PADDING_MODE_PSS PSS PADDING 模式

rsa_hash_type_e:

名字 定义 备注
RSA_HASH_TYPE_MD5 MD5类型
RSA_HASH_TYPE_SHA1 SHA1类型
RSA_HASH_TYPE_SHA224 SHA224类型
RSA_HASH_TYPE_SHA256 SHA256类型
RSA_HASH_TYPE_SHA384 SHA384类型
RSA_HASH_TYPE_SHA512 SHA512类型

csi_rsa_decrypt

int32_t csi_rsa_decrypt(rsa_handle_t handle, void *n, void *d, void *src, uint32_t src_size,
                        void *out, uint32_t *out_size, rsa_padding_t padding)
  • 功能描述:

    rsa 解密。

  • 参数:

    handle: 实例句柄。

    n: rsa的模值的缓冲区地址。

    d: rsa私钥的缓冲区地址。

    src: 密文的缓冲区地址。

    src_size: 密文的长度。

    out: 解密结果的缓冲区地址。

    out_size: 解密数据的长度缓冲区地址。

    padding: padding 模式,参见 rsa_padding_t 。

  • 返回值:

    错误码。

csi_rsa_sign

int32_t csi_rsa_sign(rsa_handle_t handle, void *n, void *d, void *src, uint32_t src_size,
                     void *signature, uint32_t *sig_size, rsa_padding_t padding)
  • 功能描述:

    rsa 签名。

  • 参数:

    handle: 实例句柄。

    n: rsa的模值的缓冲区地址。

    d: rsa私钥的缓冲区地址。

    src: 输入数据的缓冲区地址。

    src_size: 输入数据的长度。

    signature: 签名结果的缓冲区地址。

    sig_size: 签名结果的长度缓冲区地址。

    padding: padding 模式,参见 rsa_padding_t 。

  • 返回值:

    错误码。

csi_rsa_verify

int32_t csi_rsa_verify(rsa_handle_t handle, void *n, void *e, void *src, uint32_t src_size,
                       void *signature, uint32_t sig_size, void *result, rsa_padding_t padding)
  • 功能描述:

    rsa 验签。

  • 参数:

    handle: 实例句柄。

    n: rsa的模值的缓冲区地址。

    e: rsa公钥的缓冲区地址。

    src: 输入数据的缓冲区地址。

    src_size: 输入数据的长度。

    signature: 签名结果的缓冲区地址。

    sig_size: 签名结果的长度。

    result: 验签的结果。

    padding: padding 模式,参见 rsa_padding_t 。

  • 返回值:

    错误码。

csi_rsa_get_status

rsa_status_t csi_rsa_get_status(rsa_handle_t handle)
  • 功能描述:

    获取当前时刻rsa的状态。

  • 参数:

    handle: 实例句柄。

  • 返回值:

    rsa状态的结构体,rsa的状态定义见 rsa_status_t \<rsa_status_t\ 。

rsa_status_t:

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

results matching ""

    No results matching ""