hickory_proto::dnssec::public_key

Trait PublicKey

Source
pub trait PublicKey {
    // Required methods
    fn public_bytes(&self) -> &[u8] ;
    fn verify(&self, message: &[u8], signature: &[u8]) -> Result<(), ProtoError>;
    fn algorithm(&self) -> Algorithm;
}
Available on crate feature dnssec only.
Expand description

PublicKeys implement the ability to ideally be zero copy abstractions over public keys for verifying signed content.

In DNS the KEY and DNSKEY types are generally the RData types which store public key material.

Required Methods§

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.

§Arguments
  • message - the message to be validated, see hash_rrset
  • signature - the signature to use to verify the hash, extracted from an RData::RRSIG for example.
§Return value

True if and only if the signature is valid for the hash. This will always return false if the key.

Source

fn algorithm(&self) -> Algorithm

The algorithm associated with this key.

Implementors§

Source§

impl PublicKey for hickory_proto::dnssec::openssl::Ec<'_>

Available on crate feature dnssec-openssl only.
Source§

impl PublicKey for hickory_proto::dnssec::openssl::Rsa<'_>

Available on crate feature dnssec-openssl only.
Source§

impl PublicKey for Ed25519<'_>

Available on crate feature dnssec-ring only.
Source§

impl PublicKey for hickory_proto::dnssec::ring::Rsa<'_>

Available on crate feature dnssec-ring only.
Source§

impl PublicKey for PublicKeyBuf

Source§

impl PublicKey for hickory_proto::dnssec::ring::Ec

Available on crate feature dnssec-ring only.