use crate::attestation::verifier::VerifiedAttestation;
use crate::config::TeeProvider;
#[derive(Debug, Clone)]
pub struct TeeContext {
pub attestation: Option<VerifiedAttestation>,
pub provider: Option<TeeProvider>,
pub deployment_id: Option<String>,
}
impl TeeContext {
pub fn none() -> Self {
Self {
attestation: None,
provider: None,
deployment_id: None,
}
}
pub fn with_attestation(attestation: VerifiedAttestation) -> Self {
let provider = Some(attestation.verified_by());
Self {
attestation: Some(attestation),
provider,
deployment_id: None,
}
}
pub fn with_deployment_id(mut self, id: impl Into<String>) -> Self {
self.deployment_id = Some(id.into());
self
}
pub fn is_attested(&self) -> bool {
self.attestation.is_some()
}
pub fn is_tee_active(&self) -> bool {
self.provider.is_some()
}
}
impl Default for TeeContext {
fn default() -> Self {
Self::none()
}
}