Skip to content

How to setup the first SGX Project

Mats edited this page Mar 28, 2020 · 12 revisions

This tutorial describes how to to setup a basic SGX project with Eclipse. This is a tutorial that combines SGX building blocks and the IDE for the first time.


We will start with an new C/C++ project.

Screenshot from 2020-02-23 15-48-57


We choose C++ Managed Build in the following assistant for using make in the building process.

Screenshot from 2020-02-23 15-49-12


At the next step we will choose Empty project and use the Linux GCC.

Screenshot from 2020-02-23 15-49-41


In the next section nothing needs to be changed. We will use Release and Debug.

Screenshot from 2020-02-23 15-49-49


After this we see the new project in eclipse. Rightclick on the project folder to open the context menu an click on Add Intel(R) SGX Nature

Screenshot from 2020-02-23 15-50-22


Now we can see a new Makefile which contains the building information, generated by Intels SGX Plugin.

Screenshot from 2020-02-23 15-50-49


Next, we will add our enclave to the project.

Screenshot from 2020-02-23 15-51-13


In the following dialog, we have to enter a name for the enclave application. Screenshot from 2020-02-23 15-51-26


After entering an enclave name, we can see the generated enclave file structure (trusted/untrusted parts). Eclipse will show you an error for an ecall function. This is caused by missing files, which will be generated by building the project. The project can be built by pressing the button with the hammer symbol in the upper left corner.

Screenshot from 2020-02-23 15-52-46


After running the build process we have to Rebuild C/C++ Index.

Screenshot from 2020-02-23 15-53-45


In order to be able to run and debug the application, the corresponding runtime configurations must be set up.

First, a new Launch Configuration must be created.

image

Launch Mode: Run Launch Configuration Type: C/C++ Application

Click next and set the C/C++ Application to the sample application. Click on "Search Projekt" and select "Sample"

image

The settings under Main should now look as follows.

image

After that set the GDB debugger to Intel SGX.

GDB debugger: /opt/intel/sgxsdk/bin/sgx-gdb

image

Finally we've got an working enclave example application.