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 向请求者发送请求,然后请求者发送回结果。