TA必备接口
每个TA都必须实现表1中的五个接口函数,实现TA和CA之间通信和数据传递。
函数名称 |
函数介绍 |
---|---|
TA_CreateEntryPoint |
安全服务的构造函数接口,该接口在客户端应用第一次打开会话并创建TA实例时得到调用。如果此函数执行失败,则该TA实例构建失败。 |
TA_DestroyEntryPoint |
安全服务的析构函数接口,该接口在客户端应用关闭会话并销毁TA实例时得到调用。 |
TA_OpenSessionEntryPoint |
当客户端应用打开会话时,安全OS会调用对应TA的此接口在安全世界创建一个会话。 |
TA_CloseSessionEntryPoint |
当客户端应用关闭会话时,安全OS会调用对应TA的此接口在安全世界关闭会话。 |
TA_InvokeCommandEntryPoint |
当客户端应用发送命令(TEEC_InvokeCommand)给安全OS时,安全OS会调用对应TA的此接口在安全世界执行相应操作,比如加解密,安全存储等。 |
除CA和TA间可以建立连接和通信外,也支持TA与TA间的连接和通信(TA2TA)。使用时请遵守如下规则:
- 调用TA可通过TEE_OpenTASession、TEE_InvokeTACommand、TEE_CloseTASession等接口分别打开会话、发送命令和关闭会话。被调用TA需要在执行TA_CreateEntryPoint函数时调用AddCaller_TA_all,允许其他TA调用自己,并可在执行TA_OpenSessionEntryPoint函数时通过TEE_EXT_GetCallerInfo获取调用者信息和鉴权。
- TEEOS 1.4.0版本之前,发起TA2TA调用时,被调用TA需处于已加载状态。TEEOS 1.4.0版本后,支持动态加载,若未加载,则将去默认加载路径加载TA,默认路径为“/var/itrustee/ta”。
- 若TA2TA使用共享内存传递敏感数据,需要TA开发者注意保护数据机密性与完整性。
父主题: CA与TA之间的通信过程