本文介绍如何通过第三方OS(非AliOS Things)和ID² Client SDK完成ID²-SE的对接。

ID² Client SDK是阿里云IoT安全团队为SE安全芯片厂商提供的能够进行自主移植和SE功能验证的工具。其原理如下图所示。

芯片流程

了解ID² Client SDK的基本信息,请参考下面的表格。

ID² Client SDK 说明
下载地址 请单击ID² Client SDK下载。
使用方法 请参考ID² Client SDK中的readme说明。
API 请参考设备端API
说明 ID² Client SDK基于ID²设备端SDK进行了精简,ID² Client SDK与ID²设备端SDK共同一套API手册。

适配ID² Client SDK

参考设备端SDK 适配手册适配OSA基础功能接口。您需要实现如下接口:

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

第三方OS集成SE芯片最佳实践

为便于芯片厂商理解ID²功能接口的作用,ID² Client SDK提供了一个简单的Demo,用来保存样例ID²密钥和验证测试程序id2_app的功能。芯片厂商拿到该开源的ID² client SDK,适配好以上OSA各个基础API后,可以参考这个Demo的方式,编译并链接出完整的id2_app,进行ID²接口功能的调试和验证。但您最终还是需要切换到SE安全芯片的方式。

下面以stm32f103vb-fmse平台,使用fm1280国密SE芯片为例,介绍ID²接口功能的调试和验证的方法。

  1. 进入modules/irot/se/chipset目录,新建文件夹fm1280(fm1280对应SE芯片的名称),在文件夹内放入SE芯片驱动的实现代码se_driver.c以及相关依赖文件。

    SE芯片驱动需要对接的接口为se_open_session/se_transmit/se_close_session。接口详细信息,请参考SE 芯片驱动API文档

    修改完成后的fm1280文件夹如下图所示。

    添加依赖
  2. 修改security/irot/se/Makefile为指向fm1280 SE驱动的实现代码,如下图所示。修改makefile
  3. 修改根目录Makefile至se目录,如下图所示。切换至se目录
  4. 在根目录下编译id2_app。
    make clean
    make
  5. 测试运行id2_app。