Open Enclave
0.13.0
|
This file defines the programming interface for developing enclaves. More...
#include <openenclave/bits/asym_keys.h>
#include "bits/defs.h"
#include "bits/evidence.h"
#include "bits/exception.h"
#include "bits/fs.h"
#include "bits/module.h"
#include "bits/properties.h"
#include "bits/result.h"
#include "bits/types.h"
Go to the source code of this file.
Macros | |
#define | sscanf_s sscanf |
#define | oe_assert(EXPR) |
Evaluates assertion. More... | |
#define | oe_get_report oe_get_report_v2 |
#define | oe_get_target_info oe_get_target_info_v2 |
#define | oe_get_seal_key_by_policy oe_get_seal_key_by_policy_v2 |
#define | oe_get_seal_key oe_get_seal_key_v2 |
Typedefs | |
typedef oe_result_t(* | oe_identity_verify_callback_t) (oe_identity_t *identity, void *arg) |
identity validation callback type More... | |
Functions | |
oe_result_t | oe_add_vectored_exception_handler (bool is_first_handler, oe_vectored_exception_handler_t vectored_handler) |
OP-TEE provides single-threaded enclaves only, and its ELF loader does not support thread-local relocations. More... | |
oe_result_t | oe_remove_vectored_exception_handler (oe_vectored_exception_handler_t vectored_handler) |
Remove an existing vectored exception handler. 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) OE_NO_RETURN |
Abort execution of the enclave. More... | |
oe_result_t | oe_get_report_v2 (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... | |
void | oe_free_report (uint8_t *report_buffer) |
Frees a report buffer obtained from oe_get_report. More... | |
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. More... | |
void | oe_free_target_info (void *target_info) |
Frees target info obtained from oe_get_target_info. 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_v2 (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_public_key_by_policy (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. More... | |
oe_result_t | oe_get_public_key (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. More... | |
oe_result_t | oe_get_private_key_by_policy (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 private key that is associated with the identity of the enclave and the specified policy. More... | |
oe_result_t | oe_get_private_key (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 private key that is associated with the identity of the enclave. More... | |
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. More... | |
oe_result_t | oe_get_seal_key_v2 (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... | |
void | oe_free_seal_key (uint8_t *key_buffer, uint8_t *key_info) |
Frees a key and/or key info. More... | |
oe_enclave_t * | oe_get_enclave (void) |
Obtains the enclave handle. More... | |
oe_result_t | oe_random (void *data, size_t size) |
Generate a sequence of random bytes. More... | |
oe_result_t | oe_generate_attestation_certificate (const unsigned char *subject_name, uint8_t *private_key, size_t private_key_size, uint8_t *public_key, size_t public_key_size, uint8_t **output_cert, size_t *output_cert_size) |
oe_generate_attestation_certificate. More... | |
void | oe_free_attestation_certificate (uint8_t *cert) |
Free the given cert. More... | |
oe_result_t | oe_verify_attestation_certificate (uint8_t *cert_in_der, size_t cert_in_der_len, oe_identity_verify_callback_t enclave_identity_callback, void *arg) |
oe_verify_attestation_certificate More... | |
This file defines the programming interface for developing enclaves.