GPTEE中的Storage API的使用
生活随笔
收集整理的這篇文章主要介紹了
GPTEE中的Storage API的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1、Storage API 函數的介紹
- 2、代碼使用示例
1、Storage API 函數的介紹
TEE中關于storage API的函數,如下表所示
TEE_CloseObject:
TEE_TruncateObjectData: (Truncate /tr???ke?t/ 截斷)
- 如果size小于當前size,那么超出的size將會刪除;
- 如果size大于當前size,那么將補0;
2、代碼使用示例
TEE_Result write_raw_object(char *obj_id,size_t obj_id_sz,char *data,size_t data_sz) {TEE_ObjectHandle object;TEE_Result res;EMSG("%s : enter", __func__);EMSG("%s : obj_id=[%s], obj_id_sz=[%d], data_sz=[%d]", __func__, obj_id, obj_id_sz, data_sz);res = TEE_CreatePersistentObject(TEE_STORAGE_PRIVATE, obj_id, obj_id_sz, WRITE_FLAG, TEE_HANDLE_NULL, NULL, 0, &object);if (res != TEE_SUCCESS) {EMSG("TEE_CreatePersistentObject failed 0x%08x", res);return res;}res = TEE_WriteObjectData(object, data, data_sz);if (res != TEE_SUCCESS) {EMSG("TEE_WriteObjectData failed 0x%08x", res);TEE_CloseAndDeletePersistentObject1(object);} else {TEE_CloseObject(object);}EMSG("%s : exit", __func__);return res; }TEE_Result read_raw_object(char *obj_id,size_t obj_id_sz,char *data,size_t *data_sz) {TEE_ObjectHandle object;TEE_ObjectInfo object_info;TEE_Result res;EMSG("%s : enter", __func__);EMSG("%s : obj_id=[%s], obj_id_sz=[%d], data_sz=[%d]", __func__, obj_id, obj_id_sz, *data_sz);res = TEE_OpenPersistentObject(TEE_STORAGE_PRIVATE, obj_id, obj_id_sz, READ_FLAG, &object);if (res != TEE_SUCCESS) {EMSG("Failed to open persistent object, res=0x%08x", res);return res;}res = TEE_GetObjectInfo1(object, &object_info);if (res != TEE_SUCCESS) {EMSG("Failed to create persistent object, res=0x%08x", res);TEE_CloseObject(object);return res;}EMSG("%s : object_info.dataSize=[%d], data_sz=[%d]", __func__, object_info.dataSize, *data_sz);if (object_info.dataSize > data_sz) {TEE_CloseObject(object);return TEE_ERROR_SHORT_BUFFER;}res = TEE_ReadObjectData(object, data, object_info.dataSize, data_sz);if (res != TEE_SUCCESS || *data_sz != object_info.dataSize) {EMSG("TEE_ReadObjectData failed 0x%08x, read %" PRIu32 " over %u", res, *data_sz, object_info.dataSize);TEE_CloseObject(object);return res;}TEE_CloseObject(object);EMSG("%s : exit", __func__);return res; }總結
以上是生活随笔為你收集整理的GPTEE中的Storage API的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TEE_ObjectHandle在Cry
- 下一篇: GPTEE中的Crypto API的使用