Open Enclave  0.18.0
report.h
Go to the documentation of this file.
1 // Copyright (c) Open Enclave SDK contributors.
2 // Licensed under the MIT License.
3 
10 #ifndef _OE_BITS_REPORT_H
11 #define _OE_BITS_REPORT_H
12 
13 #include "defs.h"
14 #include "types.h"
15 
16 OE_EXTERNC_BEGIN
17 
22 #define OE_REPORT_FLAGS_REMOTE_ATTESTATION 0x00000001
23 
27 #define OE_REPORT_DATA_SIZE 64
28 
32 #define OE_MAX_REPORT_SIZE (10 * 1024)
33 
37 // Fixed identity property sizes for OEv1
41 #define OE_UNIQUE_ID_SIZE 32
42 
45 #define OE_SIGNER_ID_SIZE 32
46 
49 #define OE_PRODUCT_ID_SIZE 16
50 
54 #define OE_REPORT_ATTRIBUTES_DEBUG 0x0000000000000001ULL
55 
58 #define OE_REPORT_ATTRIBUTES_REMOTE 0x0000000000000002ULL
59 
62 #define OE_REPORT_ATTRIBUTES_RESERVED \
63  (~(OE_REPORT_ATTRIBUTES_DEBUG | OE_REPORT_ATTRIBUTES_REMOTE))
64 
80 typedef struct _oe_identity
81 {
83  uint32_t id_version;
84 
87  uint32_t security_version;
88 
93  uint64_t attributes;
94 
97  uint8_t unique_id[OE_UNIQUE_ID_SIZE];
98 
101  uint8_t signer_id[OE_SIGNER_ID_SIZE];
102 
105  uint8_t product_id[OE_PRODUCT_ID_SIZE];
106 } oe_identity_t;
112 typedef struct _oe_report
113 {
115  size_t size;
116 
119 
122 
125 
128  uint8_t* report_data;
129 
132  uint8_t* enclave_report;
133 
136 } oe_report_t;
139 OE_EXTERNC_END
140 
141 #endif /* _OE_BITS_REPORT_H */
_oe_report
Structure to hold the parsed form of a report.
Definition: report.h:112
_oe_identity::signer_id
uint8_t signer_id[OE_SIGNER_ID_SIZE]
The signer ID for the enclave.
Definition: report.h:101
oe_enclave_type_t
enum _oe_enclave_type oe_enclave_type_t
This enumeration defines values for the type parameter passed to oe_create_enclave().
_oe_identity::id_version
uint32_t id_version
Version of the oe_identity_t structure.
Definition: report.h:83
types.h
_oe_identity::security_version
uint32_t security_version
Security version of the enclave.
Definition: report.h:87
_oe_identity
Structure to represent the identity of an enclave.
Definition: report.h:80
_oe_report::enclave_report
uint8_t * enclave_report
Pointer to report body field within the report byte-stream supplied to oe_parse_report.
Definition: report.h:132
_oe_identity::product_id
uint8_t product_id[OE_PRODUCT_ID_SIZE]
The Product ID for the enclave.
Definition: report.h:105
_oe_identity::attributes
uint64_t attributes
Values of the attributes flags for the enclave - OE_REPORT_ATTRIBUTES_DEBUG: The report is for a debu...
Definition: report.h:93
_oe_report::identity
oe_identity_t identity
Contains the IDs and attributes that are part of oe_identity_t.
Definition: report.h:135
oe_report_t
struct _oe_report oe_report_t
Structure to hold the parsed form of a report.
_oe_report::report_data
uint8_t * report_data
Pointer to report data field within the report byte-stream supplied to oe_parse_report.
Definition: report.h:128
_oe_report::report_data_size
size_t report_data_size
Size of report_data.
Definition: report.h:121
_oe_report::size
size_t size
Size of the oe_report_t structure.
Definition: report.h:115
_oe_report::enclave_report_size
size_t enclave_report_size
Size of enclave_report.
Definition: report.h:124
_oe_identity::unique_id
uint8_t unique_id[OE_UNIQUE_ID_SIZE]
The unique ID for the enclave.
Definition: report.h:97
_oe_report::type
oe_enclave_type_t type
The enclave type.
Definition: report.h:118
oe_identity_t
struct _oe_identity oe_identity_t
Structure to represent the identity of an enclave.