Crate mc_sgx_urts

source ·
Expand description

§MobileCoin’s Rust Interface for uRTS

Project ChatLicenseTargetCrates.ioDocs StatusDependency Status

Provides a rust interface for creating (sgx_create_enclave_from_buffer_ex()) and persisting SGX enclaves.

Example usage:

let enclave = EnclaveBuilder::new(&mut enclave_bytes).create().unrwap()
let result = unsafe { ecall_foo(*enclave, arg1, arg2) };

Users are responsible for providing their own bindings to their ECALLs.

§Table of Contents

§License

Look for the LICENSE file at the root of the repo for more information.

§Build Instructions

The workspace can be built with cargo build and tested with cargo test. Either command will recognize the cargo --release flag to build with optimizations.

The Intel SGX SDK needs to be installed.

§Intel SGX SDK

See https://github.com/intel/linux-sgx#build-the-intelr-sgx-sdk-and-intelr-sgx-psw-package for installation instructions.

The environment variable SGX_SDK can be used to specify where the SDK is installed. When unset the location will default to /opt/intel/sgxsdk

§Features

When no features are present the SGX hardware libraries will be linked in. When the sim feature is present the simulation SGX libraries will be linked in.

§References

Structs§

  • Struct for interfacing with the SGX SDK. This should be used in sgx calls as ecall_some_function(*enclave.id(), ...).
  • Build an Enclave for use with SGX calls.
  • Structure defining configuration for Key Sharing and Separation