Open Enclave
Macros | Typedefs | Enumerations | Functions
enclave.h File Reference

This file defines the programming interface for developing enclaves. More...

#include "bits/defs.h"
#include "bits/exception.h"
#include "bits/properties.h"
#include "bits/report.h"
#include "bits/result.h"
#include "bits/types.h"

Go to the source code of this file.

Macros

#define oe_assert(EXPR)
 Evaluates assertion. More...
 

Typedefs

typedef enum _oe_seal_policy oe_seal_policy_t
 This enumeration type defines the policy used to derive a seal key. More...
 

Enumerations

enum  _oe_seal_policy { OE_SEAL_POLICY_UNIQUE = 1, OE_SEAL_POLICY_PRODUCT = 2, _OE_SEAL_POLICY_MAX = OE_ENUM_MAX }
 This enumeration type defines the policy used to derive a seal key. More...
 

Functions

oe_result_t oe_add_vectored_exception_handler (bool is_first_handler, oe_vectored_exception_handler_t vectored_handler)
 Register a new vectored exception handler. More...
 
oe_result_t oe_remove_vectored_exception_handler (oe_vectored_exception_handler_t vectored_handler)
 Remove an existing vectored exception handler. More...
 
oe_result_t oe_call_host (const char *func, void *args)
 Perform a high-level enclave function call (OCALL). More...
 
oe_result_t oe_call_host_by_address (void(*func)(void *, oe_enclave_t *), void *args)
 Perform a high-level host function call (OCALL). More...
 
bool oe_is_within_enclave (const void *ptr, size_t size)
 Check whether the given buffer is strictly within the enclave. More...
 
bool oe_is_outside_enclave (const void *ptr, size_t size)
 Check whether the given buffer is strictly outside the enclave. More...
 
void * oe_host_malloc (size_t size)
 Allocate bytes from the host's heap. More...
 
void * oe_host_realloc (void *ptr, size_t size)
 Reallocate bytes from the host's heap. More...
 
void * oe_host_calloc (size_t nmemb, size_t size)
 Allocate zero-filled bytes from the host's heap. More...
 
void oe_host_free (void *ptr)
 Release allocated memory. More...
 
char * oe_host_strndup (const char *str, size_t n)
 Make a heap copy of a string. More...
 
void oe_abort (void)
 Abort execution of the enclave. More...
 
void __oe_assert_fail (const char *expr, const char *file, int line, const char *func)
 Called whenever an assertion fails. More...
 
oe_result_t oe_get_report (uint32_t flags, const uint8_t *report_data, size_t report_data_size, const void *opt_params, size_t opt_params_size, uint8_t *report_buffer, size_t *report_buffer_size)
 Get a report signed by the enclave platform for use in attestation. More...
 
oe_result_t oe_get_target_info (const uint8_t *report, size_t report_size, void *target_info_buffer, size_t *target_info_size)
 Extracts additional platform specific data from the report and writes it to target_info_buffer. More...
 
oe_result_t oe_parse_report (const uint8_t *report, size_t report_size, oe_report_t *parsed_report)
 Parse an enclave report into a standard format for reading. More...
 
oe_result_t oe_verify_report (const uint8_t *report, size_t report_size, oe_report_t *parsed_report)
 Verify the integrity of the report and its signature. More...
 
oe_result_t oe_get_seal_key_by_policy (oe_seal_policy_t seal_policy, uint8_t *key_buffer, size_t *key_buffer_size, uint8_t *key_info, size_t *key_info_size)
 Get a symmetric encryption key derived from the specified policy and coupled to the enclave platform. More...
 
oe_result_t oe_get_seal_key (const uint8_t *key_info, size_t key_info_size, uint8_t *key_buffer, size_t *key_buffer_size)
 Get a symmetric encryption key from the enclave platform using existing key information. More...
 
oe_enclave_t * oe_get_enclave (void)
 Obtains the enclave handle. More...
 

Detailed Description

This file defines the programming interface for developing enclaves.