文章目录

  • 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的使用相关推荐

  1. GPTEE中的Crypto API的使用

    文章目录 1.Crypto API函数总结 2.使用示例 2.1 RSA 2.2 AES 2.3 hash 1.Crypto API函数总结 TEE_AllocateOperation: 2.使用示例 ...

  2. Storage API简介和存储限制与逐出策略

    文章目录 简介 常用的客户端存储方式 data storage的类型 逐出策略 Storage API estimate persist persisted 综合使用 总结 简介 对于现代浏览器来说, ...

  3. Web Storage API的介绍和使用

    文章目录 简介 浏览器的本地存储技术 Web Storage相关接口 浏览器兼容性 隐身模式 使用Web Storage API 总结 简介 Web Storage为浏览器提供了方便的key valu ...

  4. HTML5 Web Storage API

    Web Storage API Web Storage 是以键值对(key-value)的形式存储数据,要存储的数据需要一个名字作为键,然后就可以使用这个键来读取它的值.键是一个字符串.值可以是 Ja ...

  5. C#中调用Windows API时的数据类型对应关系

    C#中调用Windows API时的数据类型对应关系 原文 C#中调用Windows API时的数据类型对应关系 BOOL=System.Int32 BOOLEAN=System.Int32 BYTE ...

  6. C#中调用Windows API的要点

    在.Net Framework SDK文档中,关于调用Windows API的指示比较零散,并且其中稍全面一点的是针对Visual Basic .net讲述的.本文将C#中调用API的要点汇集如下,希 ...

  7. ASP.NET MVC4中调用WEB API的四个方法

    当今的软件开发中,设计软件的服务并将其通过网络对外发布,让各种客户端去使用服务已经是十分普遍的做法.就.NET而言,目前提供了Remoting,WebService和WCF服务,这都能开发出功能十分强 ...

  8. SAP WM中阶Storage Type的Capacity Check – Usage check based on material

    SAP WM中阶Storage Type的Capacity Check – Usage check based on material 1, Storage type Z03激活了Capacity C ...

  9. SAP WM中阶Storage Type的Capacity Check – Check based on maximum quantity per bin in storage type.

    SAP WM中阶Storage Type的Capacity Check – Check based on maximum quantity per bin in storage type. 1, St ...

最新文章

  1. Android杂谈--layout的横竖屏处理
  2. Android:如何使用addJavaScriptInterface
  3. canvas三环加载进度条
  4. 不修改数组找出重复的数字
  5. 音视频技术开发周刊 | 216
  6. postgres 判断null_PostgreSQL NULLIF()用法及代码示例
  7. 如何在家访问公司的文件服务器,企业的共享文件,该怎么高效管理?
  8. USACO3.1.1最短网络
  9. asp.net 性能调较
  10. Linux中Docker部署Tomcat
  11. JEECG中datagrid方法自定义查询条件
  12. AS3多线程快速入门(一):Hello World[
  13. paip.使用WORD进行拆分段落单个汉字转表格.txt
  14. 异步FIFO中格雷码和二进制数据的转换
  15. 【python基础】第02回 计算机基础2
  16. 新浪微博开放平台接入
  17. Android 安卓开发板 读取串口
  18. 作为成年人的基本道德之一,就是不…
  19. Python 保留小数位
  20. 宿舍管理系统(Java毕业设计)

热门文章

  1. 成功解决sub_div.insert(points)cv2.error: OpenCV(3.4.1) C:\projects\opencv-python\opencv\modules\imgproc
  2. 第八九章 正态分布与超越正态
  3. 逻辑回归模型详解(Logistic Regression)
  4. 浅谈linux命令大全
  5. discuz二次开发笔记(一)------$_G全解析,discuz_g_PHP教程
  6. 物联网网络编程和web编程
  7. CozyRSS开发记录3-标题栏再加强
  8. jx problem
  9. AutoHotkey热键脚本语言文件
  10. as3 内容自适应容器大小