hickory_proto::dnssec::openssl

Struct Ec

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

Elyptic Curve public key type

Implementations§

Source§

impl<'k> Ec<'k>

Source

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

RFC 6605                    ECDSA for DNSSEC                  April 2012

  4.  DNSKEY and RRSIG Resource Records for ECDSA

  ECDSA public keys consist of a single value, called "Q" in FIPS
  186-3.  In DNSSEC keys, Q is a simple bit string that represents the
  uncompressed form of a curve point, "x | y".

  The ECDSA signature is the combination of two non-negative integers,
  called "r" and "s" in FIPS 186-3.  The two integers, each of which is
  formatted as a simple octet string, are combined into a single longer
  octet string for DNSSEC as the concatenation "r | s".  (Conversion of
  the integers to bit strings is described in Section C.2 of FIPS
  186-3.)  For P-256, each integer MUST be encoded as 32 octets; for
  P-384, each integer MUST be encoded as 48 octets.

  The algorithm numbers associated with the DNSKEY and RRSIG resource
  records are fully defined in the IANA Considerations section.  They
  are:

  o  DNSKEY and RRSIG RRs signifying ECDSA with the P-256 curve and
     SHA-256 use the algorithm number 13.

  o  DNSKEY and RRSIG RRs signifying ECDSA with the P-384 curve and
     SHA-384 use the algorithm number 14.

  Conformant implementations that create records to be put into the DNS
  MUST implement signing and verification for both of the above
  algorithms.  Conformant DNSSEC verifiers MUST implement verification
  for both of the above algorithms.

Trait Implementations§

Source§

impl PublicKey for Ec<'_>

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 Ec<'k>

§

impl<'k> RefUnwindSafe for Ec<'k>

§

impl<'k> Send for Ec<'k>

§

impl<'k> Sync for Ec<'k>

§

impl<'k> Unpin for Ec<'k>

§

impl<'k> UnwindSafe for Ec<'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