1use crate::{
8 data::{
9 Tpm2bAuth, Tpm2bDigest, Tpm2bMaxBuffer, TpmAlgId, TpmCc, TpmRh, TpmlDigestValues,
10 TpmtTkHashcheck,
11 },
12 tpm_response, tpm_struct, TpmTransient,
13};
14use core::fmt::Debug;
15
16tpm_struct!(
17 #[derive(Debug, PartialEq, Eq, Clone)]
18 TpmHashSequenceStartCommand,
19 TpmCc::HashSequenceStart,
20 true,
21 true,
22 0,
23 {
24 pub auth: Tpm2bAuth,
25 pub hash_alg: TpmAlgId,
26 }
27);
28
29tpm_response!(
30 #[derive(Debug, PartialEq, Eq, Clone, Copy)]
31 TpmHashSequenceStartResponse,
32 TpmCc::HashSequenceStart,
33 true,
34 true,
35 pub sequence_handle: TpmTransient,
36 {}
37);
38
39tpm_struct!(
40 #[derive(Debug, PartialEq, Eq, Clone)]
41 TpmSequenceUpdateCommand,
42 TpmCc::SequenceUpdate,
43 true,
44 true,
45 1,
46 {
47 pub buffer: Tpm2bMaxBuffer,
48 }
49);
50
51tpm_response!(
52 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
53 TpmSequenceUpdateResponse,
54 TpmCc::SequenceUpdate,
55 true,
56 true,
57 {}
58);
59
60tpm_struct!(
61 #[derive(Debug, PartialEq, Eq, Clone)]
62 TpmSequenceCompleteCommand,
63 TpmCc::SequenceComplete,
64 true,
65 true,
66 1,
67 {
68 pub buffer: Tpm2bMaxBuffer,
69 pub hierarchy: TpmRh,
70 }
71);
72
73tpm_response!(
74 #[derive(Debug, PartialEq, Eq, Clone)]
75 TpmSequenceCompleteResponse,
76 TpmCc::SequenceComplete,
77 true,
78 true,
79 {
80 pub result: Tpm2bDigest,
81 pub validation: TpmtTkHashcheck,
82 }
83);
84
85tpm_struct!(
86 #[derive(Debug, PartialEq, Eq, Clone)]
87 TpmEventSequenceCompleteCommand,
88 TpmCc::EventSequenceComplete,
89 true,
90 true,
91 2,
92 {
93 pub buffer: Tpm2bMaxBuffer,
94 }
95);
96
97tpm_response!(
98 #[derive(Debug, Default, PartialEq, Eq, Clone)]
99 TpmEventSequenceCompleteResponse,
100 TpmCc::EventSequenceComplete,
101 true,
102 true,
103 {
104 pub results: TpmlDigestValues,
105 }
106);