本文介紹如何通過第三方OS(非AliOS Things)和ID2 Client SDK完成ID2-SE的對接。

ID2 Client SDK是阿里云IoT安全團(tuán)隊(duì)為SE安全芯片廠商提供的能夠進(jìn)行自主移植和SE功能驗(yàn)證的工具。其原理如下圖所示。

芯片流程

了解ID2 Client SDK的基本信息,請參考下面的表格。

ID2 Client SDK 說明
下載地址 請單擊ID2 Client SDK下載。
使用方法 請參考ID2 Client SDK中的readme說明。
API 請參考設(shè)備端API
說明 ID2 Client SDK基于ID2設(shè)備端SDK進(jìn)行了精簡,ID2 Client SDK與ID2設(shè)備端SDK共同一套API手冊。

適配ID2 Client SDK

參考設(shè)備端SDK 適配手冊適配OSA基礎(chǔ)功能接口。您需要實(shí)現(xiàn)如下接口:

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芯片最佳實(shí)踐

為便于芯片廠商理解ID2功能接口的作用,ID2 Client SDK提供了一個(gè)簡單的Demo,用來保存樣例ID2密鑰和驗(yàn)證測試程序id2_app的功能。芯片廠商拿到該開源的ID2 client SDK,適配好以上OSA各個(gè)基礎(chǔ)API后,可以參考這個(gè)Demo的方式,編譯并鏈接出完整的id2_app,進(jìn)行ID2接口功能的調(diào)試和驗(yàn)證。但您最終還是需要切換到SE安全芯片的方式。

下面以stm32f103vb-fmse平臺,使用fm1280國密SE芯片為例,介紹ID2接口功能的調(diào)試和驗(yàn)證的方法。

  1. 進(jìn)入modules/irot/se/chipset目錄,新建文件夾fm1280(fm1280對應(yīng)SE芯片的名稱),在文件夾內(nèi)放入SE芯片驅(qū)動(dòng)的實(shí)現(xiàn)代碼se_driver.c以及相關(guān)依賴文件。

    SE芯片驅(qū)動(dòng)需要對接的接口為se_open_session/se_transmit/se_close_session。接口詳細(xì)信息,請參考SE 芯片驅(qū)動(dòng)API文檔

    修改完成后的fm1280文件夾如下圖所示。

    添加依賴
  2. 修改security/irot/se/Makefile為指向fm1280 SE驅(qū)動(dòng)的實(shí)現(xiàn)代碼,如下圖所示。修改makefile
  3. 修改根目錄Makefile至se目錄,如下圖所示。切換至se目錄
  4. 在根目錄下編譯id2_app。
    make clean
    make
  5. 測試運(yùn)行id2_app。