TEE(可信執行環境)使用者空間 API

include/uapi/linux/tee.h 定義了到 TEE 的通用介面。

使用者空間(客戶端)透過開啟 /dev/tee[0-9]* 或 /dev/teepriv[0-9]* 連線到驅動程式。

  • TEE_IOC_SHM_ALLOC 分配共享記憶體並返回一個檔案描述符,使用者空間可以使用 mmap 進行對映。當用戶空間不再需要檔案描述符時,應該將其關閉。當不再需要共享記憶體時,應該使用 munmap() 取消對映,以便重用記憶體。

  • TEE_IOC_VERSION 讓使用者空間知道此驅動程式處理哪個 TEE 及其功能。

  • TEE_IOC_OPEN_SESSION 開啟到可信應用程式的新會話。

  • TEE_IOC_INVOKE 呼叫可信應用程式中的函式。

  • TEE_IOC_CANCEL 可能會取消正在進行的 TEE_IOC_OPEN_SESSION 或 TEE_IOC_INVOKE。

  • TEE_IOC_CLOSE_SESSION 關閉到可信應用程式的會話。

客戶端有兩種型別:普通客戶端和請求者。後者是 TEE 的輔助程序,用於訪問 Linux 中的資源,例如檔案系統訪問。普通客戶端開啟 /dev/tee[0-9]*,請求者開啟 /dev/teepriv[0-9]。

客戶端和 TEE 之間的大部分通訊對於驅動程式是不透明的。驅動程式的主要工作是接收來自客戶端的請求,將其轉發到 TEE 併發回結果。在請求者的情況下,通訊方向相反,TEE 向請求者傳送請求,然後請求者發回結果。