tpm2_protocol/message/
capability.rs

1// SPDX-License-Identifier: MIT OR Apache-2.0
2// Copyright (c) 2025 Opinsys Oy
3
4//! 30.2 `TPM2_GetCapability`
5//! 30.3 `TPM2_TestParms`
6//! 30.4 `TPM2_SetCapability` (TODO)
7
8use crate::{
9    data::{TpmCap, TpmCc, TpmiYesNo, TpmsCapabilityData, TpmtPublicParms},
10    tpm_struct,
11};
12use core::fmt::Debug;
13
14tpm_struct! {
15    #[derive(Debug, PartialEq, Eq, Clone)]
16    kind: Command,
17    name: TpmTestParmsCommand,
18    cc: TpmCc::TestParms,
19    handles: {},
20    parameters: {
21        pub parameters: TpmtPublicParms,
22    }
23}
24
25tpm_struct! {
26    #[derive(Debug, Default, PartialEq, Eq, Copy, Clone)]
27    kind: Response,
28    name: TpmTestParmsResponse,
29    cc: TpmCc::TestParms,
30    handles: {},
31    parameters: {}
32}
33
34tpm_struct! {
35    #[derive(Debug, PartialEq, Eq, Clone)]
36    kind: Command,
37    name: TpmGetCapabilityCommand,
38    cc: TpmCc::GetCapability,
39    handles: {},
40    parameters: {
41        pub cap: TpmCap,
42        pub property: u32,
43        pub property_count: u32,
44    }
45}
46
47tpm_struct! {
48    #[derive(Debug, PartialEq, Eq, Clone)]
49    kind: Response,
50    name: TpmGetCapabilityResponse,
51    cc: TpmCc::GetCapability,
52    handles: {},
53    parameters: {
54        pub more_data: TpmiYesNo,
55        pub capability_data: TpmsCapabilityData,
56    }
57}