#[repr(u8)]pub enum Proof {
Secure = 3,
Insecure = 2,
Bogus = 1,
Indeterminate = 0,
}
dnssec
only.Expand description
Represents the status of a DNSSEC verified record.
see RFC 4035, DNSSEC Protocol Modifications, March 2005
4.3. Determining Security Status of Data
A security-aware resolver MUST be able to determine whether it should
expect a particular RRset to be signed. More precisely, a
security-aware resolver must be able to distinguish between four
cases:
Variants§
Secure = 3
An RRset for which the resolver is able to build a chain of signed DNSKEY and DS RRs from a trusted security anchor to the RRset. In this case, the RRset should be signed and is subject to signature validation, as described above.
Insecure = 2
An RRset for which the resolver knows that it has no chain of signed DNSKEY and DS RRs from any trusted starting point to the RRset. This can occur when the target RRset lies in an unsigned zone or in a descendent of an unsigned zone. In this case, the RRset may or may not be signed, but the resolver will not be able to verify the signature.
Bogus = 1
An RRset for which the resolver believes that it ought to be able to establish a chain of trust but for which it is unable to do so, either due to signatures that for some reason fail to validate or due to missing data that the relevant DNSSEC RRs indicate should be present. This case may indicate an attack but may also indicate a configuration error or some form of data corruption.
Indeterminate = 0
An RRset for which the resolver is not able to determine whether the RRset should be signed, as the resolver is not able to obtain the necessary DNSSEC RRs. This can occur when the security-aware resolver is not able to contact security-aware name servers for the relevant zones.
Implementations§
source§impl Proof
impl Proof
sourcepub fn is_secure(&self) -> bool
pub fn is_secure(&self) -> bool
Returns true if this Proof represents a validated DNSSEC record
sourcepub fn is_insecure(&self) -> bool
pub fn is_insecure(&self) -> bool
Returns true if this Proof represents a validated to be insecure DNSSEC record, meaning the zone is known to be not signed
sourcepub fn is_bogus(&self) -> bool
pub fn is_bogus(&self) -> bool
Returns true if this Proof represents a DNSSEC record that failed validation, meaning that the DNSSEC is bad, or other DNSSEC records are incorrect
sourcepub fn is_indeterminate(&self) -> bool
pub fn is_indeterminate(&self) -> bool
Either the record has not been verified or there were network issues fetching DNSSEC records
Trait Implementations§
source§impl<'de> Deserialize<'de> for Proof
impl<'de> Deserialize<'de> for Proof
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl Error for Proof
impl Error for Proof
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
source§impl From<Proof> for ProofFlags
impl From<Proof> for ProofFlags
source§impl Ord for Proof
impl Ord for Proof
source§impl PartialOrd for Proof
impl PartialOrd for Proof
impl Copy for Proof
impl Eq for Proof
impl StructuralPartialEq for Proof
Auto Trait Implementations§
impl Freeze for Proof
impl RefUnwindSafe for Proof
impl Send for Proof
impl Sync for Proof
impl Unpin for Proof
impl UnwindSafe for Proof
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,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.