---
title: 搭建步骤
description: "本文以iTrustee SDK中itrustee_sdk-1.0版本和rsa-demo代码为例介绍TA和CA编译环境部署，操作系统版本为openEuler 20.03 LTS SP1。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/230RC2/confidt/kunpengtrustzone_20_0016.html
sourcePath: /source/zh/kunpengboostkithistory/230RC2/confidt/kunpengtrustzone_20_0016.html
indexId: 311e43b4f8d512d89dd91195c1b1128683431c815e3cc9157441f64d3e83273278
---
# 搭建步骤

本文以iTrustee SDK中itrustee_sdk-1.0版本和rsa-demo代码为例介绍TA和CA编译环境部署，操作系统版本为openEuler 20.03 LTS SP1。

#### 获取iTrustee SDK开发套件

1. 获取iTrustee SDK开发套件。
  下载地址：https://gitee.com/openeuler/itrustee_sdk/tree/itrustee_sdk-1.0/(https://gitee.com/openeuler/itrustee_sdk/tree/itrustee_sdk-1.0/)

  代码分支：itrustee_sdk-1.0

  获取的SDK文件目录结构如下图所示。

  SDK中主要涉及“build”、“include”、“test”、“thirdparty”四个目录。其中： “build/”存放TA应用的签名工具。 “include/”存放当前iTrustee OS支持的函数接口说明，包含GP（Global Platform）标准接口和部分华为扩展接口。 “test/”主要存放TA和CA应用源码。 “thirdparty/”存放TA和CA应用使用的第三方库。

2. 获取libboundscheck边界检查函数库。
  下载地址：https://gitee.com/openeuler/libboundscheck(https://gitee.com/openeuler/libboundscheck)

  代码分支：master

  将下载的libboundscheck文件夹移动到“itrustee_sdk/thirdparty/open_source/”目录下，如下图所示。


#### 编译rsa-demo应用

1. 编译rsa-demo CA应用。
  1 2 cd itrustee_sdk/test/CA/rsa_demo/cloud make

  编译后，会在Makefile文件同级目录产生CA二进制文件，如下图所示。

2. 编译rsa-demo TA应用。

  a. 向华为业务负责人申请获取rsa_demo TA应用配套编译材料，包括配套私钥、华为签发的config二进制。具体文件如下图所示。
  b. 将编译材料拷贝至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/

  c. 编译rsa_demo TA应用。
    1 2 cd itrustee_sdk/test/TA/rsa_demo/cloud make

    编译后，会在Makefile文件同级目录产生TA应用.sec文件，文件名为每个TA应用独有的UUID。


#### 配置manifest.txt文件

一个标准的TA应用，除了源代码，还应当包括TA私钥、签名后的config、config_cloud.ini配置文件、manifest.txt，如下图所示。其中config_cloud.ini、config、private_key.pem与TA应用签名相关，相关文件产生方式请参考调测环境TA应用开发者证书申请。manifest.txt文件描述了TA应用在TEE侧可使用资源情况，由用户自行提供。


manifest.txt文件示例如下。

```
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.mem_page_align:          false
```

其中：

- gpd.ta.appID类型为UUID，该UUID为用户自己生成，区别其他TA应用，并与对应的CA中的UUID保持相同。
  UUID可通过执行cat /proc/sys/kernel/random/uuid命令获取。

- gpd.ta.service_name类型为String，表示TA应用名称，最长不超过27字节。
- gpd.ta.dataSize类型为Integer，表示TA应用堆空间大小，单位在“mem_page_align”为“false”时为1字节，为“true”时为4096字节。
- gpd.ta.stackSize类型为Integer，表示TA应用栈空间大小，单位在“mem_page_align”为“false”时为1字节，为“true”时为4096字节。

更多manifest.txt支持字段请参见《iTrustee SDK 开发者手册》。

《iTrustee SDK 开发者手册》需向华为业务负责人申请获取。
