Intel SGX程序编写

本文介绍了Intel SGX程序的开发过程,包括背景知识、代码编写步骤和代码测试。讲解了如何从SDK的Sample Code出发,修改代码结构,实现Enclave的创建、销毁以及ECALL和OCALL函数的定义和调用。文章详细描述了每个步骤,如删除冗余文件,修改Enclave.edl、Enclave.cpp、Enclave.h、App.cpp和App.h文件,以及编译和测试程序的方法。
摘要由CSDN通过智能技术生成

1 背景知识

当程序在enclave里和enclave外切换时,会发生上下文切换、保存CPU状态,参考https://eprint.iacr.org/2016/086.pdf,因此会有一定的开销。enclave内被视为是可信的,enclave外被视为是不可信的。从enclave外调用enclave内的程序为ECALL,从enclave里调用enclave外的程序为OCALL,https://download.01.org/intel-sgx/linux-2.3/docs/Intel_SGX_Developer_Reference_Linux_2.3_Open_Source.pdf,具体如下图所示。
在这里插入图片描述
关于Ubuntu18.04下SGX开发环境的搭建,可以参考:Intel SGX开发环境搭建

2 代码编写

以安装时SDK文件夹下Sample Code里Sample Enclave工程代码为模板,进行修改,这里参考了https://blog.csdn.net/cyLee_/article/details/90200470https://blog.csdn.net/qiu_pengfei/article/details/78803148

2.1 代码结构

App文件夹
在这里插入图片描述
Enclave文件夹
在这里插入图片描述
其它文件
在这里插入图片描述
项目下的.settings是隐藏文件夹,里面的language.settings.xml定义了一些与语言相关的信息。.cproject和.project是隐藏

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值