中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

搭建步骤

本文以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/

    代码分支: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

    代码分支: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应用。
    1. 向华为业务负责人申请获取rsa_demo TA应用配套编译材料,包括配套私钥、华为签发的config二进制。具体文件如下图所示。

    2. 将编译材料拷贝至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/
      
    3. 根据申请TA证书时配置的资源文件configs.xml修改manifest.txt,两个配置文件中相同字段的值需要保持一致,否则TA将无法成功加载。详细配置参考配置manifest.txt文件
    4. 编译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,如下图所示。

  1. TA开发者证书:包括config二进制和private_key.pem私钥,私钥用于编译TA时签名,config用于加载TA时验签。申请方式请参见调测环境TA应用开发者证书申请
  2. TA签名配置文件:config_cloud.ini,用于配置签名TA应用时的签名算法,签名所需文件路径等。模板文件位于“itrustee_sdk/build/signtools/config_cloud.ini”。这些配置影响TA应用的签名和验签,不可随意更改;可自由配置的字段主要有:
    • secSignKey:private_key.pem私钥路径,用于对TA应用签名。
    • configPath:config二进制路径,用于加载TA时验签。

    若使用相对路径,则上述两个路径应填写基于“itrustee_sdk/build/signtools/signtool_v3.py”的相对路径。

  3. TA资源配置文件:manifest.txt,用于限制TA应用在TEE内可使用的资源,需与申请TA证书时configs.xml里的配置保持一致,manifest.txt文件示例如下:
    1
    2
    3
    4
    5
    6
    7
    8
    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字节。

更多详细配置请参见《iTrustee SDK 开发者手册》。

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

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词