Globalplatform TEE api介绍
生活随笔
收集整理的這篇文章主要介紹了
Globalplatform TEE api介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1、TEE API介紹
- 2、Client API : CA與TA通信的API介紹
- 3、TEE API : TA系統調用TEE OS的API
- (1)、Asymmetric
- (2)、Authenticated Encryption
- (3)、Basic Arithmetic
- (4)、Cancellation
- (5)、Converter
- (6)、Data Stream Access
- (7)、Deprecated
- (8)、Events
- (9)、Fast Modular Multiplication
- (10)、Generic Object
- (11)、Generic Operation
- (12)、Initialization
- (13)、Internal Client API
- (14)、Key Derivation
- (15)、Logical Operation
- (16)、MAC
- (17)、Memory Allocation and Size of Objects
- (18)、Memory Management
- (19)、Message Digest
- (20)、Modular Arithmetic
- (21)、Other Arithmetic
- (22)、Panic Function
- (23)、Peripherals
- (24)、Persistent Object
- (25)、Persistent Object Enumeration
- (26)、Property Access
- (27)、Random Data Generation
- (28)、Symmetric Cipher
- (29)、TA Interface
- (30)、Time
- (31)、Transient Object
★★★ 友情鏈接 : 個人博客導讀首頁—點擊此處 ★★★
1、TEE API介紹
TEE API分兩種:
- 一類是CA與TA通信的API,實現方式就是應用程序調用libteec.so庫,libteec.so庫是由optee_client編譯出的,libteec.so中調用了dev/tee_priv節點陷入kernel
mode,在kernel mode中調用smc同步異常指令陷入到ATF,ATF再跳出到TEE OS, TEE
OS再將消息發送給相應的TA。
該API在globalplatform中的TEE_Client_API_Specification-V1.0_c.pdf文檔中有所規定,api的具體實現是在optee_client/libteec - 一類是TA系統調用TEE OS的API,這是的實現方式其實就是系統調用,調用SVC同步異常指令,進入kernel mode。
該API在globalplatform中的GPD_TEE_Internal_Core_API_Specification_v1.1.pdf文檔中有所規定,api的具體實現是在optee_os\lib\libutee
2、Client API : CA與TA通信的API介紹
這類api不到10個(一共9個)
TEEC_InitializeContext TEEC_FinalizeContext TEEC_RegisterSharedMemory TEEC_AllocateSharedMemory TEEC_ReleaseSharedMemory TEEC_OpenSession TEEC_CloseSession TEEC_InvokeCommand TEEC_RequestCancellation3、TEE API : TA系統調用TEE OS的API
這類api就有很多了,也分好幾類:
(1)、Asymmetric
TEE_AsymmetricDecrypt TEE_AsymmetricEncrypt TEE_AsymmetricSignDigest TEE_AsymmetricVerifyDigest(2)、Authenticated Encryption
TEE_AEDecryptFinal TEE_AEEncryptFinal TEE_AEInit TEE_AEUpdate TEE_AEUpdateAAD(3)、Basic Arithmetic
TEE_BigIntAdd TEE_BigIntDiv TEE_BigIntMul TEE_BigIntNeg TEE_BigIntSquare TEE_BigIntSub(4)、Cancellation
TEE_GetCancellationFlag TEE_MaskCancellation TEE_UnmaskCancellation(5)、Converter
TEE_BigIntConvertFromOctetString TEE_BigIntConvertFromS32 TEE_BigIntConvertToOctetString TEE_BigIntConvertToS32(6)、Data Stream Access
TEE_ReadObjectData TEE_SeekObjectData TEE_TruncateObjectData TEE_WriteObjectData(7)、Deprecated
TEE_BigIntInitFMMContext TEE_CloseAndDeletePersistentObject TEE_CopyObjectAttributes TEE_GetObjectInfo TEE_RestrictObjectUsage(8)、Events
TEE_Event_AddSources TEE_Event_CancelSources TEE_Event_CloseQueue TEE_Event_DropSources TEE_Event_ListSources TEE_Event_OpenQueue TEE_Event_TimerCreate TEE_Event_Wait(9)、Fast Modular Multiplication
TEE_BigIntComputeFMM TEE_BigIntConvertFromFMM TEE_BigIntConvertToFMM(10)、Generic Object
TEE_CloseObject TEE_GetObjectBufferAttribute TEE_GetObjectInfo (deprecated) TEE_GetObjectInfo1 TEE_GetObjectValueAttribute TEE_RestrictObjectUsage (deprecated) TEE_RestrictObjectUsage1(11)、Generic Operation
TEE_AllocateOperation TEE_CopyOperation TEE_FreeOperation TEE_GetOperationInfo TEE_GetOperationInfoMultiple TEE_IsAlgorithmSupported TEE_ResetOperation TEE_SetOperationKey TEE_SetOperationKey2(12)、Initialization
TEE_BigIntInit TEE_BigIntInitFMM TEE_BigIntInitFMMContext (deprecated) TEE_BigIntInitFMMContext1(13)、Internal Client API
TEE_CloseTASession TEE_InvokeTACommand TEE_OpenTASession(14)、Key Derivation
TEE_DeriveKey(15)、Logical Operation
TEE_BigIntAbs TEE_BigIntAssign TEE_BigIntCmp TEE_BigIntCmpS32 TEE_BigIntGetBit TEE_BigIntGetBitCount TEE_BigIntSetBit TEE_BigIntShiftRight(16)、MAC
TEE_MACCompareFinal TEE_MACComputeFinal TEE_MACInit TEE_MACUpdate(17)、Memory Allocation and Size of Objects
TEE_BigIntFMMContextSizeInU32 TEE_BigIntFMMSizeInU32 TEE_BigIntSizeInU32 (macro)(18)、Memory Management
TEE_CheckMemoryAccessRights TEE_Free TEE_GetInstanceData TEE_Malloc TEE_MemCompare TEE_MemFill TEE_MemMove TEE_Realloc TEE_SetInstanceData(19)、Message Digest
TEE_DigestDoFinal TEE_DigestExtract TEE_DigestUpdate(20)、Modular Arithmetic
TEE_BigIntAddMod TEE_BigIntExpMod TEE_BigIntInvMod TEE_BigIntMod TEE_BigIntMulMod TEE_BigIntSquareMod TEE_BigIntSubMod(21)、Other Arithmetic
TEE_BigIntComputeExtendedGcd TEE_BigIntIsProbablePrime TEE_BigIntRelativePrime(22)、Panic Function
TEE_Panic(23)、Peripherals
TEE_Peripheral_Close TEE_Peripheral_CloseMultiple TEE_Peripheral_GetPeripherals TEE_Peripheral_GetState TEE_Peripheral_GetStateTable TEE_Peripheral_Open TEE_Peripheral_OpenMultiple TEE_Peripheral_Read TEE_Peripheral_SetState TEE_Peripheral_Write(24)、Persistent Object
TEE_CloseAndDeletePersistentObject (deprecated) TEE_CloseAndDeletePersistentObject1 TEE_CreatePersistentObject TEE_OpenPersistentObject TEE_RenamePersistentObject(25)、Persistent Object Enumeration
TEE_AllocatePersistentObjectEnumerator TEE_FreePersistentObjectEnumerator TEE_GetNextPersistentObject TEE_ResetPersistentObjectEnumerator TEE_StartPersistentObjectEnumerator(26)、Property Access
TEE_AllocatePropertyEnumerator TEE_FreePropertyEnumerator TEE_GetNextProperty TEE_GetPropertyAsBinaryBlock TEE_GetPropertyAsBool TEE_GetPropertyAsIdentity TEE_GetPropertyAsString TEE_GetPropertyAsU32 TEE_GetPropertyAsU64 TEE_GetPropertyAsUUID TEE_GetPropertyName TEE_ResetPropertyEnumerator TEE_StartPropertyEnumerator(27)、Random Data Generation
TEE_GenerateRandom(28)、Symmetric Cipher
TEE_CipherDoFinal TEE_CipherInit TEE_CipherUpdate(29)、TA Interface
TA_CloseSessionEntryPoint TA_CreateEntryPoint TA_DestroyEntryPoint TA_InvokeCommandEntryPoint TA_OpenSessionEntryPoint(30)、Time
TEE_GetREETime TEE_GetSystemTime TEE_GetTAPersistentTime TEE_SetTAPersistentTime TEE_Wait(31)、Transient Object
TEE_AllocateTransientObject TEE_CopyObjectAttributes (deprecated) TEE_CopyObjectAttributes1 TEE_FreeTransientObject TEE_GenerateKey TEE_InitRefAttribute TEE_InitValueAttribute TEE_PopulateTransientObject TEE_ResetTransientObject總結
以上是生活随笔為你收集整理的Globalplatform TEE api介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [gic]-linux和optee的中断
- 下一篇: [crypto]-31-crypto e