tpm2_protocol/data/
tpmi.rs

1// SPDX-License-Identifier: MIT OR Apache-2.0
2// Copyright (c) 2025 Opinsys Oy
3
4use crate::{
5    data::{TpmAlgId, TpmSt},
6    tpm_bool, tpm_enum, tpm_handle, TpmNotDiscriminant,
7};
8
9tpm_bool! {
10    #[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
11    pub struct TpmiYesNo(bool);
12}
13
14tpm_enum! {
15    #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Copy, Clone, Hash, Default)]
16    pub enum TpmiEccKeyExchange(u16) {
17        #[default]
18        (None, 0x0000, "TPM_ECC_NONE"),
19        (Ecdh, 0x0019, "TPM_ALG_ECDH"),
20        (Ecmqv, 0x001D, "TPM_ALG_ECMQV"),
21        (Sm2, 0x001B, "TPM_ALG_SM2"),
22    }
23}
24
25pub type TpmiAlgHash = TpmAlgId;
26pub type TpmiAlgSymObject = TpmAlgId;
27pub type TpmiStCommandTag = TpmSt;
28
29tpm_handle! {
30    #[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
31    TpmiDhObject
32}
33
34tpm_handle! {
35    #[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
36    TpmiDhParent
37}
38
39tpm_handle! {
40    #[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
41    TpmiShAuthSession
42}
43
44tpm_handle! {
45    #[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
46    TpmiRhHierarchy
47}
48
49tpm_handle! {
50    #[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
51    TpmiRhNvExpIndex
52}