hickory_proto::dnssec::openssl

Struct Rsa

Source
pub struct Rsa<'k> { /* private fields */ }
Available on crate features dnssec and dnssec-openssl only.
Expand description

Rsa public key

Implementations§

Source§

impl<'k> Rsa<'k>

Source

pub fn from_public_bytes( raw: Cow<'k, [u8]>, algorithm: Algorithm, ) -> Result<Self, ProtoError>

RFC 3110              RSA SIGs and KEYs in the DNS              May 2001

      2. RSA Public KEY Resource Records

 RSA public keys are stored in the DNS as KEY RRs using algorithm
 number 5 [RFC2535].  The structure of the algorithm specific portion
 of the RDATA part of such RRs is as shown below.

       Field             Size
       -----             ----
       exponent length   1 or 3 octets (see text)
       exponent          as specified by length field
       modulus           remaining space

 For interoperability, the exponent and modulus are each limited to
 4096 bits in length.  The public key exponent is a variable length
 unsigned integer.  Its length in octets is represented as one octet
 if it is in the range of 1 to 255 and by a zero octet followed by a
 two octet unsigned length if it is longer than 255 bytes.  The public
 key modulus field is a multiprecision unsigned integer.  The length
 of the modulus can be determined from the RDLENGTH and the preceding
 RDATA fields including the exponent.  Leading zero octets are
 prohibited in the exponent and modulus.

 Note: KEY RRs for use with RSA/SHA1 DNS signatures MUST use this
 algorithm number (rather than the algorithm number specified in the
 obsoleted RFC 2537).

 Note: This changes the algorithm number for RSA KEY RRs to be the
 same as the new algorithm number for RSA/SHA1 SIGs.

Trait Implementations§

Source§

impl PublicKey for Rsa<'_>

Source§

fn public_bytes(&self) -> &[u8]

Returns the public bytes of the public key, in DNS format
Source§

fn verify(&self, message: &[u8], signature: &[u8]) -> Result<(), ProtoError>

Verifies the hash matches the signature with the current key. Read more
Source§

fn algorithm(&self) -> Algorithm

The algorithm associated with this key.

Auto Trait Implementations§

§

impl<'k> Freeze for Rsa<'k>

§

impl<'k> RefUnwindSafe for Rsa<'k>

§

impl<'k> Send for Rsa<'k>

§

impl<'k> Sync for Rsa<'k>

§

impl<'k> Unpin for Rsa<'k>

§

impl<'k> UnwindSafe for Rsa<'k>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where 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<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

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 T
where U: TryFrom<T>,

Source§

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 T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T