全部产品

设备端适配:ID²-SE在AliOS Things上适配

更新时间:2019-11-03 23:49:45

该文档介绍了通过AliOS Things集成ID²-SE的操作说明。以平台stm32f103vb-fmse为例,使用的国密芯片为fm1280。

ID²-SE在AliOS Things上适配

1. 适配SE芯片驱动接口

根据SE芯片驱动的控制方式,需要适配以下3个驱动接口。参考 SE 芯片驱动API文档

1.1 适配se_open_session

  1. irot_result_t se_open_session(void** handle)
  2. {
  3. // 示例代码:SE 初始化,打开SE芯片电源
  4. fm_open_device();
  5. fm_device_init();
  6. fm_dev_power_on();
  7. }

1.2 适配se_transmit

  1. irot_result_t se_transmit(void* handle, const uint8_t* cmd_apdu, const uint32_t cmd_len, uint8_t* rsp_buf, uint32_t* rsp_len)
  2. {
  3. // 示例代码:发送apdu指令,并获取response
  4. result = pfm_SeFunc->fm_apdu_transceive(xxx)
  5. }

1.3 适配se_close_session

  1. irot_result_t se_close_session(void* handle)
  2. {
  3. // 示例代码:关闭设备,关闭SE芯片电源
  4. fm_close_device();
  5. fm_power_off();
  6. }

进入AliOSThings/security/irot/se/aos.mk,添加对应SE芯片名称的文件夹fm1280,将SE芯片驱动的实现代码放进去。并设置SE_CHIP_NAME为fm1280:
aos.mk内容如下:
image.png

集成fm1280 SE驱动接口实现后,se文件夹结构如下:
image.png

2. AliOSThings平台配置和编译

2.1 确定设备名称,进入AliOSThings/board/stm32f103vb-fmse/aos.mk,CONFIG_SYSINFO_DEVICE_NAME为ESP32,如下图:
image.png

2.2 在aos.mk中添加如下Config,设置CONFIG_LS_KM_SE为y,CONFIG_LS_ID2_OTP为n
image.png

2.3 编译id2测试app
aos make id2_app@stm32f103vb-fmse -c config
确定编译结果中依赖的库是libkm_se
image.png

2.4 通过烧录工具烧写binary到平台并测试
binary存放位置为:out/id2_app@stm32f103vb-fmse/binary/id2_app@stm32f103vb-fmse.bin

3. 服务端验证调试结果

登录ID²控制台,通过自主验证 来验证前一步骤的测试结果。
如果验证成功,至此ID²-SE在第三方OS上的适配工作基本完成