Struct trust_dns_proto::rr::dnssec::rdata::key::UpdateScope
source · [−]Deprecated by RFC3007
dnssec
only.Expand description
RFC 2137, Secure Domain Name System Dynamic Update, April 1997
3.1.1 Update Key Name Scope
The owner name of any update authorizing KEY RR must (1) be the same
as the owner name of any RRs being added or deleted or (2) a wildcard
name including within its extended scope (see section 3.3) the name
of any RRs being added or deleted and those RRs must be in the same
zone.
3.1.2 Update Key Class Scope
The class of any update authorizing KEY RR must be the same as the
class of any RR's being added or deleted.
3.1.3 Update Key Signatory Field
The four bit "signatory field" (see RFC 2065) of any update
authorizing KEY RR must be non-zero. The bits have the meanings
described below for non-zone keys (see section 3.2 for zone type
keys).
UPDATE KEY RR SIGNATORY FIELD BITS
0 1 2 3
+-----------+-----------+-----------+-----------+
| zone | strong | unique | general |
+-----------+-----------+-----------+-----------+
Bit 0, zone control - If nonzero, this key is authorized to attach,
detach, and move zones by creating and deleting NS, glue A, and
zone KEY RR(s). If zero, the key can not authorize any update
that would effect such RRs. This bit is meaningful for both
type A and type B dynamic secure zones.
NOTE: do not confuse the "zone" signatory field bit with the
"zone" key type bit.
Bit 1, strong update - If nonzero, this key is authorized to add and
delete RRs even if there are other RRs with the same owner name
and class that are authenticated by a SIG signed with a
different dynamic update KEY. If zero, the key can only
authorize updates where any existing RRs of the same owner and
class are authenticated by a SIG using the same key. This bit
is meaningful only for type A dynamic zones and is ignored in
type B dynamic zones.
Keeping this bit zero on multiple KEY RRs with the same or
nested wild card owner names permits multiple entities to exist
that can create and delete names but can not effect RRs with
different owner names from any they created. In effect, this
creates two levels of dynamic update key, strong and weak, where
weak keys are limited in interfering with each other but a
strong key can interfere with any weak keys or other strong
keys.
Bit 2, unique name update - If nonzero, this key is authorized to add
and update RRs for only a single owner name. If there already
exist RRs with one or more names signed by this key, they may be
updated but no new name created until the number of existing
names is reduced to zero. This bit is meaningful only for mode
A dynamic zones and is ignored in mode B dynamic zones. This bit
is meaningful only if the owner name is a wildcard. (Any
dynamic update KEY with a non-wildcard name is, in effect, a
unique name update key.)
This bit can be used to restrict a KEY from flooding a zone with
new names. In conjunction with a local administratively imposed
limit on the number of dynamic RRs with a particular name, it
can completely restrict a KEY from flooding a zone with RRs.
Bit 3, general update - The general update signatory field bit has no
special meaning. If the other three bits are all zero, it must
be one so that the field is non-zero to designate that the key
is an update key. The meaning of all values of the signatory
field with the general bit and one or more other signatory field
bits on is reserved.
All the signatory bit update authorizations described above only
apply if the update is within the name and class scope as per
sections 3.1.1 and 3.1.2.
RFC 3007, Secure Dynamic Update, November 2000
[RFC2535, section 3.1.2] defines the signatory field of a key as the
final 4 bits of the flags field, but does not define its value. This
proposal leaves this field undefined. Updating [RFC2535], this field
SHOULD be set to 0 in KEY records, and MUST be ignored.
Fields
zone: bool
Deprecated by RFC3007
this key is authorized to attach, detach, and move zones by creating and deleting NS, glue A, and zone KEY RR(s)
strong: bool
Deprecated by RFC3007
this key is authorized to add and delete RRs even if there are other RRs with the same owner name and class that are authenticated by a SIG signed with a different dynamic update KEY
unique: bool
Deprecated by RFC3007
this key is authorized to add and update RRs for only a single owner name
general: bool
Deprecated by RFC3007
The general update signatory field bit has no special meaning, (true if the others are false)
Trait Implementations
sourceimpl Clone for UpdateScope
impl Clone for UpdateScope
sourcefn clone(&self) -> UpdateScope
fn clone(&self) -> UpdateScope
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 UpdateScope
impl Debug for UpdateScope
sourceimpl Default for UpdateScope
impl Default for UpdateScope
sourcefn default() -> UpdateScope
fn default() -> UpdateScope
Returns the “default value” for a type. Read more
sourceimpl<'de> Deserialize<'de> for UpdateScope
impl<'de> Deserialize<'de> for UpdateScope
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<UpdateScope> for u16
impl From<UpdateScope> for u16
sourcefn from(update_scope: UpdateScope) -> Self
fn from(update_scope: UpdateScope) -> Self
Converts to this type from the input type.
sourceimpl From<u16> for UpdateScope
impl From<u16> for UpdateScope
sourceimpl Hash for UpdateScope
impl Hash for UpdateScope
sourceimpl PartialEq<UpdateScope> for UpdateScope
impl PartialEq<UpdateScope> for UpdateScope
sourcefn eq(&self, other: &UpdateScope) -> bool
fn eq(&self, other: &UpdateScope) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &UpdateScope) -> bool
fn ne(&self, other: &UpdateScope) -> bool
This method tests for !=
.
sourceimpl Serialize for UpdateScope
impl Serialize for UpdateScope
impl Copy for UpdateScope
impl Eq for UpdateScope
impl StructuralEq for UpdateScope
impl StructuralPartialEq for UpdateScope
Auto Trait Implementations
impl RefUnwindSafe for UpdateScope
impl Send for UpdateScope
impl Sync for UpdateScope
impl Unpin for UpdateScope
impl UnwindSafe for UpdateScope
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)
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