编译演示Demo

kunpengsecl仓库提供了远程证明中除QCA lib和QTA以外的所有工具以及演示Demo。

  1. 下载鲲鹏安全库。

    1
    git clone -b v2.0.2 https://gitee.com/openeuler/kunpengsecl.git
    

  2. 依赖itrustee_sdk CA头文件,可使用编译部署QCA lib和QTA中下载的itrustee_sdk提供的头文件进行配置。

    1. 打开“Makefile”文件。
      1
      vim kunpengsecl/attestation/rac/Makefile
      
    2. “i”键进入编辑模式,将“/opt”修改为itrustee_sdk的实际路径。

    3. “Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。
    4. 打开“katools_arm64.go”文件。
      1
      vim kunpengsecl/attestation/rac/ka/katools/katools_arm64.go
      
    5. “i”键进入编辑模式,将“/opt”修改为itrustee_sdk的实际路径。

    6. “Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。

  3. 依赖libteec_adaptor.so库,可使用获取iTrustee Patch包中下载的itrustee_sdk源码编译出动态库,并拷贝到系统路径下。

    1
    2
    3
    cd itrustee_sdk/src/CA
    gcc -fPIC -shared -o libteec_adaptor.so libteec_adaptor.c -I ../../include/CA/
    cp libteec_adaptor.so /usr/lib64/
    

  4. 依赖cJSON动态库,可使用5中下载的cJSON源码进行安装。

    1
    2
    3
    cd itrustee_sdk/test/TA/qta/src/cJSON
    make && make PREFIX=/usr install
    ldconfig
    

  5. 依赖1.17版本的golang,可通过如下方式配置。

    1
    2
    3
    4
    wget https://go.dev/dl/go1.17.13.linux-arm64.tar.gz
    tar xvf go1.17.13.linux-arm64.tar.gz
    export PATH=$PWD/go/bin/:$PATH
    go version
    

  6. 编译远程证明Demo,一键完成所有组件的编译。

    1
    2
    3
    yum install openssl-devel
    cd kunpengsecl
    make clean && make build
    

    编译成功后,会生成演示Demo涉及的应用,比如qcaserver、qca_daemon、libteeverifier.so等。此外还生成了用于模拟测试的so库,需删除,否则QCA lib会优先使用模拟器的so库。

    1
    rm -rf attestation/tee/tverlib/simulator/*.so
    

  7. 部署libteeverifier.so。

    1
    cp -rf attestation/tee/tverlib/verifier/libteeverifier.so /usr/lib64/