use super::*;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct As4NriReference {
pub uri: String,
pub digest_method_uri: String,
pub digest_value_b64: String,
}
impl From<&WsSecSignatureReference> for As4NriReference {
fn from(r: &WsSecSignatureReference) -> Self {
Self {
uri: r.uri.clone(),
digest_method_uri: r.digest_method.algorithm_uri().to_string(),
digest_value_b64: r.digest_value_base64.clone(),
}
}
}
impl From<WsSecSignatureReference> for As4NriReference {
fn from(r: WsSecSignatureReference) -> Self {
Self {
uri: r.uri,
digest_method_uri: r.digest_method.algorithm_uri().to_string(),
digest_value_b64: r.digest_value_base64,
}
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[non_exhaustive]
pub(crate) struct As4ReceivedError {
pub error_code: String,
pub severity: Option<String>,
pub category: Option<String>,
pub origin: Option<String>,
pub ref_to_message_id: Option<String>,
pub short_description: Option<String>,
pub description: Option<String>,
pub error_detail: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[non_exhaustive]
pub(crate) struct As4ErrorSignal {
pub message_id: Option<String>,
pub ref_to_message_id: Option<String>,
pub timestamp: Option<String>,
pub errors: Vec<As4ReceivedError>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[non_exhaustive]
pub(crate) struct As4VerifiedReceipt {
pub message_id: Option<String>,
pub ref_to_message_id: String,
pub timestamp: Option<String>,
pub signed: bool,
pub signer_fingerprint_sha256: Option<String>,
pub non_repudiation: crate::as4::As4NonRepudiation,
}