pub enum DaneStatus {
NotApplicable,
Records(Vec<TLSA>),
Unusable,
TempFail(String),
}Expand description
The outcome of attempting to resolve DANE TLSA records for an MX host, per https://datatracker.ietf.org/doc/html/rfc7672.
Variants§
NotApplicable
The host is not DANE-eligible: either the MX host’s address (A/AAAA) RRset was not securely (DNSSEC) resolved, or there was a secure proof that no TLSA records exist (NODATA/NXDOMAIN). Delivery should continue using the normal (opportunistic / configured) TLS policy.
Records(Vec<TLSA>)
Secure, usable DANE-TA(2)/DANE-EE(3) TLSA records were found. The connection must use TLS and authenticate the peer against these records.
Unusable
Secure TLSA records were published, but none are usable for DANE SMTP (e.g. only PKIX-TA(0)/PKIX-EE(1), private/unassigned usages, or unsupported selector/matching types). Per RFC 7672 section 4.1 the client must still require STARTTLS but cannot authenticate the peer.
TempFail(String)
The secure status of the TLSA records (or of the MX host’s address records) could not be determined, e.g. due to SERVFAIL, a timeout, or a DNSSEC validation failure (bogus). To preserve downgrade resistance the delivery must be deferred rather than continuing without authentication.
Trait Implementations§
Source§impl Clone for DaneStatus
impl Clone for DaneStatus
Source§fn clone(&self) -> DaneStatus
fn clone(&self) -> DaneStatus
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DaneStatus
impl Debug for DaneStatus
Source§impl PartialEq for DaneStatus
impl PartialEq for DaneStatus
impl StructuralPartialEq for DaneStatus
Auto Trait Implementations§
impl Freeze for DaneStatus
impl RefUnwindSafe for DaneStatus
impl Send for DaneStatus
impl Sync for DaneStatus
impl Unpin for DaneStatus
impl UnwindSafe for DaneStatus
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more