pub enum SecureCnameStatus {
SecureAlias,
NotSecureAlias,
TempFail(String),
}Expand description
The outcome of an explicit CNAME lookup used to decide DANE eligibility
for an MX host whose address chain was not fully DNSSEC-secure.
RFC 7672 section 2.2.2 treats an MX host that is a securely published CNAME alias as DANE-eligible at the original (unexpanded) name, even when the alias target lands in an insecure (unsigned) zone: it is the securely published TLSA RRset, not the address records, that authenticates the peer.
Variants§
SecureAlias
The name is a CNAME alias whose alias record was DNSSEC validated, so the host remains DANE-eligible at its original name.
NotSecureAlias
The name is not a securely published CNAME alias (it is not an alias at all, or the alias was not DNSSEC validated); it is not the secure-CNAME case and DANE must not be engaged off the back of it.
TempFail(String)
The secure status of the alias could not be determined (SERVFAIL, timeout, or a DNSSEC validation failure). To preserve downgrade resistance the caller must defer rather than continue.
Trait Implementations§
Source§impl Debug for SecureCnameStatus
impl Debug for SecureCnameStatus
Source§impl PartialEq for SecureCnameStatus
impl PartialEq for SecureCnameStatus
impl Eq for SecureCnameStatus
impl StructuralPartialEq for SecureCnameStatus
Auto Trait Implementations§
impl Freeze for SecureCnameStatus
impl RefUnwindSafe for SecureCnameStatus
impl Send for SecureCnameStatus
impl Sync for SecureCnameStatus
impl Unpin for SecureCnameStatus
impl UnwindSafe for SecureCnameStatus
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
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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