LIEF: Library to Instrument Executable Formats Version 0.17.0
|
This class represents the enclave configuration. More...
#include <EnclaveConfiguration.hpp>
Public Types | |
using | id_array_t = std::array<uint8_t, 16> |
using | imports_t = std::vector<EnclaveImport> |
using | it_imports = ref_iterator<imports_t&> |
using | it_const_imports = const_ref_iterator<const imports_t&> |
Public Member Functions | |
EnclaveConfiguration ()=default | |
EnclaveConfiguration (const EnclaveConfiguration &)=default | |
EnclaveConfiguration & | operator= (const EnclaveConfiguration &)=default |
EnclaveConfiguration (EnclaveConfiguration &&)=default | |
EnclaveConfiguration & | operator= (EnclaveConfiguration &&)=default |
std::unique_ptr< EnclaveConfiguration > | clone () const |
uint32_t | size () const |
The size of the IMAGE_ENCLAVE_CONFIG64/IMAGE_ENCLAVE_CONFIG32 structure, in bytes. | |
uint32_t | min_required_config_size () const |
The minimum size of the IMAGE_ENCLAVE_CONFIG(32,64) structure that the image loader must be able to process in order for the enclave to be usable. | |
uint32_t | policy_flags () const |
A flag that indicates whether the enclave permits debugging. | |
bool | is_debuggable () const |
Whether this enclave can be debugged. | |
uint32_t | import_list_rva () const |
The RVA of the array of images that the enclave image may import, with identity information for each image. | |
uint32_t | import_entry_size () const |
The size of each image in the array of images that the import_list_rva() member points to. | |
size_t | nb_imports () const |
The number of images in the array of images that the import_list_rva() member points to. | |
it_imports | imports () |
Return an iterator over the enclave's imports. | |
it_const_imports | imports () const |
const id_array_t & | family_id () const |
The family identifier that the author of the enclave assigned to the enclave. | |
const id_array_t & | image_id () const |
The image identifier that the author of the enclave assigned to the enclave. | |
uint32_t | image_version () const |
The version number that the author of the enclave assigned to the enclave. | |
uint32_t | security_version () const |
The security version number that the author of the enclave assigned to the enclave. | |
uint64_t | enclave_size () const |
The expected virtual size of the private address range for the enclave, in bytes. | |
uint32_t | nb_threads () const |
The maximum number of threads that can be created within the enclave. | |
uint32_t | enclave_flags () const |
A flag that indicates whether the image is suitable for use as the primary image in the enclave. | |
EnclaveConfiguration & | size (uint32_t value) |
EnclaveConfiguration & | min_required_config_size (uint32_t value) |
EnclaveConfiguration & | policy_flags (uint32_t value) |
EnclaveConfiguration & | import_list_rva (uint32_t value) |
EnclaveConfiguration & | import_entry_size (uint32_t value) |
EnclaveConfiguration & | family_id (const id_array_t &value) |
EnclaveConfiguration & | image_id (const id_array_t &value) |
EnclaveConfiguration & | image_version (uint32_t value) |
EnclaveConfiguration & | security_version (uint32_t value) |
EnclaveConfiguration & | enclave_size (uint64_t value) |
EnclaveConfiguration & | nb_threads (uint32_t value) |
EnclaveConfiguration & | enclave_flags (uint32_t value) |
std::string | to_string () const |
Static Public Attributes | |
static constexpr auto | MIN_SIZE = 0x4C |
static constexpr auto | POLICY_DEBUGGABLE = 0x00000001 |
This class represents the enclave configuration.
using LIEF::PE::EnclaveConfiguration::id_array_t = std::array<uint8_t, 16> |
using LIEF::PE::EnclaveConfiguration::imports_t = std::vector<EnclaveImport> |
|
default |
|
default |
|
default |
|
inline |
|
inline |
A flag that indicates whether the image is suitable for use as the primary image in the enclave.
|
inline |
|
inline |
The expected virtual size of the private address range for the enclave, in bytes.
|
inline |
|
inline |
The family identifier that the author of the enclave assigned to the enclave.
|
inline |
|
inline |
The image identifier that the author of the enclave assigned to the enclave.
|
inline |
|
inline |
The version number that the author of the enclave assigned to the enclave.
|
inline |
|
inline |
The size of each image in the array of images that the import_list_rva() member points to.
|
inline |
|
inline |
The RVA of the array of images that the enclave image may import, with identity information for each image.
|
inline |
|
inline |
Return an iterator over the enclave's imports.
|
inline |
|
inline |
Whether this enclave can be debugged.
|
inline |
The minimum size of the IMAGE_ENCLAVE_CONFIG(32,64)
structure that the image loader must be able to process in order for the enclave to be usable.
This member allows an enclave to inform an earlier version of the image loader that the image loader can safely load the enclave and ignore optional members added to IMAGE_ENCLAVE_CONFIG(32,64)
for later versions of the enclave. If the size of IMAGE_ENCLAVE_CONFIG(32,64)
that the image loader can process is less than MinimumRequiredConfigSize
, the enclave cannot be run securely.
If MinimumRequiredConfigSize
is zero, the minimum size of the IMAGE_ENCLAVE_CONFIG(32,64)
structure that the image loader must be able to process in order for the enclave to be usable is assumed to be the size of the structure through and including the MinimumRequiredConfigSize
member.
|
inline |
|
inline |
The number of images in the array of images that the import_list_rva() member points to.
|
inline |
The maximum number of threads that can be created within the enclave.
|
inline |
|
default |
|
default |
|
inline |
A flag that indicates whether the enclave permits debugging.
|
inline |
|
inline |
The security version number that the author of the enclave assigned to the enclave.
|
inline |
|
inline |
The size of the IMAGE_ENCLAVE_CONFIG64/IMAGE_ENCLAVE_CONFIG32
structure, in bytes.
|
inline |
std::string LIEF::PE::EnclaveConfiguration::to_string | ( | ) | const |
Referenced by operator<<.
|
staticconstexpr |
|
staticconstexpr |