tss_esapi/structures/attestation/
session_audit_info.rs1use crate::{
5 interface_types::YesNo, structures::Digest, tss2_esys::TPMS_SESSION_AUDIT_INFO, Error, Result,
6};
7use std::convert::{TryFrom, TryInto};
8
9#[derive(Debug, Clone)]
15pub struct SessionAuditInfo {
16 exclusive_session: YesNo,
17 session_digest: Digest,
18}
19
20impl SessionAuditInfo {
21 pub fn exlusive_session(&self) -> bool {
25 self.exclusive_session.into()
26 }
27
28 pub const fn session_digest(&self) -> &Digest {
30 &self.session_digest
31 }
32}
33
34impl From<SessionAuditInfo> for TPMS_SESSION_AUDIT_INFO {
35 fn from(session_audit_info: SessionAuditInfo) -> Self {
36 TPMS_SESSION_AUDIT_INFO {
37 exclusiveSession: session_audit_info.exclusive_session.into(),
38 sessionDigest: session_audit_info.session_digest.into(),
39 }
40 }
41}
42
43impl TryFrom<TPMS_SESSION_AUDIT_INFO> for SessionAuditInfo {
44 type Error = Error;
45
46 fn try_from(tpms_session_audit_info: TPMS_SESSION_AUDIT_INFO) -> Result<Self> {
47 Ok(SessionAuditInfo {
48 exclusive_session: tpms_session_audit_info.exclusiveSession.try_into()?,
49 session_digest: tpms_session_audit_info.sessionDigest.try_into()?,
50 })
51 }
52}