Enum trust_dns_proto::rr::dnssec::Nsec3HashAlgorithm
source · [−]pub enum Nsec3HashAlgorithm {
SHA1,
}
This is supported on crate feature
dnssec
only.Expand description
RFC 5155 NSEC3 March 2008
11. IANA Considerations
Although the NSEC3 and NSEC3PARAM RR formats include a hash algorithm
parameter, this document does not define a particular mechanism for
safely transitioning from one NSEC3 hash algorithm to another. When
specifying a new hash algorithm for use with NSEC3, a transition
mechanism MUST also be defined.
This document updates the IANA registry "DOMAIN NAME SYSTEM
PARAMETERS" (http://www.iana.org/assignments/dns-parameters) in sub-
registry "TYPES", by defining two new types. Section 3 defines the
NSEC3 RR type 50. Section 4 defines the NSEC3PARAM RR type 51.
This document updates the IANA registry "DNS SECURITY ALGORITHM
NUMBERS -- per [RFC4035]"
(http://www.iana.org/assignments/dns-sec-alg-numbers). Section 2
defines the aliases DSA-NSEC3-SHA1 (6) and RSASHA1-NSEC3-SHA1 (7) for
respectively existing registrations DSA and RSASHA1 in combination
with NSEC3 hash algorithm SHA1.
Since these algorithm numbers are aliases for existing DNSKEY
algorithm numbers, the flags that exist for the original algorithm
are valid for the alias algorithm.
This document creates a new IANA registry for NSEC3 flags. This
registry is named "DNSSEC NSEC3 Flags". The initial contents of this
registry are:
0 1 2 3 4 5 6 7
+---+---+---+---+---+---+---+---+
| | | | | | | |Opt|
| | | | | | | |Out|
+---+---+---+---+---+---+---+---+
bit 7 is the Opt-Out flag.
bits 0 - 6 are available for assignment.
Assignment of additional NSEC3 Flags in this registry requires IETF
Standards Action [RFC2434].
This document creates a new IANA registry for NSEC3PARAM flags. This
registry is named "DNSSEC NSEC3PARAM Flags". The initial contents of
this registry are:
0 1 2 3 4 5 6 7
+---+---+---+---+---+---+---+---+
| | | | | | | | 0 |
+---+---+---+---+---+---+---+---+
bit 7 is reserved and must be 0.
bits 0 - 6 are available for assignment.
Assignment of additional NSEC3PARAM Flags in this registry requires
IETF Standards Action [RFC2434].
Finally, this document creates a new IANA registry for NSEC3 hash
algorithms. This registry is named "DNSSEC NSEC3 Hash Algorithms".
The initial contents of this registry are:
0 is Reserved.
1 is SHA-1.
2-255 Available for assignment.
Assignment of additional NSEC3 hash algorithms in this registry
requires IETF Standards Action [RFC2434].
Variants
SHA1
Hash for the Nsec3 records
Implementations
sourceimpl Nsec3HashAlgorithm
impl Nsec3HashAlgorithm
sourcepub fn from_u8(value: u8) -> ProtoResult<Self>
pub fn from_u8(value: u8) -> ProtoResult<Self>
sourcepub fn hash(
self,
salt: &[u8],
name: &Name,
iterations: u16
) -> ProtoResult<Digest>
This is supported on crate features openssl
or ring
only.
pub fn hash(
self,
salt: &[u8],
name: &Name,
iterations: u16
) -> ProtoResult<Digest>
This is supported on crate features
openssl
or ring
only.Laurie, et al. Standards Track [Page 14]
RFC 5155 NSEC3 March 2008
Define H(x) to be the hash of x using the Hash Algorithm selected by
the NSEC3 RR, k to be the number of Iterations, and || to indicate
concatenation. Then define:
IH(salt, x, 0) = H(x || salt), and
IH(salt, x, k) = H(IH(salt, x, k-1) || salt), if k > 0
Then the calculated hash of an owner name is
IH(salt, owner name, iterations),
where the owner name is in the canonical form, defined as:
The wire format of the owner name where:
1. The owner name is fully expanded (no DNS name compression) and
fully qualified;
2. All uppercase US-ASCII letters are replaced by the corresponding
lowercase US-ASCII letters;
3. If the owner name is a wildcard name, the owner name is in its
original unexpanded form, including the "*" label (no wildcard
substitution);
Trait Implementations
sourceimpl Clone for Nsec3HashAlgorithm
impl Clone for Nsec3HashAlgorithm
sourcefn clone(&self) -> Nsec3HashAlgorithm
fn clone(&self) -> Nsec3HashAlgorithm
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for Nsec3HashAlgorithm
impl Debug for Nsec3HashAlgorithm
sourceimpl<'de> Deserialize<'de> for Nsec3HashAlgorithm
impl<'de> Deserialize<'de> for Nsec3HashAlgorithm
sourcefn 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>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl From<Nsec3HashAlgorithm> for u8
impl From<Nsec3HashAlgorithm> for u8
sourcefn from(a: Nsec3HashAlgorithm) -> Self
fn from(a: Nsec3HashAlgorithm) -> Self
Converts to this type from the input type.
sourceimpl Hash for Nsec3HashAlgorithm
impl Hash for Nsec3HashAlgorithm
sourceimpl Serialize for Nsec3HashAlgorithm
impl Serialize for Nsec3HashAlgorithm
impl Copy for Nsec3HashAlgorithm
impl Eq for Nsec3HashAlgorithm
impl StructuralEq for Nsec3HashAlgorithm
impl StructuralPartialEq for Nsec3HashAlgorithm
Auto Trait Implementations
impl RefUnwindSafe for Nsec3HashAlgorithm
impl Send for Nsec3HashAlgorithm
impl Sync for Nsec3HashAlgorithm
impl Unpin for Nsec3HashAlgorithm
impl UnwindSafe for Nsec3HashAlgorithm
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
🔬 This is a nightly-only experimental API. (
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more