tss_esapi/structures/attestation/
time_attest_info.rs1use crate::{structures::TimeInfo, tss2_esys::TPMS_TIME_ATTEST_INFO, Error, Result};
5use std::convert::{TryFrom, TryInto};
6
7#[derive(Debug, Clone, Copy, PartialEq, Eq)]
12pub struct TimeAttestInfo {
13 time_info: TimeInfo,
14 firmware_version: u64,
15}
16
17impl TimeAttestInfo {
18 pub const fn time_info(&self) -> &TimeInfo {
20 &self.time_info
21 }
22
23 pub const fn firmware_version(&self) -> u64 {
25 self.firmware_version
26 }
27}
28
29impl From<TimeAttestInfo> for TPMS_TIME_ATTEST_INFO {
30 fn from(time_attest_info: TimeAttestInfo) -> Self {
31 TPMS_TIME_ATTEST_INFO {
32 time: time_attest_info.time_info.into(),
33 firmwareVersion: time_attest_info.firmware_version,
34 }
35 }
36}
37
38impl TryFrom<TPMS_TIME_ATTEST_INFO> for TimeAttestInfo {
39 type Error = Error;
40
41 fn try_from(tpms_time_attest_info: TPMS_TIME_ATTEST_INFO) -> Result<Self> {
42 Ok(TimeAttestInfo {
43 time_info: tpms_time_attest_info.time.try_into()?,
44 firmware_version: tpms_time_attest_info.firmwareVersion,
45 })
46 }
47}