14 #error "enclave.h and host.h must not be included in the same compilation unit." 23 #include "bits/defs.h" 40 #define OE_ENCLAVE_FLAG_DEBUG 0x00000001u 45 #define OE_ENCLAVE_FLAG_SIMULATE 0x00000002u 50 #define OE_ENCLAVE_FLAG_RESERVED \ 51 (~(OE_ENCLAVE_FLAG_DEBUG | OE_ENCLAVE_FLAG_SIMULATE)) 60 const uint8_t* input_buffer,
61 size_t input_buffer_size,
62 uint8_t* output_buffer,
63 size_t output_buffer_size,
64 size_t* output_bytes_written);
105 uint32_t config_size,
107 uint32_t ocall_table_size,
124 #if (OE_API_VERSION < 2) 125 #define oe_get_report oe_get_report_v1 127 #define oe_get_report oe_get_report_v2 162 const void* opt_params,
163 size_t opt_params_size,
164 uint8_t* report_buffer,
165 size_t* report_buffer_size);
191 const void* opt_params,
192 size_t opt_params_size,
193 uint8_t** report_buffer,
194 size_t* report_buffer_size);
203 #if (OE_API_VERSION < 2) 204 #define oe_get_target_info oe_get_target_info_v1 206 #define oe_get_target_info oe_get_target_info_v2 235 const uint8_t* report,
237 void* target_info_buffer,
238 size_t* target_info_size);
261 const uint8_t* report,
263 void** target_info_buffer,
264 size_t* target_info_size);
288 const uint8_t* report,
313 const uint8_t* report,
342 uint8_t** key_buffer,
343 size_t* key_buffer_size,
345 size_t* key_info_size);
367 const uint8_t* key_info,
368 size_t key_info_size,
369 uint8_t** key_buffer,
370 size_t* key_buffer_size);
383 size_t key_buffer_size,
385 size_t key_info_size);
oe_result_t oe_get_public_key_by_policy(oe_enclave_t *enclave, oe_seal_policy_t seal_policy, const oe_asymmetric_key_params_t *key_params, uint8_t **key_buffer, size_t *key_buffer_size, uint8_t **key_info, size_t *key_info_size)
Returns a public key that is associated with the identity of the enclave and the specified policy...
enum _oe_seal_policy oe_seal_policy_t
This enumeration type defines the policy used to derive a seal key.
oe_result_t oe_get_public_key(oe_enclave_t *enclave, const oe_asymmetric_key_params_t *key_params, const uint8_t *key_info, size_t key_info_size, uint8_t **key_buffer, size_t *key_buffer_size)
Returns a public key that is associated with the identity of the enclave.
This file defines the types used by the OE SDK.
Structure to hold the parsed form of a report.
Definition: report.h:112
enum _oe_enclave_type oe_enclave_type_t
This enumeration defines values for the type parameter passed to oe_create_enclave().
oe_result_t oe_get_report_v2(oe_enclave_t *enclave, uint32_t flags, 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.
oe_result_t oe_get_target_info_v2(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.
oe_result_t oe_create_enclave(const char *path, oe_enclave_type_t type, uint32_t flags, const void *config, uint32_t config_size, const oe_ocall_func_t *ocall_table, uint32_t ocall_table_size, oe_enclave_t **enclave)
Create an enclave from an enclave image file.
This file defines Open Enclave return codes (results).
enum _oe_result oe_result_t
This enumeration type defines return codes for Open Enclave functions.
This struct contains the parameters for asymmetric key derivation.
Definition: types.h:198
void oe_free_key(uint8_t *key_buffer, size_t key_buffer_size, uint8_t *key_info, size_t key_info_size)
Frees the given key and/or key info.
oe_result_t oe_get_report_v1(oe_enclave_t *enclave, uint32_t flags, 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.
oe_result_t oe_get_target_info_v1(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.
void oe_free_report(uint8_t *report_buffer)
Frees a report buffer obtained from oe_get_report.
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.
oe_result_t oe_verify_report(oe_enclave_t *enclave, const uint8_t *report, size_t report_size, oe_report_t *parsed_report)
Verify the integrity of the report and its signature.
void oe_free_target_info(void *target_info_buffer)
Frees a target info obtained from oe_get_target_info.
oe_result_t oe_terminate_enclave(oe_enclave_t *enclave)
Terminate an enclave and reclaims its resources.
void(* oe_ocall_func_t)(const uint8_t *input_buffer, size_t input_buffer_size, uint8_t *output_buffer, size_t output_buffer_size, size_t *output_bytes_written)
Type of each function in an ocall-table.
Definition: host.h:59
struct _oe_enclave oe_enclave_t
This is an opaque handle to an enclave returned by oe_create_enclave().
Definition: types.h:134
This file defines structures and options passed to oe_get_report functions.