Skip to content

Latest commit

 

History

History

GettingStartedDocs

Getting Started With Open Enclave

Introduction

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 protected memory region that provides confidentiality for data and code execution. It is an instance of a Trusted Execution Environment (TEE) which is usually secured by hardware, for example, Intel Software Guard Extensions (SGX).

This SDK aims to generalize the development of enclave applications across TEEs from different hardware vendors. The current implementation provides support for Intel SGX as well as preview support for OP-TEE OS on ARM TrustZone. As an open source project, this SDK also strives to provide a transparent solution that is agnostic to specific vendors, service providers and choice of operating systems.

Hardware Drivers

Open Enclave provides a consistent abstraction across different hardware Enclave platforms. If you're just getting started, you can compile and test your apps without an enclave, or you can use one of the hardware types below.

Intel SGX

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 run Ubuntu 20.04 in a Hyper-V VM on SGX capable hardware, see Setting up a Linux Hyper-V VM on Windows with SGX Support.

OE SDK for Ubuntu 16.04 is no longer supported and was last supported in v0.14.

OP-TEE OS (ARM TrustZone)

The Open Enclave SDK provides preview support for the Open Portable TEE OS (OP-TEE OS). OP-TEE is an operating system for TEE's that implement a traditional kernel-mode and user-mode execution environment. It runs on A-profile ARM systems that support ARM TrustZone. As a result, the Open Enclave SDK can be leveraged to target these systems as well.

For an overview of the SDK's support for OP-TEE OS as well as links to getting started guides, see Open Enclave SDK for OP-TEE OS.

API Documentation

The Doxygen-generated documentation corresponding to the APIs currently supported by the master branch is here. API Documentation for previous releases of the SDK can be found on the Open Enclave SDK website.

Community

The Open Enclave community is a safe and welcoming environment. We follow a Code of Conduct adapted from the Contributor Covenant v1.4.

Want to get involved? Head on over to the Community pages!

If you're interested in how this project is run, head on over to the Overview of the Project Governance Model.

Contributing

If you are interested in contributing changes to Open Enclave, here are some good places to start:

Contributors must sign a Developer Certificate of Origin (DCO). For details, see Contributing to Open Enclave.