42 #ifndef _DWMDNSRRDATADNSKEY_HH_ 43 #define _DWMDNSRRDATADNSKEY_HH_ 63 static const uint16_t k_rrtype = 48;
65 static const uint16_t k_flagsZoneKeyMask = 0x0080;
66 static const uint16_t k_flagsSecureEntryPointMask = 0x8000;
68 static const uint8_t k_algorithmReserved = 0;
69 static const uint8_t k_algorithmRSAMD5 = 1;
70 static const uint8_t k_algorithmDiffieHellman = 2;
71 static const uint8_t k_algorithmDSA = 3;
72 static const uint8_t k_algorithmECC = 4;
73 static const uint8_t k_algorithmRSASHA1 = 5;
74 static const uint8_t k_algorithmINDIRECT = 252;
75 static const uint8_t k_algorithmPRIVATEDNS = 253;
76 static const uint8_t k_algorithmPRIVATEOID = 254;
87 RRDataDNSKEY(uint16_t flags, uint8_t protocol, uint8_t algorithm,
88 const std::string & publicKey);
98 uint16_t
Flags()
const;
103 uint16_t
Flags(uint16_t flags);
133 const std::string &
PublicKey(
const std::string & publicKey);
142 uint8_t *
Encode(uint8_t *pkt, uint8_t *ptr, uint16_t pktlen,
152 const uint8_t *
Decode(
const uint8_t *pkt,
const uint8_t *ptr,
153 uint16_t pktlen, uint16_t rdlen);
159 friend std::ostream &
operator << (std::ostream & os,
166 std::string _publicKey;
173 #endif // _DWMDNSRRDATADNSKEY_HH_ const uint8_t * Decode(const uint8_t *pkt, const uint8_t *ptr, uint16_t pktlen, uint16_t rdlen)
Decodes the DNSKEY resource record data from buffer pkt of length pktlen, starting at ptr...
Encapsulates DNSKEY resource record data.
Definition: DwmDnsRRDataDNSKEY.hh:59
bool operator==(const RRDataDNSKEY &dnskey) const
Equal-to operator, mostly for unit testing.
const std::string & PublicKey() const
Returns the public key in the DNSKEY resource record data.
uint16_t Flags() const
Returns the flags in the DNSKEY resource record data.
uint8_t Algorithm() const
Returns the algorithm in the DNSKEY resource record data.
uint8_t * Encode(uint8_t *pkt, uint8_t *ptr, uint16_t pktlen, LabelPositions &lps) const
Encodes the DNSKEY resource record data into buffer @ pkt of length pktlen, starting at ptr...
Definition: DwmDnsEtcHosts.hh:60
uint8_t Protocol() const
Per RFC 4034, protocol must always be 3.
RRDataDNSKEY()
Constructs empty DNSKEY resource record data.
Dwm::Dns::RRData class definition.
A helper class used when performing label sequence compression.
Definition: DwmDnsLabelPositions.hh:57
friend std::ostream & operator<<(std::ostream &os, const RRDataDNSKEY &dnskey)
Print the DNSKEY resource record data to an ostream in human readable form.
Abstract (pure virtual) base for resource record data classes.
Definition: DwmDnsRRData.hh:71