SDK for developing enclaves
Switch branches/tags
Clone or download
oeciteam and EMumau Merge #1212
1212: Remove oe_call_host calls from mbed unittest. r=EMumau a=EMumau

Co-authored-by: EMumau <>
Latest commit 7902796 Dec 14, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
.jenkins Merge #1214 Dec 14, 2018
3rdparty Compile with -Wextra warnings. Dec 13, 2018
cmake Compile with -Wextra warnings. Dec 13, 2018
common Added incorrect type of size parameter for kdf size. Dec 14, 2018
debugger Enable warnings for sign-conversion as well. Dec 13, 2018
docs Integrated nightly libc tests into normal test runs. Dec 14, 2018
enclave Merge #1209 Dec 14, 2018
host Fixed build break due to merge. Dec 14, 2018
include Added incorrect type of size parameter for kdf size. Dec 14, 2018
libc Compile with -Wextra warnings. Dec 13, 2018
libcxx Replace hacky `ar` scripting with cross-platform CMake OBJECTS Dec 5, 2018
pkgconfig Pass --build-id option to linker. Dec 1, 2018
prereqs Added repo list file as a dependency and updated docs. Oct 11, 2018
samples Added command in oesign to dump oeinfo and signature information #564 Dec 3, 2018
scripts Integrated nightly libc tests into normal test runs. Dec 14, 2018
tests Merge #1212 Dec 15, 2018
tools Compile with -Wextra warnings. Dec 13, 2018
.check-license.ignore Add concise dependency graph and instructions to reproduce Nov 14, 2018
.clang-format Update .clang-format to prioritize multi-line param functions Feb 27, 2018
.cspellignore Rename oe_identity_t.author_id to signer_id Aug 29, 2018
.gitattributes Remove merge=union attributes Oct 9, 2018
.gitignore Document how to visualize the CMake graph Nov 13, 2018
.openenclaveroot Added installer and samples directory. Aug 31, 2017 Enclave Support for Thread Local Storage. Dec 10, 2018
CMakeLists.txt Update CMakeLists.txt to require CMake 3.13 Dec 5, 2018
CMakeSettings.json Libcxxrt-Windows Aug 24, 2018
LICENSE Initial commit Aug 29, 2017 Update docs for v0.4.0 SDK release Oct 8, 2018
THIRD_PARTY_NOTICES Normalize line endings Oct 5, 2018
VERSION Prepend `v` to version in `VERSION` file Oct 2, 2018
bors.toml Set CI timeouts Oct 29, 2018

Open Enclave SDK


Open Enclave (OE) is an SDK for building enclave applications in C and C++. An enclave application partitions itself into two components (1) An untrusted component (called the host) and (2) A trusted component (called the enclave). An enclave is a secure container whose memory is protected from entities outside the enclave. These protections allow enclaves to perform secure computations with assurances that secrets will not be compromised.

This SDK is a fully open-source and transparent project, which plans to generalize enclave application models across enclave implementations from different hardware vendors. It's a non-vendor specific solution that supports enclave applications both on Linux and Windows platforms.

The current implementation of Open Enclave is built on Intel Software Guard Extensions (SGX), other enclave architectures (such as solutions from AMD or ARM) will be added in the future. This public preview focuses on the Linux platform.

Getting Started

If you would like to start developing apps with the preview Open Enclave SDK release, start here for instructions to install and use the SDK package.

If you would like to modify and build the Open Enclave SDK from sources, refer to the documents for getting started.


This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, see Contributing to Open Enclave.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact with any additional questions or comments.

See the Development Guide for details about contributing code to this project, such as coding style and development processes.


This project is released under the MIT License.