1use crate::{
8 data::{
9 Tpm2bAuth, Tpm2bDigest, Tpm2bMaxBuffer, TpmAlgId, TpmCc, TpmRh, TpmlDigestValues,
10 TpmtTkHashcheck,
11 },
12 tpm_struct, TpmTransient,
13};
14use core::fmt::Debug;
15
16tpm_struct! {
17 #[derive(Debug, PartialEq, Eq, Clone)]
18 kind: Command,
19 name: TpmHmacStartCommand,
20 cc: TpmCc::HmacStart,
21 handles: {
22 pub handle: crate::data::TpmiDhObject,
23 },
24 parameters: {
25 pub auth: Tpm2bAuth,
26 pub hash_alg: TpmAlgId,
27 }
28}
29
30tpm_struct! {
31 #[derive(Debug, PartialEq, Eq, Clone, Copy)]
32 kind: Response,
33 name: TpmHmacStartResponse,
34 cc: TpmCc::HmacStart,
35 handles: {
36 pub sequence_handle: TpmTransient,
37 },
38 parameters: {}
39}
40
41tpm_struct! {
42 #[derive(Debug, PartialEq, Eq, Clone)]
43 kind: Command,
44 name: TpmHashSequenceStartCommand,
45 cc: TpmCc::HashSequenceStart,
46 handles: {},
47 parameters: {
48 pub auth: Tpm2bAuth,
49 pub hash_alg: TpmAlgId,
50 }
51}
52
53tpm_struct! {
54 #[derive(Debug, PartialEq, Eq, Clone, Copy)]
55 kind: Response,
56 name: TpmHashSequenceStartResponse,
57 cc: TpmCc::HashSequenceStart,
58 handles: {
59 pub sequence_handle: TpmTransient,
60 },
61 parameters: {}
62}
63
64tpm_struct! {
65 #[derive(Debug, PartialEq, Eq, Clone)]
66 kind: Command,
67 name: TpmSequenceUpdateCommand,
68 cc: TpmCc::SequenceUpdate,
69 handles: {
70 pub sequence_handle: crate::data::TpmiDhObject,
71 },
72 parameters: {
73 pub buffer: Tpm2bMaxBuffer,
74 }
75}
76
77tpm_struct! {
78 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
79 kind: Response,
80 name: TpmSequenceUpdateResponse,
81 cc: TpmCc::SequenceUpdate,
82 handles: {},
83 parameters: {}
84}
85
86tpm_struct! {
87 #[derive(Debug, PartialEq, Eq, Clone)]
88 kind: Command,
89 name: TpmSequenceCompleteCommand,
90 cc: TpmCc::SequenceComplete,
91 handles: {
92 pub sequence_handle: crate::data::TpmiDhObject,
93 },
94 parameters: {
95 pub buffer: Tpm2bMaxBuffer,
96 pub hierarchy: TpmRh,
97 }
98}
99
100tpm_struct! {
101 #[derive(Debug, PartialEq, Eq, Clone)]
102 kind: Response,
103 name: TpmSequenceCompleteResponse,
104 cc: TpmCc::SequenceComplete,
105 handles: {},
106 parameters: {
107 pub result: Tpm2bDigest,
108 pub validation: TpmtTkHashcheck,
109 }
110}
111
112tpm_struct! {
113 #[derive(Debug, PartialEq, Eq, Clone)]
114 kind: Command,
115 name: TpmEventSequenceCompleteCommand,
116 cc: TpmCc::EventSequenceComplete,
117 handles: {
118 pub pcr_handle: u32,
119 pub sequence_handle: crate::data::TpmiDhObject,
120 },
121 parameters: {
122 pub buffer: Tpm2bMaxBuffer,
123 }
124}
125
126tpm_struct! {
127 #[derive(Debug, Default, PartialEq, Eq, Clone)]
128 kind: Response,
129 name: TpmEventSequenceCompleteResponse,
130 cc: TpmCc::EventSequenceComplete,
131 handles: {},
132 parameters: {
133 pub results: TpmlDigestValues,
134 }
135}