1use crate::{
31 data::{
32 Tpm2bDigest, Tpm2bMaxBuffer, Tpm2bName, Tpm2bNonce, Tpm2bTimeout, TpmCap, TpmCc, TpmEo,
33 TpmaLocality, TpmiYesNo, TpmlDigest, TpmlPcrSelection, TpmtSignature, TpmtTkAuth,
34 TpmtTkVerified,
35 },
36 tpm_struct,
37};
38use core::fmt::Debug;
39
40tpm_struct! (
41 #[derive(Debug, PartialEq, Eq, Clone)]
42 kind: Command,
43 name: TpmPolicySignedCommand,
44 cc: TpmCc::PolicySigned,
45 handles: {
46 pub auth_object: crate::data::TpmiDhObject,
47 pub policy_session: crate::data::TpmiShAuthSession,
48 },
49 parameters: {
50 pub nonce_tpm: Tpm2bNonce,
51 pub cp_hash_a: Tpm2bDigest,
52 pub policy_ref: Tpm2bNonce,
53 pub expiration: i32,
54 pub auth: TpmtSignature,
55 }
56);
57
58tpm_struct! (
59 #[derive(Debug, PartialEq, Eq, Clone)]
60 kind: Response,
61 name: TpmPolicySignedResponse,
62 cc: TpmCc::PolicySigned,
63 handles: {},
64 parameters: {
65 pub timeout: Tpm2bTimeout,
66 pub policy_ticket: TpmtTkAuth,
67 }
68);
69
70tpm_struct! (
71 #[derive(Debug, Default, PartialEq, Eq, Clone)]
72 kind: Command,
73 name: TpmPolicySecretCommand,
74 cc: TpmCc::PolicySecret,
75 handles: {
76 pub auth_handle: crate::data::TpmiDhObject,
77 pub policy_session: crate::data::TpmiShAuthSession,
78 },
79 parameters: {
80 pub nonce_tpm: Tpm2bNonce,
81 pub cp_hash_a: Tpm2bDigest,
82 pub policy_ref: Tpm2bNonce,
83 pub expiration: i32,
84 }
85);
86
87tpm_struct! (
88 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
89 kind: Response,
90 name: TpmPolicySecretResponse,
91 cc: TpmCc::PolicySecret,
92 handles: {},
93 parameters: {}
94);
95
96tpm_struct! (
97 #[derive(Debug, PartialEq, Eq, Clone)]
98 kind: Command,
99 name: TpmPolicyTicketCommand,
100 cc: TpmCc::PolicyTicket,
101 handles: {
102 pub policy_session: crate::data::TpmiShAuthSession,
103 },
104 parameters: {
105 pub timeout: Tpm2bTimeout,
106 pub cp_hash_a: Tpm2bDigest,
107 pub policy_ref: Tpm2bNonce,
108 pub auth_name: Tpm2bName,
109 pub ticket: TpmtTkAuth,
110 }
111);
112
113tpm_struct! (
114 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
115 kind: Response,
116 name: TpmPolicyTicketResponse,
117 cc: TpmCc::PolicyTicket,
118 handles: {},
119 parameters: {}
120);
121
122tpm_struct! (
123 #[derive(Debug, Default, PartialEq, Eq, Clone)]
124 kind: Command,
125 name: TpmPolicyOrCommand,
126 cc: TpmCc::PolicyOR,
127 handles: {
128 pub policy_session: crate::data::TpmiShAuthSession,
129 },
130 parameters: {
131 pub p_hash_list: TpmlDigest,
132 }
133);
134
135tpm_struct! (
136 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
137 kind: Response,
138 name: TpmPolicyOrResponse,
139 cc: TpmCc::PolicyOR,
140 handles: {},
141 parameters: {}
142);
143
144tpm_struct! (
145 #[derive(Debug, Default, PartialEq, Eq, Clone)]
146 kind: Command,
147 name: TpmPolicyPcrCommand,
148 cc: TpmCc::PolicyPcr,
149 handles: {
150 pub policy_session: crate::data::TpmiShAuthSession,
151 },
152 parameters: {
153 pub pcr_digest: Tpm2bDigest,
154 pub pcrs: TpmlPcrSelection,
155 }
156);
157
158tpm_struct! (
159 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
160 kind: Response,
161 name: TpmPolicyPcrResponse,
162 cc: TpmCc::PolicyPcr,
163 handles: {},
164 parameters: {}
165);
166
167tpm_struct! (
168 #[derive(Debug, PartialEq, Eq, Copy, Clone)]
169 kind: Command,
170 name: TpmPolicyLocalityCommand,
171 cc: TpmCc::PolicyLocality,
172 handles: {
173 pub policy_session: crate::data::TpmiShAuthSession,
174 },
175 parameters: {
176 pub locality: TpmaLocality,
177 }
178);
179
180tpm_struct! (
181 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
182 kind: Response,
183 name: TpmPolicyLocalityResponse,
184 cc: TpmCc::PolicyLocality,
185 handles: {},
186 parameters: {}
187);
188
189tpm_struct! {
190 #[derive(Debug, PartialEq, Eq, Clone)]
191 kind: Command,
192 name: TpmPolicyNvCommand,
193 cc: TpmCc::PolicyNv,
194 handles: {
195 pub auth_handle: crate::data::TpmiDhObject,
196 pub nv_index: u32,
197 pub policy_session: crate::data::TpmiShAuthSession,
198 },
199 parameters: {
200 pub operand_b: Tpm2bMaxBuffer,
201 pub offset: u16,
202 pub operation: TpmEo,
203 }
204}
205
206tpm_struct! {
207 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
208 kind: Response,
209 name: TpmPolicyNvResponse,
210 cc: TpmCc::PolicyNv,
211 handles: {},
212 parameters: {}
213}
214
215tpm_struct! {
216 #[derive(Debug, PartialEq, Eq, Clone)]
217 kind: Command,
218 name: TpmPolicyCounterTimerCommand,
219 cc: TpmCc::PolicyCounterTimer,
220 handles: {
221 pub policy_session: crate::data::TpmiShAuthSession,
222 },
223 parameters: {
224 pub operand_b: Tpm2bMaxBuffer,
225 pub offset: u16,
226 pub operation: TpmEo,
227 }
228}
229
230tpm_struct! {
231 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
232 kind: Response,
233 name: TpmPolicyCounterTimerResponse,
234 cc: TpmCc::PolicyCounterTimer,
235 handles: {},
236 parameters: {}
237}
238
239tpm_struct! {
240 #[derive(Debug, PartialEq, Eq, Clone, Copy)]
241 kind: Command,
242 name: TpmPolicyCommandCodeCommand,
243 cc: TpmCc::PolicyCommandCode,
244 handles: {
245 pub policy_session: crate::data::TpmiShAuthSession,
246 },
247 parameters: {
248 pub code: TpmCc,
249 }
250}
251
252tpm_struct! {
253 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
254 kind: Response,
255 name: TpmPolicyCommandCodeResponse,
256 cc: TpmCc::PolicyCommandCode,
257 handles: {},
258 parameters: {}
259}
260
261tpm_struct! {
262 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
263 kind: Command,
264 name: TpmPolicyPhysicalPresenceCommand,
265 cc: TpmCc::PolicyPhysicalPresence,
266 handles: {
267 pub policy_session: crate::data::TpmiShAuthSession,
268 },
269 parameters: {}
270}
271
272tpm_struct! {
273 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
274 kind: Response,
275 name: TpmPolicyPhysicalPresenceResponse,
276 cc: TpmCc::PolicyPhysicalPresence,
277 handles: {},
278 parameters: {}
279}
280
281tpm_struct! (
282 #[derive(Debug, PartialEq, Eq, Clone)]
283 kind: Command,
284 name: TpmPolicyCpHashCommand,
285 cc: TpmCc::PolicyCpHash,
286 handles: {
287 pub policy_session: crate::data::TpmiShAuthSession,
288 },
289 parameters: {
290 pub cp_hash_a: Tpm2bDigest,
291 }
292);
293
294tpm_struct! (
295 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
296 kind: Response,
297 name: TpmPolicyCpHashResponse,
298 cc: TpmCc::PolicyCpHash,
299 handles: {},
300 parameters: {}
301);
302
303tpm_struct! {
304 #[derive(Debug, PartialEq, Eq, Clone)]
305 kind: Command,
306 name: TpmPolicyNameHashCommand,
307 cc: TpmCc::PolicyNameHash,
308 handles: {
309 pub policy_session: crate::data::TpmiShAuthSession,
310 },
311 parameters: {
312 pub name_hash: Tpm2bDigest,
313 }
314}
315
316tpm_struct! {
317 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
318 kind: Response,
319 name: TpmPolicyNameHashResponse,
320 cc: TpmCc::PolicyNameHash,
321 handles: {},
322 parameters: {}
323}
324
325tpm_struct! {
326 #[derive(Debug, PartialEq, Eq, Clone)]
327 kind: Command,
328 name: TpmPolicyDuplicationSelectCommand,
329 cc: TpmCc::PolicyDuplicationSelect,
330 handles: {
331 pub policy_session: crate::data::TpmiShAuthSession,
332 },
333 parameters: {
334 pub object_name: Tpm2bName,
335 pub new_parent_name: Tpm2bName,
336 pub include_object: TpmiYesNo,
337 }
338}
339
340tpm_struct! {
341 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
342 kind: Response,
343 name: TpmPolicyDuplicationSelectResponse,
344 cc: TpmCc::PolicyDuplicationSelect,
345 handles: {},
346 parameters: {}
347}
348
349tpm_struct! {
350 #[derive(Debug, PartialEq, Eq, Clone)]
351 kind: Command,
352 name: TpmPolicyAuthorizeCommand,
353 cc: TpmCc::PolicyAuthorize,
354 handles: {
355 pub policy_session: crate::data::TpmiShAuthSession,
356 },
357 parameters: {
358 pub approved_policy: Tpm2bDigest,
359 pub policy_ref: Tpm2bNonce,
360 pub key_sign: Tpm2bName,
361 pub check_ticket: TpmtTkVerified,
362 }
363}
364
365tpm_struct! {
366 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
367 kind: Response,
368 name: TpmPolicyAuthorizeResponse,
369 cc: TpmCc::PolicyAuthorize,
370 handles: {},
371 parameters: {}
372}
373
374tpm_struct! {
375 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
376 kind: Command,
377 name: TpmPolicyAuthValueCommand,
378 cc: TpmCc::PolicyAuthValue,
379 handles: {
380 pub policy_session: crate::data::TpmiShAuthSession,
381 },
382 parameters: {}
383}
384
385tpm_struct! {
386 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
387 kind: Response,
388 name: TpmPolicyAuthValueResponse,
389 cc: TpmCc::PolicyAuthValue,
390 handles: {},
391 parameters: {}
392}
393
394tpm_struct! {
395 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
396 kind: Command,
397 name: TpmPolicyPasswordCommand,
398 cc: TpmCc::PolicyPassword,
399 handles: {
400 pub policy_session: crate::data::TpmiShAuthSession,
401 },
402 parameters: {}
403}
404
405tpm_struct! {
406 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
407 kind: Response,
408 name: TpmPolicyPasswordResponse,
409 cc: TpmCc::PolicyPassword,
410 handles: {},
411 parameters: {}
412}
413
414tpm_struct! {
415 #[derive(Debug, Default, PartialEq, Eq, Clone)]
416 kind: Response,
417 name: TpmPolicyGetDigestResponse,
418 cc: TpmCc::PolicyGetDigest,
419 handles: {},
420 parameters: {
421 pub policy_digest: Tpm2bDigest,
422 }
423}
424
425tpm_struct! {
426 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
427 kind: Command,
428 name: TpmPolicyGetDigestCommand,
429 cc: TpmCc::PolicyGetDigest,
430 handles: {
431 pub policy_session: crate::data::TpmiShAuthSession,
432 },
433 parameters: {}
434}
435
436tpm_struct! {
437 #[derive(Debug, PartialEq, Eq, Copy, Clone)]
438 kind: Command,
439 name: TpmPolicyNvWrittenCommand,
440 cc: TpmCc::PolicyNvWritten,
441 handles: {
442 pub policy_session: crate::data::TpmiShAuthSession,
443 },
444 parameters: {
445 pub written_set: TpmiYesNo,
446 }
447}
448
449tpm_struct! {
450 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
451 kind: Response,
452 name: TpmPolicyNvWrittenResponse,
453 cc: TpmCc::PolicyNvWritten,
454 handles: {},
455 parameters: {}
456}
457
458tpm_struct! {
459 #[derive(Debug, PartialEq, Eq, Clone)]
460 kind: Command,
461 name: TpmPolicyTemplateCommand,
462 cc: TpmCc::PolicyTemplate,
463 handles: {
464 pub policy_session: crate::data::TpmiShAuthSession,
465 },
466 parameters: {
467 pub template_hash: Tpm2bDigest,
468 }
469}
470
471tpm_struct! {
472 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
473 kind: Response,
474 name: TpmPolicyTemplateResponse,
475 cc: TpmCc::PolicyTemplate,
476 handles: {},
477 parameters: {}
478}
479
480tpm_struct! {
481 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
482 kind: Command,
483 name: TpmPolicyAuthorizeNvCommand,
484 cc: TpmCc::PolicyAuthorizeNv,
485 handles: {
486 pub auth_handle: crate::data::TpmiDhObject,
487 pub nv_index: u32,
488 pub policy_session: crate::data::TpmiShAuthSession,
489 },
490 parameters: {}
491}
492
493tpm_struct! {
494 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
495 kind: Response,
496 name: TpmPolicyAuthorizeNvResponse,
497 cc: TpmCc::PolicyAuthorizeNv,
498 handles: {},
499 parameters: {}
500}
501
502tpm_struct! {
503 #[derive(Debug, PartialEq, Eq, Clone)]
504 kind: Command,
505 name: TpmPolicyCapabilityCommand,
506 cc: TpmCc::PolicyCapability,
507 handles: {
508 pub policy_session: crate::data::TpmiShAuthSession,
509 },
510 parameters: {
511 pub capability: TpmCap,
512 pub property: u32,
513 pub op: TpmEo,
514 pub operand_b: Tpm2bMaxBuffer,
515 }
516}
517
518tpm_struct! {
519 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
520 kind: Response,
521 name: TpmPolicyCapabilityResponse,
522 cc: TpmCc::PolicyCapability,
523 handles: {},
524 parameters: {}
525}
526
527tpm_struct! {
528 #[derive(Debug, PartialEq, Eq, Clone)]
529 kind: Command,
530 name: TpmPolicyParametersCommand,
531 cc: TpmCc::PolicyParameters,
532 handles: {
533 pub policy_session: crate::data::TpmiShAuthSession,
534 },
535 parameters: {
536 pub p_hash: Tpm2bDigest,
537 }
538}
539
540tpm_struct! {
541 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
542 kind: Response,
543 name: TpmPolicyParametersResponse,
544 cc: TpmCc::PolicyParameters,
545 handles: {},
546 parameters: {}
547}
548
549tpm_struct! {
550 #[derive(Debug, PartialEq, Eq, Clone)]
551 kind: Command,
552 name: TpmPolicyTransportSpdmCommand,
553 cc: TpmCc::PolicyTransportSpdm,
554 handles: {
555 pub policy_session: crate::data::TpmiShAuthSession,
556 },
557 parameters: {
558 pub req_key_name: Tpm2bName,
559 pub tpm_key_name: Tpm2bName,
560 }
561}
562
563tpm_struct! {
564 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
565 kind: Response,
566 name: TpmPolicyTransportSpdmResponse,
567 cc: TpmCc::PolicyTransportSpdm,
568 handles: {},
569 parameters: {}
570}