项目目录结构
以SampleEnclave
为例,目录结构如下:
1 | . |
- App目录:存放应用程序中的不可信代码部分
- App.cpp文件:应用程序中的不可信部分代码,其中包括了创建Enclave及销毁Enclave的代码,也定义了一些相关的返回码供使用者查看Enclave程序的执行状态。其中的main函数是整个项目的入口函数。
- App.h文件:应用程序中的不可信部分代码的头文件,定义了一些宏常量和函数声明。
- Edger8rSyntax文件夹:提供了一些工具。
- TrustedLibrary文件夹:提供了一些函数库。
- Enclave目录:存放应用程序中的可信代码部分和可信与不可信代码接口文件
- Enclave.config.xml文件:Enclave的配置文件,定义了Enclave的元数据信息。
- Enclave.cpp文件:应用程序中的可信部分代码,包括了可信函数的实现。
- Enclave.h文件:应用程序中的可信部分代码的头文件,定义了一些宏常量和函数声明。
- Enclave.edl文件:Enclave的接口定义文件,定义了不可信代码调用可信代码的ECALL函数接口和可信代码调用不可信代码的OCALL函数接口,trusted{}中定义了ECALL函数接口,untrusted{}中定义了OCALL函数接口。
- Enclave.lds文件:定义了一些Enclave可执行文件信息。
- Enclave_private_test.pem文件:SGX生成的私钥。
- Edger8rSyntax文件夹:提供了一些工具。
- TrustedLibrary文件夹:提供了一些函数库。
- Include目录:存放被Enclave接口定义文件Enclave.edl使用的头文件,包括一些宏定义
- user_types.h文件:定义了用户自定义的类型
- Makefile文件:项目的编译文件,定义了项目的编译信息