全部产品
云市场

5.1,ID²-KM在三方OS上适配

更新时间:2019-08-22 11:01:39

该文档介绍了如何在其他的OS上通过ID²-KM的方式完成设备端的适配。

适配

1,首先适配OSA基础功能接口。API接口详情参照安全SDK API
需要芯片/模组厂商实现的接口如下:

  1. void ls_osa_print(const char *fmt, …)
  2. int ls_osa_snprintf(char *str, size_t size, const char *fmt, ...)
  3. void *ls_osa_malloc(size_t size)
  4. void ls_osa_free(void *ptr)
  5. long long ls_osa_get_time_ms(void)

2,如果需要用到多线程的场景,则需要实现OSA多线程管理接口,否则可以直接返回0(对int类型的函数)或者直接返回(对void类型函数)。
需要芯片/模组厂商实现的接口如下:

  1. int ls_osa_mutex_create(void **mutex)
  2. void ls_osa_mutex_destroy(void *mutex)
  3. int ls_osa_mutex_lock(void *mutex)
  4. int ls_osa_mutex_unlock(void *mutex)

3,如果需要使用安全SDK 安全连接服务(iTLS),则需要实现OSA网络操作接口,否则可以直接返回0。
需要芯片/模组厂商实现的接口如下:

  1. int ls_osa_net_connect(const char *host, const char *port, int type)
  2. void ls_osa_net_disconnect(int fd)
  3. int ls_osa_net_send(int fd, unsigned char *buf, size_t len, int *ret_orig)
  4. int ls_osa_net_recv(int fd, unsigned char *buf, size_t len, int timeout, int *ret_orig)

4,适配Soft-KM HAL接口。(定义见 安全SDK函数接口说明- Soft-KM HAL接口):
需要芯片/模组厂商实现的接口如下:

  1. int ls_hal_get_dev_id(uint8_t *dev_id, uint32_t *id_len)
  2. int ls_hal_open_rsvd_part(int flag)
  3. int ls_hal_write_rsvd_part(int fd, uint32_t offset, void *data, uint32_t data_len)
  4. int ls_hal_read_rsvd_part(int fd, uint32_t offset, void *buffer, uint32_t read_len)
  5. int ls_hal_close_rsvd_part(int fd)

注意:
如果您不需要2、3中的接口,为防止编译过程中出现对应symbol找不到的问题,请在实现中直接return或者返回0。
代码示例(以网络接口为例):

  1. /* for void type, directly return */
  2. void ls_osa_net_disconnect(int fd) {
  3. return;
  4. }
  5. /* for int type, return 0 */
  6. int ls_osa_net_connect(const char *host, const char *port, int type) {
  7. return 0;
  8. }

适配验证

编译并运行hal_test,显示结果如下:

  1. 显示结果。