Skip to main content

sptee

tee程序

62.234.166.247:/home/ubuntu/TeeService是最新调试成功的程序
需要打包到Docker镜像
TeeService运行在Docker容器,需要映射两个目录

配置conf/tee_service.conf

#文件系统API端口,
HttpPort=8020
#密钥管理中心
KeyStoreService=https://localhost:12083
#管理界面,应该是宿主机家欢的web服务地址
MgrService=http://localhost:8888/tee/findTee?id=%d
#应用程序下载路径,git映射到本地的程序放置路径
AppHome=/opt/share
#zookeeper,应该执行
ZooKeeper=localhost:2181

#镜像存储路径,映射到docker容器的路径
OcclumImages=/mnt/images

启动执行start.sh

--- 接口说明 ---

1.创建Tee节点镜像:

URI:/

Post:{"name":"newTee","teename":"occluminstance1","memory":500}

Return:{"code":0}

//teename:镜像目录名,不同节点不能重复

//memory: Occlum镜像运行内存(500-10000)M

2.初始化Tee节点:

URI:/Init

Post:{授权文件的Json内容},

Return:{"code":0,"entity":"1"}

3.更新核心程序至Tee节点镜像:

URI:/

Post:{"name":"updateTee","pid":1,"path":"app1","cmd":"./start.sh","sign":"32rdsdskdjsd"}

pid:可信核心程序唯一标识

Path: 进程放置在git上的根路径

cmd:启动命令,系统以打包时提交的路径(如:/app1)为程序工作目录,cmd是/app1下的启动脚本

Sign: Hash签名

Return:{"code":101,"pid":1,"data":"执行的所有过程信息"}:异步执行中间状态,请稍后重试,直到!=101

Return:{"code":501,"pid":1,"data":"执行的所有过程信息"}:标识pid=1的程序已经被打包到镜像

Return:{"code":0,"pid":1,"data":"执行的所有过程信息"}:成功

Return:{"code":500,"pid":1,"data":"错误信息"}:成功

4.启动镜像中的核心程序:

URI:/

Post:{"name":"runProgram","pid":1}

Return:{"code":0}

//pid:可信核心程序唯一标识,与updateTee时的pid一致

5.授权数据库表:

URI:/

Post:{"name":"authTables","url":"http://localhost:8020","teeid":1},

Return:{"code":0}

//功能: 将teeid=1的节点所拥有的数据库表权限(后端接口地址http://localhost:8020),授权给目标tee

6.下载系统日志:

URI:/

Post:{"name":"downloadlog","date":"20231025"}

date:日志时间,格式'YYYYMMDD'

Return content-type: application/octet-stream (字节流)

7.APP请求签名:

URI:/Sign

Post:{"data":"签名内容"}

Return:{"code":0,"ret":"签名结果"}

8.APP请求验签:

URI:/Verify

Post:{"tee_id":1,"data":"签名内容","signature":"签名"}

验签成功Return:{"code":0}

验签错误Return:{"code":1000}