所有文档

          函谷物联安全系统 HISK

          安全载体厂商接入说明

          接入流程

          安全载体厂商注册

          安全载体厂商通过填写申请表方式进行注册,注册后会有工作人员根据您填写的联系方式进行回访。通过审核之后,方可进行后续流程。

          安全载体厂商芯片功能验证

          安全载体厂商注册完成,需要参考安全载体SDK适配中描述的相关接口 ,进行测试开发并需要完成对应的相关功能验证。安全载体厂商需要抽象和芯片交互的设备驱动接口,具体的驱动接口由设备厂商实现。

          产品线对接ID中心

          函谷物联安全系统与安全载体厂商进行服务对接的时候,需要厂商的产线与函谷物联安全系统的ID中心进行服务的对接来交换相关的测试和安全数据。

          目前通过服务对接,ID中心传输如下信息给安全载体厂商:

          • 设备的唯一身份标识
          • 设备个人化数据

          为了保证对接过程的安全性,需要使用安全方式进行数据交换。

          密钥

          安全载体中的密钥是保证设备进行安全传输的关键,对于不同的场景需要采用不同的加密方式,当前函谷物联安全系统支持的类型密钥:RSA-1024。其他密钥方式,敬请期待。

          安全载体SDK适配

          HISK SDK封装了底层安全载体、接口的操作细节,其具体的功能实现依赖底层的安全载体SDK,故安全载体厂商需要适配移植安全载体SDK的相关SAL(Security Abstract Level)接口,如下为具体接口定义。

          预定义类型

          原类型 typedef类型
          unsigned char U8
          unsigned short U16
          unsigned long U32

          获取密钥分散因子

          方法 接口说明
          U16 sal_get_se_id(U8 *se_id, U16 *id_len); 获取密钥分散因子

          请求参数

          参数名称 参数类型 输入/输出 说明
          se_id U8 * in/out 入参为存放安全载体唯一编号字串buf的起始地址,出参时buf中存储安全载体唯一编号,长度不大于32位
          id_len U16 * in/out 入参为安全载体唯一编号的buf长度,出参为SE编号字串的实际长度

          返回参数

          类型 说明
          U16 方法执行结果,0 表示成功,失败参考设备错误码

          获取设备ID

          方法 接口说明
          U16 sal_get_device_id(U8 *id, const U16 id_len); 获取设备ID

          请求参数

          参数名称 参数类型 输入/输出 说明
          id U8 * in/out 入参为存放设备ID字串的buf起始地址,出参时buf中存储设备ID,长度为16字节
          id_len const U16 in 设备ID的长度

          返回参数

          类型 说明
          U16 方法执行结果,0 表示成功,失败参考设备错误码

          非对称加解密

          方法 接口说明
          U16 sal_asymmetric_crypt(U8 *in_data, U16 in_data_len, U8 asymm_mode, U8 asymm_type, U8 key_index, U8 *out_data, U16 *out_data_len); 非对称加密解密

          请求参数

          参数名称 参数类型 输入/输出 说明
          in_data U8 * in 存放输入的数据起始地址
          in_data_len U16 in 输入的数据长度
          asymm_mode U8 in 非对称加解密类型
          asymm_type U8 in 非对称算法
          key_index U8 in 使用的密钥
          out_data U8 * in/out 入参为存放输出的数据buf起始地址,出参时buf中存储处理的数据
          out_data_len U16 * in/out 入参为参数out_data的buf长度,出参为实际长度

          返回参数

          类型 说明
          U16 方法执行结果,0 表示成功,失败参考设备错误码

          非对称加解密类型

          类型 说明
          0x51 AsymEncrypt
          0x52 AsymDecrypt
          0x53 AsymSign
          0x54 AsymVerifySign

          非对称算法

          类型 说明
          0x00 RSA_NOPADDING
          0x01 RSA_SHA1_PKCS1
          0x02 RSA_SHA256_PKCS1
          0x03 RSA_SHA384_PKCS1
          0x04 RSA_SHA512_PKCS1
          0x05 SM2_SM3
          0x06 ECDSA

          对称加解密

          方法 接口说明
          U16 sal_symmetric_crypt(U8 *in_data, U16 in_data_len, U8 symm_mode, U8 symm_type, U8 key_index, U8 *out_data, U16 *out_data_len); 对称加密解密

          请求参数

          参数名称 参数类型 输入/输出 说明
          in_data U8 * in 存放输入的数据起始地址
          in_data_len U16 in 输入的数据长度
          symm_mode U8 in 对称加解密类型
          symm_type U8 in 对称算法
          key_index U8 in 使用的密钥
          out_data U8 * in/out 入参为存放输出数据的buff起始地址,出参时buf中存储处理的数据
          out_data_len U16 * in/out 入参为参数out_data的buf长度,出参为实际长度

          返回参数

          类型 说明
          U16 方法执行结果,0 表示成功,失败参考设备错误码

          对称加解密类型

          类型 说明
          0x51 Encrypt
          0x52 Decrypt
          0x53 SignMac
          0x54 VerifyMac

          对称算法

          类型 说明
          0x00 DES_CBC_NOPADDING
          0x01 DES_ECB_NOPADDING
          0x02 AES_CBC_NOPADDING
          0x03 AES_ECB_NOPADDING
          0x04 DES_CBC_ISO9797_M1
          0x05 DES_CBC_ISO9797_M2
          0x06 AES_CBC_ISO9797_M1
          0x07 AES_CBC_ISO9797_M2

          签名计算

          方法 接口说明
          U16 sal_compute_digest(U8 *data, const U16 data_len, U8 *digest, U16 *digest_len, const U8 hash_type); 计算摘要

          请求参数

          参数名称 参数类型 输入/输出 说明
          data U8 * in 存放计算摘要的原始数据起始地址
          data_len const U16 in 计算摘要的原始数据的长度
          digest U8 * in/out 入参为存放摘要的buff起始地址,出参时buf中存储计算的摘要
          digest_len U16 * in/out 入参为参数out_data的buf长度,出参为实际长度
          hash_type const U8 in 计算摘要的算法

          返回参数

          类型 说明
          U16 方法执行结果,0 表示成功,失败参考设备错误码

          计算摘要算法

          类型 说明
          0x00 SHA1
          0x01 SHA224
          0x02 SHA256
          0x03 SHA384
          0x04 SHA512

          开启事务

          方法 接口说明
          U16 sal_open_session(); 与安全载体交互前开启事务,设备可以进行上电和初始化

          返回参数

          类型 说明
          U16 方法执行结果,0 表示成功,失败参考设备错误码

          关闭事务

          方法 接口说明
          U16 sal_close_session(); 与安全载体交互结束,设备可以进行下电以及清理

          返回参数

          类型 说明
          U16 方法执行结果,0 表示成功,失败参考设备错误码

          选中安全应用

          方法 接口说明
          U16 sal_select_application(); 选中安全载体中交互的应用

          返回参数

          类型 说明
          U16 方法执行结果,0 表示成功,失败参考设备错误码

          设备端错误码

          返回值 描述
          0x9000 执行正确
          0x7021 未知安全载体类型错误
          上一篇
          设备厂商使用说明
          下一篇
          API参考