tpm2_protocol/message/
sequence.rs

1// SPDX-License-Identifier: MIT OR Apache-2.0
2// Copyright (c) 2025 Opinsys Oy
3// Copyright (c) 2024-2025 Jarkko Sakkinen
4
5//! 25 Enhanced Authorization (EA) Commands
6
7use 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);