1use crate::{
8 data::{
9 Tpm2bAttest, Tpm2bAuth, Tpm2bData, Tpm2bMaxNvBuffer, Tpm2bName, Tpm2bNvPublic, TpmCc,
10 TpmtSignature,
11 },
12 tpm_struct,
13};
14use core::fmt::Debug;
15
16tpm_struct! {
17 #[derive(Debug, PartialEq, Eq, Clone)]
18 kind: Command,
19 name: TpmNvDefineSpaceCommand,
20 cc: TpmCc::NvDefineSpace,
21 no_sessions: false,
22 with_sessions: true,
23 handles: {
24 pub auth_handle: crate::data::TpmiRhHierarchy,
25 },
26 parameters: {
27 pub auth: Tpm2bAuth,
28 pub public_info: Tpm2bNvPublic,
29 }
30}
31
32tpm_struct! {
33 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
34 kind: Response,
35 name: TpmNvDefineSpaceResponse,
36 cc: TpmCc::NvDefineSpace,
37 no_sessions: false,
38 with_sessions: true,
39 handles: {},
40 parameters: {}
41}
42
43tpm_struct! {
44 #[derive(Debug, PartialEq, Eq, Copy, Clone)]
45 kind: Command,
46 name: TpmNvUndefineSpaceCommand,
47 cc: TpmCc::NvUndefineSpace,
48 no_sessions: false,
49 with_sessions: true,
50 handles: {
51 pub auth_handle: crate::data::TpmiRhHierarchy,
52 pub nv_index: u32,
53 },
54 parameters: {}
55}
56
57tpm_struct! {
58 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
59 kind: Response,
60 name: TpmNvUndefineSpaceResponse,
61 cc: TpmCc::NvUndefineSpace,
62 no_sessions: false,
63 with_sessions: true,
64 handles: {},
65 parameters: {}
66}
67
68tpm_struct! {
69 #[derive(Debug, PartialEq, Eq, Copy, Clone)]
70 kind: Command,
71 name: TpmNvUndefineSpaceSpecialCommand,
72 cc: TpmCc::NvUndefineSpaceSpecial,
73 no_sessions: false,
74 with_sessions: true,
75 handles: {
76 pub nv_index: u32,
77 pub platform: crate::data::TpmiRhHierarchy,
78 },
79 parameters: {}
80}
81
82tpm_struct! {
83 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
84 kind: Response,
85 name: TpmNvUndefineSpaceSpecialResponse,
86 cc: TpmCc::NvUndefineSpaceSpecial,
87 no_sessions: false,
88 with_sessions: true,
89 handles: {},
90 parameters: {}
91}
92
93tpm_struct! {
94 #[derive(Debug, PartialEq, Eq, Copy, Clone)]
95 kind: Command,
96 name: TpmNvReadPublicCommand,
97 cc: TpmCc::NvReadPublic,
98 no_sessions: true,
99 with_sessions: false,
100 handles: {
101 pub nv_index: u32,
102 },
103 parameters: {}
104}
105
106tpm_struct! {
107 #[derive(Debug, PartialEq, Eq, Clone)]
108 kind: Response,
109 name: TpmNvReadPublicResponse,
110 cc: TpmCc::NvReadPublic,
111 no_sessions: true,
112 with_sessions: false,
113 handles: {},
114 parameters: {
115 pub nv_public: Tpm2bNvPublic,
116 pub nv_name: Tpm2bName,
117 }
118}
119
120tpm_struct! {
121 #[derive(Debug, PartialEq, Eq, Clone)]
122 kind: Command,
123 name: TpmNvWriteCommand,
124 cc: TpmCc::NvWrite,
125 no_sessions: false,
126 with_sessions: true,
127 handles: {
128 pub auth_handle: crate::data::TpmiDhObject,
129 pub nv_index: u32,
130 },
131 parameters: {
132 pub data: Tpm2bMaxNvBuffer,
133 pub offset: u16,
134 }
135}
136
137tpm_struct! {
138 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
139 kind: Response,
140 name: TpmNvWriteResponse,
141 cc: TpmCc::NvWrite,
142 no_sessions: false,
143 with_sessions: true,
144 handles: {},
145 parameters: {}
146}
147
148tpm_struct! {
149 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
150 kind: Command,
151 name: TpmNvIncrementCommand,
152 cc: TpmCc::NvIncrement,
153 no_sessions: false,
154 with_sessions: true,
155 handles: {
156 pub auth_handle: crate::data::TpmiDhObject,
157 pub nv_index: u32,
158 },
159 parameters: {}
160}
161
162tpm_struct! {
163 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
164 kind: Response,
165 name: TpmNvIncrementResponse,
166 cc: TpmCc::NvIncrement,
167 no_sessions: false,
168 with_sessions: true,
169 handles: {},
170 parameters: {}
171}
172
173tpm_struct! {
174 #[derive(Debug, PartialEq, Eq, Clone)]
175 kind: Command,
176 name: TpmNvExtendCommand,
177 cc: TpmCc::NvExtend,
178 no_sessions: false,
179 with_sessions: true,
180 handles: {
181 pub auth_handle: crate::data::TpmiDhObject,
182 pub nv_index: u32,
183 },
184 parameters: {
185 pub data: Tpm2bMaxNvBuffer,
186 }
187}
188
189tpm_struct! {
190 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
191 kind: Response,
192 name: TpmNvExtendResponse,
193 cc: TpmCc::NvExtend,
194 no_sessions: false,
195 with_sessions: true,
196 handles: {},
197 parameters: {}
198}
199
200tpm_struct! {
201 #[derive(Debug, PartialEq, Eq, Copy, Clone)]
202 kind: Command,
203 name: TpmNvSetBitsCommand,
204 cc: TpmCc::NvSetBits,
205 no_sessions: false,
206 with_sessions: true,
207 handles: {
208 pub auth_handle: crate::data::TpmiDhObject,
209 pub nv_index: u32,
210 },
211 parameters: {
212 pub bits: u64,
213 }
214}
215
216tpm_struct! {
217 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
218 kind: Response,
219 name: TpmNvSetBitsResponse,
220 cc: TpmCc::NvSetBits,
221 no_sessions: false,
222 with_sessions: true,
223 handles: {},
224 parameters: {}
225}
226
227tpm_struct! {
228 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
229 kind: Command,
230 name: TpmNvWriteLockCommand,
231 cc: TpmCc::NvWriteLock,
232 no_sessions: false,
233 with_sessions: true,
234 handles: {
235 pub auth_handle: crate::data::TpmiDhObject,
236 pub nv_index: u32,
237 },
238 parameters: {}
239}
240
241tpm_struct! {
242 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
243 kind: Response,
244 name: TpmNvWriteLockResponse,
245 cc: TpmCc::NvWriteLock,
246 no_sessions: false,
247 with_sessions: true,
248 handles: {},
249 parameters: {}
250}
251
252tpm_struct! {
253 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
254 kind: Command,
255 name: TpmNvGlobalWriteLockCommand,
256 cc: TpmCc::NvGlobalWriteLock,
257 no_sessions: false,
258 with_sessions: true,
259 handles: {
260 pub auth_handle: crate::data::TpmiRhHierarchy,
261 },
262 parameters: {}
263}
264
265tpm_struct! {
266 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
267 kind: Response,
268 name: TpmNvGlobalWriteLockResponse,
269 cc: TpmCc::NvGlobalWriteLock,
270 no_sessions: false,
271 with_sessions: true,
272 handles: {},
273 parameters: {}
274}
275
276tpm_struct! {
277 #[derive(Debug, PartialEq, Eq, Copy, Clone)]
278 kind: Command,
279 name: TpmNvReadCommand,
280 cc: TpmCc::NvRead,
281 no_sessions: false,
282 with_sessions: true,
283 handles: {
284 pub auth_handle: crate::data::TpmiDhObject,
285 pub nv_index: u32,
286 },
287 parameters: {
288 pub size: u16,
289 pub offset: u16,
290 }
291}
292
293tpm_struct! {
294 #[derive(Debug, Default, PartialEq, Eq, Clone)]
295 kind: Response,
296 name: TpmNvReadResponse,
297 cc: TpmCc::NvRead,
298 no_sessions: false,
299 with_sessions: true,
300 handles: {},
301 parameters: {
302 pub data: Tpm2bMaxNvBuffer,
303 }
304}
305
306tpm_struct! {
307 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
308 kind: Command,
309 name: TpmNvReadLockCommand,
310 cc: TpmCc::NvReadLock,
311 no_sessions: false,
312 with_sessions: true,
313 handles: {
314 pub auth_handle: crate::data::TpmiDhObject,
315 pub nv_index: u32,
316 },
317 parameters: {}
318}
319
320tpm_struct! {
321 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
322 kind: Response,
323 name: TpmNvReadLockResponse,
324 cc: TpmCc::NvReadLock,
325 no_sessions: false,
326 with_sessions: true,
327 handles: {},
328 parameters: {}
329}
330
331tpm_struct! {
332 #[derive(Debug, PartialEq, Eq, Clone)]
333 kind: Command,
334 name: TpmNvChangeAuthCommand,
335 cc: TpmCc::NvChangeAuth,
336 no_sessions: false,
337 with_sessions: true,
338 handles: {
339 pub nv_index: u32,
340 },
341 parameters: {
342 pub new_auth: Tpm2bAuth,
343 }
344}
345
346tpm_struct! {
347 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
348 kind: Response,
349 name: TpmNvChangeAuthResponse,
350 cc: TpmCc::NvChangeAuth,
351 no_sessions: false,
352 with_sessions: true,
353 handles: {},
354 parameters: {}
355}
356
357tpm_struct! {
358 #[derive(Debug, PartialEq, Eq, Clone)]
359 kind: Command,
360 name: TpmNvCertifyCommand,
361 cc: TpmCc::NvCertify,
362 no_sessions: false,
363 with_sessions: true,
364 handles: {
365 pub sign_handle: crate::data::TpmiDhObject,
366 pub auth_handle: crate::data::TpmiDhObject,
367 pub nv_index: u32,
368 },
369 parameters: {
370 pub qualifying_data: Tpm2bData,
371 pub in_scheme: TpmtSignature,
372 pub size: u16,
373 pub offset: u16,
374 }
375}
376
377tpm_struct! {
378 #[derive(Debug, PartialEq, Eq, Clone)]
379 kind: Response,
380 name: TpmNvCertifyResponse,
381 cc: TpmCc::NvCertify,
382 no_sessions: false,
383 with_sessions: true,
384 handles: {},
385 parameters: {
386 pub certify_info: Tpm2bAttest,
387 pub signature: TpmtSignature,
388 }
389}
390
391tpm_struct! {
392 #[derive(Debug, PartialEq, Eq, Clone)]
393 kind: Command,
394 name: TpmNvDefineSpace2Command,
395 cc: TpmCc::NvDefineSpace2,
396 no_sessions: false,
397 with_sessions: true,
398 handles: {
399 pub auth_handle: crate::data::TpmiRhHierarchy,
400 },
401 parameters: {
402 pub auth: Tpm2bAuth,
403 pub public_info: crate::data::Tpm2bNvPublic2,
404 }
405}
406
407tpm_struct! {
408 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
409 kind: Response,
410 name: TpmNvDefineSpace2Response,
411 cc: TpmCc::NvDefineSpace2,
412 no_sessions: false,
413 with_sessions: true,
414 handles: {},
415 parameters: {}
416}
417
418tpm_struct! {
419 #[derive(Debug, PartialEq, Eq, Copy, Clone)]
420 kind: Command,
421 name: TpmNvReadPublic2Command,
422 cc: TpmCc::NvReadPublic2,
423 no_sessions: true,
424 with_sessions: false,
425 handles: {
426 pub nv_index: u32,
427 },
428 parameters: {}
429}
430
431tpm_struct! {
432 #[derive(Debug, PartialEq, Eq, Clone)]
433 kind: Response,
434 name: TpmNvReadPublic2Response,
435 cc: TpmCc::NvReadPublic2,
436 no_sessions: true,
437 with_sessions: false,
438 handles: {},
439 parameters: {
440 pub nv_public: crate::data::Tpm2bNvPublic2,
441 pub nv_name: Tpm2bName,
442 }
443}