35 #include <tee_api_defines.h> 36 #include <tee_api_types.h> 41 TEE_Result TEE_GetPropertyAsString(TEE_PropSetHandle propsetOrEnumerator,
42 const char *name,
char *valueBuffer,
43 uint32_t *valueBufferLen);
45 TEE_Result TEE_GetPropertyAsBool(TEE_PropSetHandle propsetOrEnumerator,
46 const char *name,
bool *value);
48 TEE_Result TEE_GetPropertyAsU32(TEE_PropSetHandle propsetOrEnumerator,
49 const char *name, uint32_t *value);
51 TEE_Result TEE_GetPropertyAsBinaryBlock(TEE_PropSetHandle propsetOrEnumerator,
52 const char *name,
void *valueBuffer,
53 uint32_t *valueBufferLen);
55 TEE_Result TEE_GetPropertyAsUUID(TEE_PropSetHandle propsetOrEnumerator,
58 TEE_Result TEE_GetPropertyAsIdentity(TEE_PropSetHandle propsetOrEnumerator,
61 TEE_Result TEE_AllocatePropertyEnumerator(TEE_PropSetHandle *enumerator);
63 void TEE_FreePropertyEnumerator(TEE_PropSetHandle enumerator);
65 void TEE_StartPropertyEnumerator(TEE_PropSetHandle enumerator,
66 TEE_PropSetHandle propSet);
68 void TEE_ResetPropertyEnumerator(TEE_PropSetHandle enumerator);
70 TEE_Result TEE_GetPropertyName(TEE_PropSetHandle enumerator,
71 void *nameBuffer, uint32_t *nameBufferLen);
73 TEE_Result TEE_GetNextProperty(TEE_PropSetHandle enumerator);
77 void TEE_Panic(TEE_Result panicCode);
81 TEE_Result TEE_OpenTASession(
const TEE_UUID *destination,
82 uint32_t cancellationRequestTimeout,
85 TEE_TASessionHandle *session,
86 uint32_t *returnOrigin);
88 void TEE_CloseTASession(TEE_TASessionHandle session);
90 TEE_Result TEE_InvokeTACommand(TEE_TASessionHandle session,
91 uint32_t cancellationRequestTimeout,
92 uint32_t commandID, uint32_t paramTypes,
94 uint32_t *returnOrigin);
98 bool TEE_GetCancellationFlag(
void);
100 bool TEE_UnmaskCancellation(
void);
102 bool TEE_MaskCancellation(
void);
106 TEE_Result TEE_CheckMemoryAccessRights(uint32_t accessFlags,
void *buffer,
109 void TEE_SetInstanceData(
const void *instanceData);
111 const void *TEE_GetInstanceData(
void);
113 void *TEE_Malloc(uint32_t size, uint32_t hint);
115 void *TEE_Realloc(
const void *buffer, uint32_t newSize);
117 void TEE_Free(
void *buffer);
119 void *TEE_MemMove(
void *dest,
const void *src, uint32_t size);
121 int32_t TEE_MemCompare(
const void *buffer1,
const void *buffer2, uint32_t size);
123 void *TEE_MemFill(
void *buff, uint32_t x, uint32_t size);
127 void TEE_GetObjectInfo(TEE_ObjectHandle
object,
TEE_ObjectInfo *objectInfo);
128 TEE_Result TEE_GetObjectInfo1(TEE_ObjectHandle
object,
TEE_ObjectInfo *objectInfo);
130 void TEE_RestrictObjectUsage(TEE_ObjectHandle
object, uint32_t objectUsage);
131 TEE_Result TEE_RestrictObjectUsage1(TEE_ObjectHandle
object, uint32_t objectUsage);
133 TEE_Result TEE_GetObjectBufferAttribute(TEE_ObjectHandle
object,
134 uint32_t attributeID,
void *buffer,
137 TEE_Result TEE_GetObjectValueAttribute(TEE_ObjectHandle
object,
138 uint32_t attributeID, uint32_t *a,
141 void TEE_CloseObject(TEE_ObjectHandle
object);
145 TEE_Result TEE_AllocateTransientObject(TEE_ObjectType objectType,
147 TEE_ObjectHandle *
object);
149 void TEE_FreeTransientObject(TEE_ObjectHandle
object);
151 void TEE_ResetTransientObject(TEE_ObjectHandle
object);
153 TEE_Result TEE_PopulateTransientObject(TEE_ObjectHandle
object,
157 void TEE_InitRefAttribute(
TEE_Attribute *attr, uint32_t attributeID,
158 const void *buffer, uint32_t length);
160 void TEE_InitValueAttribute(
TEE_Attribute *attr, uint32_t attributeID,
161 uint32_t a, uint32_t b);
163 void TEE_CopyObjectAttributes(TEE_ObjectHandle destObject,
164 TEE_ObjectHandle srcObject);
166 TEE_Result TEE_CopyObjectAttributes1(TEE_ObjectHandle destObject,
167 TEE_ObjectHandle srcObject);
169 TEE_Result TEE_GenerateKey(TEE_ObjectHandle
object, uint32_t keySize,
174 TEE_Result TEE_OpenPersistentObject(uint32_t storageID,
const void *objectID,
175 uint32_t objectIDLen, uint32_t flags,
176 TEE_ObjectHandle *
object);
178 TEE_Result TEE_CreatePersistentObject(uint32_t storageID,
const void *objectID,
179 uint32_t objectIDLen, uint32_t flags,
180 TEE_ObjectHandle attributes,
181 const void *initialData,
182 uint32_t initialDataLen,
183 TEE_ObjectHandle *
object);
185 void TEE_CloseAndDeletePersistentObject(TEE_ObjectHandle
object);
187 TEE_Result TEE_CloseAndDeletePersistentObject1(TEE_ObjectHandle
object);
189 TEE_Result TEE_RenamePersistentObject(TEE_ObjectHandle
object,
190 const void *newObjectID,
191 uint32_t newObjectIDLen);
193 TEE_Result TEE_AllocatePersistentObjectEnumerator(TEE_ObjectEnumHandle *
196 void TEE_FreePersistentObjectEnumerator(TEE_ObjectEnumHandle objectEnumerator);
198 void TEE_ResetPersistentObjectEnumerator(TEE_ObjectEnumHandle objectEnumerator);
200 TEE_Result TEE_StartPersistentObjectEnumerator(TEE_ObjectEnumHandle
204 TEE_Result TEE_GetNextPersistentObject(TEE_ObjectEnumHandle objectEnumerator,
206 void *objectID, uint32_t *objectIDLen);
210 TEE_Result TEE_ReadObjectData(TEE_ObjectHandle
object,
void *buffer,
211 uint32_t size, uint32_t *count);
213 TEE_Result TEE_WriteObjectData(TEE_ObjectHandle
object,
const void *buffer,
216 TEE_Result TEE_TruncateObjectData(TEE_ObjectHandle
object, uint32_t size);
218 TEE_Result TEE_SeekObjectData(TEE_ObjectHandle
object, int32_t offset,
223 TEE_Result TEE_AllocateOperation(TEE_OperationHandle *operation,
224 uint32_t algorithm, uint32_t mode,
225 uint32_t maxKeySize);
227 void TEE_FreeOperation(TEE_OperationHandle operation);
229 void TEE_GetOperationInfo(TEE_OperationHandle operation,
232 TEE_Result TEE_GetOperationInfoMultiple(TEE_OperationHandle operation,
234 uint32_t *operationSize);
236 void TEE_ResetOperation(TEE_OperationHandle operation);
238 TEE_Result TEE_SetOperationKey(TEE_OperationHandle operation,
239 TEE_ObjectHandle key);
241 TEE_Result TEE_SetOperationKey2(TEE_OperationHandle operation,
242 TEE_ObjectHandle key1, TEE_ObjectHandle key2);
244 void TEE_CopyOperation(TEE_OperationHandle dstOperation,
245 TEE_OperationHandle srcOperation);
249 void TEE_DigestUpdate(TEE_OperationHandle operation,
250 const void *chunk, uint32_t chunkSize);
252 TEE_Result TEE_DigestDoFinal(TEE_OperationHandle operation,
const void *chunk,
253 uint32_t chunkLen,
void *hash, uint32_t *hashLen);
257 void TEE_CipherInit(TEE_OperationHandle operation,
const void *IV,
260 TEE_Result TEE_CipherUpdate(TEE_OperationHandle operation,
const void *srcData,
261 uint32_t srcLen,
void *destData, uint32_t *destLen);
263 TEE_Result TEE_CipherDoFinal(TEE_OperationHandle operation,
264 const void *srcData, uint32_t srcLen,
265 void *destData, uint32_t *destLen);
269 void TEE_MACInit(TEE_OperationHandle operation,
const void *IV,
272 void TEE_MACUpdate(TEE_OperationHandle operation,
const void *chunk,
275 TEE_Result TEE_MACComputeFinal(TEE_OperationHandle operation,
276 const void *message, uint32_t messageLen,
277 void *mac, uint32_t *macLen);
279 TEE_Result TEE_MACCompareFinal(TEE_OperationHandle operation,
280 const void *message, uint32_t messageLen,
281 const void *mac, uint32_t macLen);
285 TEE_Result TEE_AEInit(TEE_OperationHandle operation,
const void *nonce,
286 uint32_t nonceLen, uint32_t tagLen, uint32_t AADLen,
287 uint32_t payloadLen);
289 void TEE_AEUpdateAAD(TEE_OperationHandle operation,
const void *AADdata,
290 uint32_t AADdataLen);
292 TEE_Result TEE_AEUpdate(TEE_OperationHandle operation,
const void *srcData,
293 uint32_t srcLen,
void *destData, uint32_t *destLen);
295 TEE_Result TEE_AEEncryptFinal(TEE_OperationHandle operation,
296 const void *srcData, uint32_t srcLen,
297 void *destData, uint32_t *destLen,
void *tag,
300 TEE_Result TEE_AEDecryptFinal(TEE_OperationHandle operation,
301 const void *srcData, uint32_t srcLen,
302 void *destData, uint32_t *destLen,
void *tag,
307 TEE_Result TEE_AsymmetricEncrypt(TEE_OperationHandle operation,
309 uint32_t paramCount,
const void *srcData,
310 uint32_t srcLen,
void *destData,
313 TEE_Result TEE_AsymmetricDecrypt(TEE_OperationHandle operation,
315 uint32_t paramCount,
const void *srcData,
316 uint32_t srcLen,
void *destData,
319 TEE_Result TEE_AsymmetricSignDigest(TEE_OperationHandle operation,
321 uint32_t paramCount,
const void *digest,
322 uint32_t digestLen,
void *signature,
323 uint32_t *signatureLen);
325 TEE_Result TEE_AsymmetricVerifyDigest(TEE_OperationHandle operation,
327 uint32_t paramCount,
const void *digest,
328 uint32_t digestLen,
const void *signature,
329 uint32_t signatureLen);
333 void TEE_DeriveKey(TEE_OperationHandle operation,
335 TEE_ObjectHandle derivedKey);
339 void TEE_GenerateRandom(
void *randomBuffer, uint32_t randomBufferLen);
343 void TEE_GetSystemTime(
TEE_Time *time);
345 TEE_Result TEE_Wait(uint32_t timeout);
347 TEE_Result TEE_GetTAPersistentTime(
TEE_Time *time);
349 TEE_Result TEE_SetTAPersistentTime(
const TEE_Time *time);
351 void TEE_GetREETime(
TEE_Time *time);
355 uint32_t TEE_BigIntFMMSizeInU32(uint32_t modulusSizeInBits);
357 uint32_t TEE_BigIntFMMContextSizeInU32(uint32_t modulusSizeInBits);
361 void TEE_BigIntInit(TEE_BigInt *bigInt, uint32_t len);
363 void TEE_BigIntInitFMMContext(TEE_BigIntFMMContext *context, uint32_t len,
364 const TEE_BigInt *modulus);
366 void TEE_BigIntInitFMM(TEE_BigIntFMM *bigIntFMM, uint32_t len);
370 TEE_Result TEE_BigIntConvertFromOctetString(TEE_BigInt *dest,
371 const uint8_t *buffer,
375 TEE_Result TEE_BigIntConvertToOctetString(uint8_t *buffer, uint32_t *bufferLen,
376 const TEE_BigInt *bigInt);
378 void TEE_BigIntConvertFromS32(TEE_BigInt *dest, int32_t shortVal);
380 TEE_Result TEE_BigIntConvertToS32(int32_t *dest,
const TEE_BigInt *src);
384 int32_t TEE_BigIntCmp(
const TEE_BigInt *op1,
const TEE_BigInt *op2);
386 int32_t TEE_BigIntCmpS32(
const TEE_BigInt *op, int32_t shortVal);
388 void TEE_BigIntShiftRight(TEE_BigInt *dest,
const TEE_BigInt *op,
391 bool TEE_BigIntGetBit(
const TEE_BigInt *src, uint32_t bitIndex);
393 uint32_t TEE_BigIntGetBitCount(
const TEE_BigInt *src);
395 void TEE_BigIntAdd(TEE_BigInt *dest,
const TEE_BigInt *op1,
396 const TEE_BigInt *op2);
398 void TEE_BigIntSub(TEE_BigInt *dest,
const TEE_BigInt *op1,
399 const TEE_BigInt *op2);
401 void TEE_BigIntNeg(TEE_BigInt *dest,
const TEE_BigInt *op);
403 void TEE_BigIntMul(TEE_BigInt *dest,
const TEE_BigInt *op1,
404 const TEE_BigInt *op2);
406 void TEE_BigIntSquare(TEE_BigInt *dest,
const TEE_BigInt *op);
408 void TEE_BigIntDiv(TEE_BigInt *dest_q, TEE_BigInt *dest_r,
409 const TEE_BigInt *op1,
const TEE_BigInt *op2);
413 void TEE_BigIntMod(TEE_BigInt *dest,
const TEE_BigInt *op,
414 const TEE_BigInt *n);
416 void TEE_BigIntAddMod(TEE_BigInt *dest,
const TEE_BigInt *op1,
417 const TEE_BigInt *op2,
const TEE_BigInt *n);
419 void TEE_BigIntSubMod(TEE_BigInt *dest,
const TEE_BigInt *op1,
420 const TEE_BigInt *op2,
const TEE_BigInt *n);
422 void TEE_BigIntMulMod(TEE_BigInt *dest,
const TEE_BigInt *op1,
423 const TEE_BigInt *op2,
const TEE_BigInt *n);
425 void TEE_BigIntSquareMod(TEE_BigInt *dest,
const TEE_BigInt *op,
426 const TEE_BigInt *n);
428 void TEE_BigIntInvMod(TEE_BigInt *dest,
const TEE_BigInt *op,
429 const TEE_BigInt *n);
433 bool TEE_BigIntRelativePrime(
const TEE_BigInt *op1,
const TEE_BigInt *op2);
435 void TEE_BigIntComputeExtendedGcd(TEE_BigInt *gcd, TEE_BigInt *u,
436 TEE_BigInt *v,
const TEE_BigInt *op1,
437 const TEE_BigInt *op2);
439 int32_t TEE_BigIntIsProbablePrime(
const TEE_BigInt *op,
440 uint32_t confidenceLevel);
444 void TEE_BigIntConvertToFMM(TEE_BigIntFMM *dest,
const TEE_BigInt *src,
446 const TEE_BigIntFMMContext *context);
448 void TEE_BigIntConvertFromFMM(TEE_BigInt *dest,
const TEE_BigIntFMM *src,
450 const TEE_BigIntFMMContext *context);
452 void TEE_BigIntFMMConvertToBigInt(TEE_BigInt *dest,
const TEE_BigIntFMM *src,
454 const TEE_BigIntFMMContext *context);
456 void TEE_BigIntComputeFMM(TEE_BigIntFMM *dest,
const TEE_BigIntFMM *op1,
457 const TEE_BigIntFMM *op2,
const TEE_BigInt *n,
458 const TEE_BigIntFMMContext *context);
Definition: tee_api_types.h:153
Definition: tee_api_types.h:183
Definition: tee_api_types.h:72
Definition: tee_api_types.h:57
Definition: tee_api_types.h:169
Definition: tee_api_types.h:45
Definition: tee_api_types.h:106
Definition: tee_api_types.h:128