本文介紹如何通過第三方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)證的方法。
- 進(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文件夾如下圖所示。
- 修改security/irot/se/Makefile為指向fm1280 SE驅(qū)動(dòng)的實(shí)現(xiàn)代碼,如下圖所示。
- 修改根目錄Makefile至se目錄,如下圖所示。
- 在根目錄下編譯id2_app。
make clean make
- 測試運(yùn)行id2_app。