]>
Commit | Line | Data |
---|---|---|
064997fb FG |
1 | #![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)] |
2 | #[link(name = "windows")] | |
3 | extern "system" { | |
4 | #[cfg(feature = "Win32_Foundation")] | |
5 | pub fn CallEnclave(lproutine: isize, lpparameter: *const ::core::ffi::c_void, fwaitforthread: super::super::Foundation::BOOL, lpreturnvalue: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; | |
6 | #[cfg(feature = "Win32_Foundation")] | |
7 | pub fn CreateEnclave(hprocess: super::super::Foundation::HANDLE, lpaddress: *const ::core::ffi::c_void, dwsize: usize, dwinitialcommitment: usize, flenclavetype: u32, lpenclaveinformation: *const ::core::ffi::c_void, dwinfolength: u32, lpenclaveerror: *mut u32) -> *mut ::core::ffi::c_void; | |
8 | #[cfg(feature = "Win32_Foundation")] | |
9 | pub fn CreateEnvironmentBlock(lpenvironment: *mut *mut ::core::ffi::c_void, htoken: super::super::Foundation::HANDLE, binherit: super::super::Foundation::BOOL) -> super::super::Foundation::BOOL; | |
10 | #[cfg(feature = "Win32_Foundation")] | |
11 | pub fn DeleteEnclave(lpaddress: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL; | |
12 | #[cfg(feature = "Win32_Foundation")] | |
13 | pub fn DestroyEnvironmentBlock(lpenvironment: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL; | |
14 | pub fn EnclaveGetAttestationReport(enclavedata: *const u8, report: *mut ::core::ffi::c_void, buffersize: u32, outputsize: *mut u32) -> ::windows_sys::core::HRESULT; | |
15 | pub fn EnclaveGetEnclaveInformation(informationsize: u32, enclaveinformation: *mut ENCLAVE_INFORMATION) -> ::windows_sys::core::HRESULT; | |
16 | pub fn EnclaveSealData(datatoencrypt: *const ::core::ffi::c_void, datatoencryptsize: u32, identitypolicy: ENCLAVE_SEALING_IDENTITY_POLICY, runtimepolicy: u32, protectedblob: *mut ::core::ffi::c_void, buffersize: u32, protectedblobsize: *mut u32) -> ::windows_sys::core::HRESULT; | |
17 | pub fn EnclaveUnsealData(protectedblob: *const ::core::ffi::c_void, protectedblobsize: u32, decrypteddata: *mut ::core::ffi::c_void, buffersize: u32, decrypteddatasize: *mut u32, sealingidentity: *mut ENCLAVE_IDENTITY, unsealingflags: *mut u32) -> ::windows_sys::core::HRESULT; | |
18 | pub fn EnclaveVerifyAttestationReport(enclavetype: u32, report: *const ::core::ffi::c_void, reportsize: u32) -> ::windows_sys::core::HRESULT; | |
19 | #[cfg(feature = "Win32_Foundation")] | |
20 | pub fn ExpandEnvironmentStringsA(lpsrc: super::super::Foundation::PSTR, lpdst: super::super::Foundation::PSTR, nsize: u32) -> u32; | |
21 | #[cfg(feature = "Win32_Foundation")] | |
22 | pub fn ExpandEnvironmentStringsForUserA(htoken: super::super::Foundation::HANDLE, lpsrc: super::super::Foundation::PSTR, lpdest: super::super::Foundation::PSTR, dwsize: u32) -> super::super::Foundation::BOOL; | |
23 | #[cfg(feature = "Win32_Foundation")] | |
24 | pub fn ExpandEnvironmentStringsForUserW(htoken: super::super::Foundation::HANDLE, lpsrc: super::super::Foundation::PWSTR, lpdest: super::super::Foundation::PWSTR, dwsize: u32) -> super::super::Foundation::BOOL; | |
25 | #[cfg(feature = "Win32_Foundation")] | |
26 | pub fn ExpandEnvironmentStringsW(lpsrc: super::super::Foundation::PWSTR, lpdst: super::super::Foundation::PWSTR, nsize: u32) -> u32; | |
27 | #[cfg(feature = "Win32_Foundation")] | |
28 | pub fn FreeEnvironmentStringsA(penv: super::super::Foundation::PSTR) -> super::super::Foundation::BOOL; | |
29 | #[cfg(feature = "Win32_Foundation")] | |
30 | pub fn FreeEnvironmentStringsW(penv: super::super::Foundation::PWSTR) -> super::super::Foundation::BOOL; | |
31 | #[cfg(feature = "Win32_Foundation")] | |
32 | pub fn GetCommandLineA() -> super::super::Foundation::PSTR; | |
33 | #[cfg(feature = "Win32_Foundation")] | |
34 | pub fn GetCommandLineW() -> super::super::Foundation::PWSTR; | |
35 | #[cfg(feature = "Win32_Foundation")] | |
36 | pub fn GetCurrentDirectoryA(nbufferlength: u32, lpbuffer: super::super::Foundation::PSTR) -> u32; | |
37 | #[cfg(feature = "Win32_Foundation")] | |
38 | pub fn GetCurrentDirectoryW(nbufferlength: u32, lpbuffer: super::super::Foundation::PWSTR) -> u32; | |
39 | #[cfg(feature = "Win32_Foundation")] | |
40 | pub fn GetEnvironmentStrings() -> super::super::Foundation::PSTR; | |
41 | #[cfg(feature = "Win32_Foundation")] | |
42 | pub fn GetEnvironmentStringsW() -> super::super::Foundation::PWSTR; | |
43 | #[cfg(feature = "Win32_Foundation")] | |
44 | pub fn GetEnvironmentVariableA(lpname: super::super::Foundation::PSTR, lpbuffer: super::super::Foundation::PSTR, nsize: u32) -> u32; | |
45 | #[cfg(feature = "Win32_Foundation")] | |
46 | pub fn GetEnvironmentVariableW(lpname: super::super::Foundation::PWSTR, lpbuffer: super::super::Foundation::PWSTR, nsize: u32) -> u32; | |
47 | #[cfg(feature = "Win32_Foundation")] | |
48 | pub fn InitializeEnclave(hprocess: super::super::Foundation::HANDLE, lpaddress: *const ::core::ffi::c_void, lpenclaveinformation: *const ::core::ffi::c_void, dwinfolength: u32, lpenclaveerror: *mut u32) -> super::super::Foundation::BOOL; | |
49 | #[cfg(feature = "Win32_Foundation")] | |
50 | pub fn IsEnclaveTypeSupported(flenclavetype: u32) -> super::super::Foundation::BOOL; | |
51 | #[cfg(feature = "Win32_Foundation")] | |
52 | pub fn LoadEnclaveData(hprocess: super::super::Foundation::HANDLE, lpaddress: *const ::core::ffi::c_void, lpbuffer: *const ::core::ffi::c_void, nsize: usize, flprotect: u32, lppageinformation: *const ::core::ffi::c_void, dwinfolength: u32, lpnumberofbyteswritten: *mut usize, lpenclaveerror: *mut u32) -> super::super::Foundation::BOOL; | |
53 | #[cfg(feature = "Win32_Foundation")] | |
54 | pub fn LoadEnclaveImageA(lpenclaveaddress: *const ::core::ffi::c_void, lpimagename: super::super::Foundation::PSTR) -> super::super::Foundation::BOOL; | |
55 | #[cfg(feature = "Win32_Foundation")] | |
56 | pub fn LoadEnclaveImageW(lpenclaveaddress: *const ::core::ffi::c_void, lpimagename: super::super::Foundation::PWSTR) -> super::super::Foundation::BOOL; | |
57 | #[cfg(feature = "Win32_Foundation")] | |
58 | pub fn NeedCurrentDirectoryForExePathA(exename: super::super::Foundation::PSTR) -> super::super::Foundation::BOOL; | |
59 | #[cfg(feature = "Win32_Foundation")] | |
60 | pub fn NeedCurrentDirectoryForExePathW(exename: super::super::Foundation::PWSTR) -> super::super::Foundation::BOOL; | |
61 | #[cfg(feature = "Win32_Foundation")] | |
62 | pub fn SetCurrentDirectoryA(lppathname: super::super::Foundation::PSTR) -> super::super::Foundation::BOOL; | |
63 | #[cfg(feature = "Win32_Foundation")] | |
64 | pub fn SetCurrentDirectoryW(lppathname: super::super::Foundation::PWSTR) -> super::super::Foundation::BOOL; | |
65 | #[cfg(feature = "Win32_Foundation")] | |
66 | pub fn SetEnvironmentStringsW(newenvironment: super::super::Foundation::PWSTR) -> super::super::Foundation::BOOL; | |
67 | #[cfg(feature = "Win32_Foundation")] | |
68 | pub fn SetEnvironmentVariableA(lpname: super::super::Foundation::PSTR, lpvalue: super::super::Foundation::PSTR) -> super::super::Foundation::BOOL; | |
69 | #[cfg(feature = "Win32_Foundation")] | |
70 | pub fn SetEnvironmentVariableW(lpname: super::super::Foundation::PWSTR, lpvalue: super::super::Foundation::PWSTR) -> super::super::Foundation::BOOL; | |
71 | #[cfg(feature = "Win32_Foundation")] | |
72 | pub fn TerminateEnclave(lpaddress: *const ::core::ffi::c_void, fwait: super::super::Foundation::BOOL) -> super::super::Foundation::BOOL; | |
73 | } | |
74 | pub const ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE: u32 = 4u32; | |
75 | pub const ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED: u32 = 2u32; | |
76 | pub const ENCLAVE_FLAG_FULL_DEBUG_ENABLED: u32 = 1u32; | |
77 | #[repr(C, packed(1))] | |
78 | pub struct ENCLAVE_IDENTITY { | |
79 | pub OwnerId: [u8; 32], | |
80 | pub UniqueId: [u8; 32], | |
81 | pub AuthorId: [u8; 32], | |
82 | pub FamilyId: [u8; 16], | |
83 | pub ImageId: [u8; 16], | |
84 | pub EnclaveSvn: u32, | |
85 | pub SecureKernelSvn: u32, | |
86 | pub PlatformSvn: u32, | |
87 | pub Flags: u32, | |
88 | pub SigningLevel: u32, | |
89 | pub EnclaveType: u32, | |
90 | } | |
91 | impl ::core::marker::Copy for ENCLAVE_IDENTITY {} | |
92 | impl ::core::clone::Clone for ENCLAVE_IDENTITY { | |
93 | fn clone(&self) -> Self { | |
94 | *self | |
95 | } | |
96 | } | |
97 | #[repr(C)] | |
98 | pub struct ENCLAVE_INFORMATION { | |
99 | pub EnclaveType: u32, | |
100 | pub Reserved: u32, | |
101 | pub BaseAddress: *mut ::core::ffi::c_void, | |
102 | pub Size: usize, | |
103 | pub Identity: ENCLAVE_IDENTITY, | |
104 | } | |
105 | impl ::core::marker::Copy for ENCLAVE_INFORMATION {} | |
106 | impl ::core::clone::Clone for ENCLAVE_INFORMATION { | |
107 | fn clone(&self) -> Self { | |
108 | *self | |
109 | } | |
110 | } | |
111 | pub const ENCLAVE_REPORT_DATA_LENGTH: u32 = 64u32; | |
112 | pub const ENCLAVE_RUNTIME_POLICY_ALLOW_DYNAMIC_DEBUG: u32 = 2u32; | |
113 | pub const ENCLAVE_RUNTIME_POLICY_ALLOW_FULL_DEBUG: u32 = 1u32; | |
114 | pub type ENCLAVE_SEALING_IDENTITY_POLICY = i32; | |
115 | pub const ENCLAVE_IDENTITY_POLICY_SEAL_INVALID: ENCLAVE_SEALING_IDENTITY_POLICY = 0i32; | |
116 | pub const ENCLAVE_IDENTITY_POLICY_SEAL_EXACT_CODE: ENCLAVE_SEALING_IDENTITY_POLICY = 1i32; | |
117 | pub const ENCLAVE_IDENTITY_POLICY_SEAL_SAME_PRIMARY_CODE: ENCLAVE_SEALING_IDENTITY_POLICY = 2i32; | |
118 | pub const ENCLAVE_IDENTITY_POLICY_SEAL_SAME_IMAGE: ENCLAVE_SEALING_IDENTITY_POLICY = 3i32; | |
119 | pub const ENCLAVE_IDENTITY_POLICY_SEAL_SAME_FAMILY: ENCLAVE_SEALING_IDENTITY_POLICY = 4i32; | |
120 | pub const ENCLAVE_IDENTITY_POLICY_SEAL_SAME_AUTHOR: ENCLAVE_SEALING_IDENTITY_POLICY = 5i32; | |
121 | pub const ENCLAVE_UNSEAL_FLAG_STALE_KEY: u32 = 1u32; | |
122 | pub const ENCLAVE_VBS_BASIC_KEY_FLAG_DEBUG_KEY: u32 = 8u32; | |
123 | pub const ENCLAVE_VBS_BASIC_KEY_FLAG_FAMILY_ID: u32 = 2u32; | |
124 | pub const ENCLAVE_VBS_BASIC_KEY_FLAG_IMAGE_ID: u32 = 4u32; | |
125 | pub const ENCLAVE_VBS_BASIC_KEY_FLAG_MEASUREMENT: u32 = 1u32; | |
126 | #[repr(C)] | |
127 | pub struct ENCLAVE_VBS_BASIC_KEY_REQUEST { | |
128 | pub RequestSize: u32, | |
129 | pub Flags: u32, | |
130 | pub EnclaveSVN: u32, | |
131 | pub SystemKeyID: u32, | |
132 | pub CurrentSystemKeyID: u32, | |
133 | } | |
134 | impl ::core::marker::Copy for ENCLAVE_VBS_BASIC_KEY_REQUEST {} | |
135 | impl ::core::clone::Clone for ENCLAVE_VBS_BASIC_KEY_REQUEST { | |
136 | fn clone(&self) -> Self { | |
137 | *self | |
138 | } | |
139 | } | |
140 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_COMMIT_PAGES = unsafe extern "system" fn(enclaveaddress: *const ::core::ffi::c_void, numberofbytes: usize, sourceaddress: *const ::core::ffi::c_void, pageprotection: u32) -> i32; | |
141 | #[cfg(any(target_arch = "x86_64", target_arch = "aarch64",))] | |
142 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_CREATE_THREAD = unsafe extern "system" fn(threaddescriptor: *const VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR64) -> i32; | |
143 | #[cfg(any(target_arch = "x86",))] | |
144 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_CREATE_THREAD = unsafe extern "system" fn(threaddescriptor: *const VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR32) -> i32; | |
145 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_DECOMMIT_PAGES = unsafe extern "system" fn(enclaveaddress: *const ::core::ffi::c_void, numberofbytes: usize) -> i32; | |
146 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_GENERATE_KEY = unsafe extern "system" fn(keyrequest: *mut ENCLAVE_VBS_BASIC_KEY_REQUEST, requestedkeysize: u32, returnedkey: *mut u8) -> i32; | |
147 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_GENERATE_RANDOM_DATA = unsafe extern "system" fn(buffer: *mut u8, numberofbytes: u32, generation: *mut u64) -> i32; | |
148 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_GENERATE_REPORT = unsafe extern "system" fn(enclavedata: *const u8, report: *mut ::core::ffi::c_void, buffersize: u32, outputsize: *mut u32) -> i32; | |
149 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_GET_ENCLAVE_INFORMATION = unsafe extern "system" fn(enclaveinfo: *mut ENCLAVE_INFORMATION) -> i32; | |
150 | #[cfg(any(target_arch = "x86_64", target_arch = "aarch64",))] | |
151 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_INTERRUPT_THREAD = unsafe extern "system" fn(threaddescriptor: *const VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR64) -> i32; | |
152 | #[cfg(any(target_arch = "x86",))] | |
153 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_INTERRUPT_THREAD = unsafe extern "system" fn(threaddescriptor: *const VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR32) -> i32; | |
154 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_PROTECT_PAGES = unsafe extern "system" fn(enclaveaddress: *const ::core::ffi::c_void, numberofytes: usize, pageprotection: u32) -> i32; | |
155 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_RETURN_FROM_ENCLAVE = unsafe extern "system" fn(returnvalue: usize); | |
156 | #[cfg(any(target_arch = "x86_64",))] | |
157 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_RETURN_FROM_EXCEPTION = unsafe extern "system" fn(exceptionrecord: *const VBS_BASIC_ENCLAVE_EXCEPTION_AMD64) -> i32; | |
158 | #[cfg(any(target_arch = "x86", target_arch = "aarch64",))] | |
159 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_RETURN_FROM_EXCEPTION = unsafe extern "system" fn(exceptionrecord: *const ::core::ffi::c_void) -> i32; | |
160 | #[cfg(any(target_arch = "x86_64", target_arch = "aarch64",))] | |
161 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_TERMINATE_THREAD = unsafe extern "system" fn(threaddescriptor: *const VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR64) -> i32; | |
162 | #[cfg(any(target_arch = "x86",))] | |
163 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_TERMINATE_THREAD = unsafe extern "system" fn(threaddescriptor: *const VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR32) -> i32; | |
164 | pub type VBS_BASIC_ENCLAVE_BASIC_CALL_VERIFY_REPORT = unsafe extern "system" fn(report: *const ::core::ffi::c_void, reportsize: u32) -> i32; | |
165 | #[repr(C)] | |
166 | pub struct VBS_BASIC_ENCLAVE_EXCEPTION_AMD64 { | |
167 | pub ExceptionCode: u32, | |
168 | pub NumberParameters: u32, | |
169 | pub ExceptionInformation: [usize; 3], | |
170 | pub ExceptionRAX: usize, | |
171 | pub ExceptionRCX: usize, | |
172 | pub ExceptionRIP: usize, | |
173 | pub ExceptionRFLAGS: usize, | |
174 | pub ExceptionRSP: usize, | |
175 | } | |
176 | impl ::core::marker::Copy for VBS_BASIC_ENCLAVE_EXCEPTION_AMD64 {} | |
177 | impl ::core::clone::Clone for VBS_BASIC_ENCLAVE_EXCEPTION_AMD64 { | |
178 | fn clone(&self) -> Self { | |
179 | *self | |
180 | } | |
181 | } | |
182 | #[repr(C)] | |
183 | pub struct VBS_BASIC_ENCLAVE_SYSCALL_PAGE { | |
184 | pub ReturnFromEnclave: VBS_BASIC_ENCLAVE_BASIC_CALL_RETURN_FROM_ENCLAVE, | |
185 | pub ReturnFromException: VBS_BASIC_ENCLAVE_BASIC_CALL_RETURN_FROM_EXCEPTION, | |
186 | pub TerminateThread: VBS_BASIC_ENCLAVE_BASIC_CALL_TERMINATE_THREAD, | |
187 | pub InterruptThread: VBS_BASIC_ENCLAVE_BASIC_CALL_INTERRUPT_THREAD, | |
188 | pub CommitPages: VBS_BASIC_ENCLAVE_BASIC_CALL_COMMIT_PAGES, | |
189 | pub DecommitPages: VBS_BASIC_ENCLAVE_BASIC_CALL_DECOMMIT_PAGES, | |
190 | pub ProtectPages: VBS_BASIC_ENCLAVE_BASIC_CALL_PROTECT_PAGES, | |
191 | pub CreateThread: VBS_BASIC_ENCLAVE_BASIC_CALL_CREATE_THREAD, | |
192 | pub GetEnclaveInformation: VBS_BASIC_ENCLAVE_BASIC_CALL_GET_ENCLAVE_INFORMATION, | |
193 | pub GenerateKey: VBS_BASIC_ENCLAVE_BASIC_CALL_GENERATE_KEY, | |
194 | pub GenerateReport: VBS_BASIC_ENCLAVE_BASIC_CALL_GENERATE_REPORT, | |
195 | pub VerifyReport: VBS_BASIC_ENCLAVE_BASIC_CALL_VERIFY_REPORT, | |
196 | pub GenerateRandomData: VBS_BASIC_ENCLAVE_BASIC_CALL_GENERATE_RANDOM_DATA, | |
197 | } | |
198 | impl ::core::marker::Copy for VBS_BASIC_ENCLAVE_SYSCALL_PAGE {} | |
199 | impl ::core::clone::Clone for VBS_BASIC_ENCLAVE_SYSCALL_PAGE { | |
200 | fn clone(&self) -> Self { | |
201 | *self | |
202 | } | |
203 | } | |
204 | #[repr(C)] | |
205 | pub struct VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR32 { | |
206 | pub ThreadContext: [u32; 4], | |
207 | pub EntryPoint: u32, | |
208 | pub StackPointer: u32, | |
209 | pub ExceptionEntryPoint: u32, | |
210 | pub ExceptionStack: u32, | |
211 | pub ExceptionActive: u32, | |
212 | } | |
213 | impl ::core::marker::Copy for VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR32 {} | |
214 | impl ::core::clone::Clone for VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR32 { | |
215 | fn clone(&self) -> Self { | |
216 | *self | |
217 | } | |
218 | } | |
219 | #[repr(C)] | |
220 | pub struct VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR64 { | |
221 | pub ThreadContext: [u64; 4], | |
222 | pub EntryPoint: u64, | |
223 | pub StackPointer: u64, | |
224 | pub ExceptionEntryPoint: u64, | |
225 | pub ExceptionStack: u64, | |
226 | pub ExceptionActive: u32, | |
227 | } | |
228 | impl ::core::marker::Copy for VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR64 {} | |
229 | impl ::core::clone::Clone for VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR64 { | |
230 | fn clone(&self) -> Self { | |
231 | *self | |
232 | } | |
233 | } | |
234 | #[repr(C, packed(1))] | |
235 | pub struct VBS_ENCLAVE_REPORT { | |
236 | pub ReportSize: u32, | |
237 | pub ReportVersion: u32, | |
238 | pub EnclaveData: [u8; 64], | |
239 | pub EnclaveIdentity: ENCLAVE_IDENTITY, | |
240 | } | |
241 | impl ::core::marker::Copy for VBS_ENCLAVE_REPORT {} | |
242 | impl ::core::clone::Clone for VBS_ENCLAVE_REPORT { | |
243 | fn clone(&self) -> Self { | |
244 | *self | |
245 | } | |
246 | } | |
247 | #[repr(C, packed(1))] | |
248 | pub struct VBS_ENCLAVE_REPORT_MODULE { | |
249 | pub Header: VBS_ENCLAVE_REPORT_VARDATA_HEADER, | |
250 | pub UniqueId: [u8; 32], | |
251 | pub AuthorId: [u8; 32], | |
252 | pub FamilyId: [u8; 16], | |
253 | pub ImageId: [u8; 16], | |
254 | pub Svn: u32, | |
255 | pub ModuleName: [u16; 1], | |
256 | } | |
257 | impl ::core::marker::Copy for VBS_ENCLAVE_REPORT_MODULE {} | |
258 | impl ::core::clone::Clone for VBS_ENCLAVE_REPORT_MODULE { | |
259 | fn clone(&self) -> Self { | |
260 | *self | |
261 | } | |
262 | } | |
263 | #[repr(C, packed(1))] | |
264 | pub struct VBS_ENCLAVE_REPORT_PKG_HEADER { | |
265 | pub PackageSize: u32, | |
266 | pub Version: u32, | |
267 | pub SignatureScheme: u32, | |
268 | pub SignedStatementSize: u32, | |
269 | pub SignatureSize: u32, | |
270 | pub Reserved: u32, | |
271 | } | |
272 | impl ::core::marker::Copy for VBS_ENCLAVE_REPORT_PKG_HEADER {} | |
273 | impl ::core::clone::Clone for VBS_ENCLAVE_REPORT_PKG_HEADER { | |
274 | fn clone(&self) -> Self { | |
275 | *self | |
276 | } | |
277 | } | |
278 | pub const VBS_ENCLAVE_REPORT_PKG_HEADER_VERSION_CURRENT: u32 = 1u32; | |
279 | pub const VBS_ENCLAVE_REPORT_SIGNATURE_SCHEME_SHA256_RSA_PSS_SHA256: u32 = 1u32; | |
280 | #[repr(C, packed(1))] | |
281 | pub struct VBS_ENCLAVE_REPORT_VARDATA_HEADER { | |
282 | pub DataType: u32, | |
283 | pub Size: u32, | |
284 | } | |
285 | impl ::core::marker::Copy for VBS_ENCLAVE_REPORT_VARDATA_HEADER {} | |
286 | impl ::core::clone::Clone for VBS_ENCLAVE_REPORT_VARDATA_HEADER { | |
287 | fn clone(&self) -> Self { | |
288 | *self | |
289 | } | |
290 | } | |
291 | pub const VBS_ENCLAVE_REPORT_VERSION_CURRENT: u32 = 1u32; | |
292 | pub const VBS_ENCLAVE_VARDATA_INVALID: u32 = 0u32; | |
293 | pub const VBS_ENCLAVE_VARDATA_MODULE: u32 = 1u32; |