Open Enclave  0.6.x
report.h
Go to the documentation of this file.
1 // Copyright (c) Microsoft Corporation. All rights reserved.
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 */
This file defines the types used by the OE SDK.
uint8_t * report_data
Pointer to report data field within the report byte-stream supplied to oe_parse_report.
Definition: report.h:128
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().
Structure to represent the identity of an enclave.
Definition: report.h:80
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
size_t size
Size of the oe_report_t structure.
Definition: report.h:115
uint32_t id_version
Version of the oe_identity_t structure.
Definition: report.h:83
oe_identity_t identity
Contains the IDs and attributes that are part of oe_identity_t.
Definition: report.h:135
size_t report_data_size
Size of report_data.
Definition: report.h:121
uint8_t unique_id[OE_UNIQUE_ID_SIZE]
The unique ID for the enclave.
Definition: report.h:97
uint8_t product_id[OE_PRODUCT_ID_SIZE]
The Product ID for the enclave.
Definition: report.h:105
uint8_t signer_id[OE_SIGNER_ID_SIZE]
The signer ID for the enclave.
Definition: report.h:101
struct _oe_report oe_report_t
Structure to hold the parsed form of a report.
oe_enclave_type_t type
The enclave type.
Definition: report.h:118
size_t enclave_report_size
Size of enclave_report.
Definition: report.h:124
uint8_t * enclave_report
Pointer to report body field within the report byte-stream supplied to oe_parse_report.
Definition: report.h:132
struct _oe_identity oe_identity_t
Structure to represent the identity of an enclave.
uint32_t security_version
Security version of the enclave.
Definition: report.h:87