搭建步骤
本文以iTrustee SDK中itrustee_sdk-1.0版本和rsa-demo代码为例介绍TA/CA编译环境部署,操作系统版本为openEuler 20.03 LTS-SP1。
获取iTrustee SDK开发套件
- 获取iTrustee SDK开发套件。
下载地址: https://gitee.com/openeuler/itrustee_sdk/tree/itrustee_sdk-1.0/
代码分支:itrustee_sdk-1.0
- 解压iTrustee SDK开发套件,目录结构如下图所示。
SDK中主要涉及“build”、“include”、“test”、“thirdparty”四个目录。其中:
- “build/”存放TA应用的签名工具。
- “include/”存放当前iTrustee OS支持的函数接口说明,包含GP(Global Platform)标准接口和部分华为扩展接口。
- “test/”主要存放TA和CA应用源码。
- “thirdparty/”存放TA和CA应用使用的第三方库。
- 获取libboundscheck安全函数库。
下载地址:https://gitee.com/openeuler/libboundscheck
代码分支:master
将下载的libboundscheck文件夹移动到“itrustee_sdk/thirdparty/open_source/”目录下,如下图所示。
编译rsa-demo应用
- 编译rsa-demo CA应用。
1 2
cd itrustee_sdk/test/CA/rsa_demo/cloud make
编译后,会在Makefile文件同级目录产生CA二进制文件,如下图所示。
- 编译rsa-demo TA应用。
- 向华为业务负责人申请获取rsa_demo TA应用配套编译材料,包括配套私钥、华为签发的config二进制。
- 将编译材料拷贝至iTrustee SDK中rsa_demo TA应用指定目录。
1 2
cp rsa_demo/signed_config/config itrustee_sdk/test/TA/rsa_demo/cloud/signed_config/ cp rsa_demo/TA_cert/private_key.pem itrustee_sdk/test/TA/rsa_demo/cloud/TA_cert/
- 编译rsa_demo TA应用。
1 2
cd itrustee_sdk/test/TA/rsa_demo/cloud make
编译后,会在Makefile文件同级目录产生TA应用.sec文件,文件名为每个TA应用独有的UUID。
一个标准的TA应用,除了源代码,还应当包括TA私钥、签名后的config、config_cloud.ini配置文件、manifest.txt,如下图所示。其中config_cloud.ini、config、private_key.pem与TA应用签名相关,相关文件产生方式请参考调测环境TA应用开发者证书申请。manifest.txt文件描述了TA应用在TEE侧可使用资源情况,由开发者自行提供。
manifest.txt文件示例如下。
1 2 3 4 5 6 7 |
gpd.ta.appID: f68fd704-6eb1-4d14-b218-722850eb3ef0 gpd.ta.service_name: rsa-demo gpd.ta.singleInstance: true gpd.ta.multiSession: false gpd.ta.instanceKeepAlive: false gpd.ta.dataSize: 67928064 gpd.ta.stackSize: 40960 |
其中:
- gpd.ta.appID类型为UUID,该UUID为用户自己生成,区别其他TA应用,并与对应的CA中的UUID保持相同。
- gpd.ta.service_name类型为String,表示TA应用名称,最长不超过27字节。
- gpd.ta.dataSize类型为Integer,表示TA应用堆空间大小,单位默认为字节。
- gpd.ta.stackSize类型为Integer,表示TA应用栈空间大小,单位默认为字节。
更多manifest.txt支持字段请参见《iTrustee SDK开发者手册》。
![](/doc_center/source/zh/kunpengboostkithistory/2200SPC1/confidt/public_sys-resources/note_3.0-zh-cn.png)
《iTrustee SDK开发者手册》需向华为业务负责人申请获取。