Skip to content

Latest commit

 

History

History
114 lines (79 loc) · 3.99 KB

SimulatorGettingStarted.md

File metadata and controls

114 lines (79 loc) · 3.99 KB

Getting Started with Open Enclave in Simulation mode

Platform requirement

  • Ubuntu 18.04-LTS or Ubuntu 20.04 64-bit.
  • A machine with an Intel processor

Clone Open Enclave SDK repo from GitHub

Use the following command to download the source code and set the current directory to it.

git clone --recursive https://github.com/openenclave/openenclave.git
cd openenclave

This creates a source tree under the directory called openenclave.

Install project prerequisites

Ansible is required to install the project prerequisites. You can install it by running:

sudo ./scripts/ansible/install-ansible.sh

To install all the Open Enclave prerequisites you can execute the environment-setup.yml tasks from linux/openenclave Ansible role:

ansible-playbook scripts/ansible/oe-contributors-setup.yml

Build

To build first create a build directory ("build/" in the example below) and change into it.

mkdir build/
cd build/

Then run cmake to configure the build and generate the make files and build:

cmake ..
make

If you want to compile in parallel you can use the -j argument for make (i.e. make -j).

Refer to the Advanced Build Information documentation for further information.

Run unittests

After building, run all unit test cases using ctest to confirm the SDK is built and working as expected. Note that to run the tests in simulation mode, the OE_SIMULATION environment variable must be set to 1.

Run the following command from the build directory:

OE_SIMULATION=1 ctest

You will see test logs similar to the following:

~/openenclave/build$ OE_SIMULATION=1 ctest
Test project /home/youradminusername/openenclave/build
Start   1: tests/aesm
1/123 Test   #1: tests/aesm ...............................................................................................................***Skipped   0.00 sec
Start   2: tests/mem
2/123 Test   #2: tests/mem ................................................................................................................   Passed    0.00 sec
Start   3: tests/str
3/123 Test   #3: tests/str ................................................................................................................   Passed    0.00 sec
....
....
....
121/123 Test #121: samples ..................................................................................................................   Passed    4.46 sec
        Start 122: tools/oedump
122/123 Test #122: tools/oedump .............................................................................................................   Passed    0.00 sec
        Start 123: oeelf
123/123 Test #123: oeelf ....................................................................................................................   Passed    0.00 sec

93% tests passed, 8 tests failed out of 123

Total Test time (real) =  38.81 sec

The following tests FAILED:
                1 - tests/aesm (Not Run)
                6 - tests/debug-unsigned (Not Run)
                7 - tests/debug-signed (Not Run)
                8 - tests/nodebug-signed (Not Run)
                9 - tests/nodebug-unsigned (Not Run)
                33 - tests/report (Not Run)
                37 - tests/sealKey (Not Run)
                115 - tests/VectorException (Not Run)
Errors while running CTest

Some of the tests are skipped (Not Run) by design because the current simulator is not fully featured yet.

A clean pass of the above unit tests is an indication that your Open Enclave setup was successful.

You can start playing with those Open Enclave samples after following the instructions in the "Install" section below to configure samples for building,

For more information refer to the Advanced Test Info document.

Install

Follow the instructions in the Install Info document to install the Open Enclave SDK built above.

Build and run samples

To build and run the samples, please look here.