Struct domain::rdata::rfc2845::Tsig

source ·
pub struct Tsig<Octets, Name> { /* private fields */ }

Implementations§

source§

impl<O, N> Tsig<O, N>

source

pub fn new( algorithm: N, time_signed: Time48, fudge: u16, mac: O, original_id: u16, error: TsigRcode, other: O ) -> Self

Creates a new TSIG record from its components.

See the access methods for an explanation of these components.

Panics

Since time_signed is actually a 48 bit integer, the function will panic of the upper 16 bits are not all 0.

source

pub fn algorithm(&self) -> &N

Returns a reference to the algorithm name.

TSIG encodes the algorithm used for keys and signatures as a domain name. It does, however, only use the format. No structure is used at all.

source

pub fn time_signed(&self) -> Time48

Returns the Unix time when the signature is created.

Despite its type, this is actually a 48 bit number. The upper 16 bits will never be set.

source

pub fn fudge(&self) -> u16

Return the number of seconds of offset from signing time permitted.

When a signature is checked, the local system time needs to be within this many seconds from time_signed to be accepted.

source

pub fn mac(&self) -> &O

Returns a reference to the bytes value containing the MAC.

source

pub fn mac_slice(&self) -> &[u8] where O: AsRef<[u8]>,

Returns an octet slice containing the MAC.

source

pub fn into_mac(self) -> O

Converts the record data into the MAC.

source

pub fn original_id(&self) -> u16

Returns the original message ID.

Since the message ID is part of the signature generation but may be changed for a forwarded message, it is included in the TSIG record.

source

pub fn error(&self) -> TsigRcode

Returns the TSIG error.

source

pub fn other(&self) -> &O

Returns a reference to the other bytes.

This field is only used for BADTIME errors to return the server time. Otherwise it is empty.

source

pub fn other_time(&self) -> Option<Time48>where O: AsRef<[u8]>,

Returns the other bytes as the server time.

If the other bytes field is exactly 6 bytes long, this methods returns it as a u64 representation of the Unix time contained.

source

pub fn is_valid_now(&self) -> bool

Returns whether the record is valid right now.

The method checks whether the current system time is within fudge seconds of the time_signed.

source§

impl<Ref> Tsig<Ref::Range, ParsedDname<Ref>>where Ref: OctetsRef,

source

pub fn flatten_into<Octets>( self ) -> Result<Tsig<Octets, Dname<Octets>>, PushError>where Octets: OctetsFrom<Ref::Range> + FromBuilder, <Octets as FromBuilder>::Builder: EmptyBuilder,

Trait Implementations§

source§

impl<O, OO, N, NN> CanonicalOrd<Tsig<OO, NN>> for Tsig<O, N>where O: AsRef<[u8]>, OO: AsRef<[u8]>, N: ToDname, NN: ToDname,

source§

fn canonical_cmp(&self, other: &Tsig<OO, NN>) -> Ordering

Returns the canonical ordering between self and other.
source§

fn canonical_lt(&self, other: &Rhs) -> bool

Returns whether self is canonically less than other.
source§

fn canonical_le(&self, other: &Rhs) -> bool

Returns whether self is canonically less than or equal to other.
source§

fn canonical_gt(&self, other: &Rhs) -> bool

Returns whether self is canonically greater than other.
source§

fn canonical_ge(&self, other: &Rhs) -> bool

Returns whether self is canonically greater than or equal to other.
source§

impl<Octets: Clone, Name: Clone> Clone for Tsig<Octets, Name>

source§

fn clone(&self) -> Tsig<Octets, Name>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<O: AsRef<[u8]>, N: Compose> Compose for Tsig<O, N>

source§

fn compose<T: OctetsBuilder + AsMut<[u8]>>( &self, target: &mut T ) -> Result<(), ShortBuf>

Appends the concrete representation of the value to the target. Read more
source§

fn compose_canonical<T: OctetsBuilder + AsMut<[u8]>>( &self, target: &mut T ) -> Result<(), ShortBuf>

Appends the canonical representation of the value to the target. Read more
source§

impl<O: AsRef<[u8]>, N: Debug> Debug for Tsig<O, N>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<O: AsRef<[u8]>, N: Display> Display for Tsig<O, N>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<O, N> From<Tsig<O, N>> for AllRecordData<O, N>

source§

fn from(value: Tsig<O, N>) -> Self

Converts to this type from the input type.
source§

impl<O: AsRef<[u8]>, N: Hash> Hash for Tsig<O, N>

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<Octets, SrcOctets, Name, SrcName> OctetsFrom<Tsig<SrcOctets, SrcName>> for Tsig<Octets, Name>where Octets: OctetsFrom<SrcOctets>, Name: OctetsFrom<SrcName>,

source§

fn octets_from(source: Tsig<SrcOctets, SrcName>) -> Result<Self, ShortBuf>

Performs the conversion.
source§

impl<O: AsRef<[u8]>, N: ToDname> Ord for Tsig<O, N>

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Selfwhere Self: Sized + PartialOrd<Self>,

Restrict a value to a certain interval. Read more
source§

impl<Ref: OctetsRef> Parse<Ref> for Tsig<Ref::Range, ParsedDname<Ref>>

source§

fn parse(parser: &mut Parser<Ref>) -> Result<Self, ParseError>

Extracts a value from the beginning of parser. Read more
source§

fn skip(parser: &mut Parser<Ref>) -> Result<(), ParseError>

Skips over a value of this type at the beginning of parser. Read more
source§

impl<O, OO, N, NN> PartialEq<Tsig<OO, NN>> for Tsig<O, N>where O: AsRef<[u8]>, OO: AsRef<[u8]>, N: ToDname, NN: ToDname,

source§

fn eq(&self, other: &Tsig<OO, NN>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<O, OO, N, NN> PartialOrd<Tsig<OO, NN>> for Tsig<O, N>where O: AsRef<[u8]>, OO: AsRef<[u8]>, N: ToDname, NN: ToDname,

source§

fn partial_cmp(&self, other: &Tsig<OO, NN>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<O, N> RtypeRecordData for Tsig<O, N>

source§

const RTYPE: Rtype = Rtype::Tsig

The record type of a value of this type.
source§

impl<O: AsRef<[u8]>, N: ToDname> Eq for Tsig<O, N>

Auto Trait Implementations§

§

impl<Octets, Name> RefUnwindSafe for Tsig<Octets, Name>where Name: RefUnwindSafe, Octets: RefUnwindSafe,

§

impl<Octets, Name> Send for Tsig<Octets, Name>where Name: Send, Octets: Send,

§

impl<Octets, Name> Sync for Tsig<Octets, Name>where Name: Sync, Octets: Sync,

§

impl<Octets, Name> Unpin for Tsig<Octets, Name>where Name: Unpin, Octets: Unpin,

§

impl<Octets, Name> UnwindSafe for Tsig<Octets, Name>where Name: UnwindSafe, Octets: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<Source, Target> OctetsInto<Target> for Sourcewhere Target: OctetsFrom<Source>,

source§

fn octets_into(self) -> Result<Target, ShortBuf>

Performs the conversion.
source§

impl<Octets, T> ParseRecordData<Octets> for Twhere T: RtypeRecordData + Parse<Octets> + Compose,

source§

fn parse_data( rtype: Rtype, parser: &mut Parser<Octets> ) -> Result<Option<T>, ParseError>

Parses the record data. Read more
source§

impl<T> RecordData for Twhere T: RtypeRecordData + Compose,

source§

fn rtype(&self) -> Rtype

Returns the record type associated with this record data instance. Read more
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

source§

fn vzip(self) -> V