xdoc-rs 0.1.1

Declarative XML engine for Rust
Documentation
use super::policy::SignaturePolicy;

/// XAdES profiles supported by the high-level signing API.
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum XadesProfile {
    Bes,
    Epes(SignaturePolicy),
    BaselineB { policy: Option<SignaturePolicy> },
}

impl XadesProfile {
    pub fn name(&self) -> &'static str {
        match self {
            Self::Bes => "XAdES-BES",
            Self::Epes(_) => "XAdES-EPES",
            Self::BaselineB { .. } => "XAdES-B-B",
        }
    }
}

impl Default for XadesProfile {
    fn default() -> Self {
        Self::Bes
    }
}

/// Certificate property shape emitted inside XAdES signed properties.
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub enum SigningCertificateMode {
    ClassicSigningCertificate,
    #[default]
    SigningCertificateV2,
}