intel SGX学习笔记(7):SGX项目目录结构介绍

发布时间:2024年01月13日

intel SGX学习笔记(7):SGX项目目录结构介绍

本文介绍了SGX项目的目录结构,方便贯通基础的SGX开发思路,借号内容为SGX项目的关键文件,也就是我们开发或者科研需要修改的文件,以SampleEnclave项目为例,这个项目是一个最初始化的SGX项目

一、项目主目录介绍

在这里插入图片描述

1、App文件夹是作为非安全区的代码编写区,里面有非安全的代码编写文件App.cpp
2、Enclave文件夹是安全区代码区的编写区,包含安全区Enclave的代码编写区Enclave.cpp和Ecall、Ocall函数的实现
3、Include文件夹是一些用户自定义的头文件编写区
4、app是make编译后生成的可执行文件
5、enclave.signed.so是未经过数字签名的Enclave库文件,它包含了Enclave的二进制代码和数据,但没有经过数字签名
6、enclave.signed.so是经过数字签名的Enclave库文件,它包含了Enclave的二进制代码和数据,并且已经经过数字签名
7、makefile文件是make编译项目的配置文件
8、README.txt文件是项目的介绍

二、 APP文件夹

在这里插入图片描述

1、Edger8rSyntax文件夹提供一些可信工具
2、TrustedLibrary文件夹可信函数库
3、App.cpp是整个项目的入口文件和非安全区的代码编写文件,是我们主要开发的文件,里面在main函数中来调用Ecall函数和Ocall函数,完成安全区Enclave的创建和销毁
4、App.h文件是应用程序中的不可信部分代码的头文件,定义了一些宏常量和函数声明

三、Enclave文件夹

在这里插入图片描述

1、Edger8rSyntax文件夹提供一些可信工具
2、TrustedLibrary文件夹可信函数库
3、Enclave.config.xml文件是Enclave的配置文件,定义了Enclave的元数据信息
4、 Enclave.cpp文件是应用程序中的可信部分代码,在里面实现自己的可信函数,是主要编写的区域
在这里插入图片描述

5、 Enclave.h文件是应用程序中的可信部分代码的头文件,包含了Enclave的接口定义和数据结构,定义了一些宏常量和函数声明,在Enclave.cpp中实现自己的可信函数后,要把可信函数名添加到这里面,相当于一个接口定义的感觉
在这里插入图片描述

6、Enclave.edl文件是Enclave的接口定义文件,ECALL函数接口和OECALL函数接口,trusted中定义ECALL函数接口,untrusted中定义OECALL函数接口,相当于一个区分的感觉
在这里插入图片描述

7、 Enclave.lds文件定义了一些Enclave可执行文件信息
8、 Enclave_private.pem文件是SGX生成的私钥

四、Include文件夹

在这里插入图片描述

1、user_types.h文件是作为用户自定义的头文件编写区

在这里插入图片描述

文章来源:https://blog.csdn.net/m0_47575110/article/details/135555087
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。