42 #ifndef _DWMDNSRRDATAKEY_HH_ 43 #define _DWMDNSRRDATAKEY_HH_ 66 static const uint16_t k_rrtype = 25;
68 static const uint16_t k_flagsACMask = 0xC000;
69 static const uint16_t k_flagsXTMask = 0x1000;
70 static const uint16_t k_flagsNAMTYPEMask = 0x0300;
71 static const uint16_t k_flagsSIGMask = 0x000F;
73 static const uint8_t k_protocolReserved = 0;
74 static const uint8_t k_protocolTLS = 1;
75 static const uint8_t k_protocolEmail = 2;
76 static const uint8_t k_protocolDNSSEC = 3;
77 static const uint8_t k_protocolIPSEC = 4;
78 static const uint8_t k_protocolAll = 255;
80 static const uint8_t k_algorithmReserved = 0;
81 static const uint8_t k_algorithmRSA_MD5 = 1;
82 static const uint8_t k_algorithmDiffieHellman = 2;
83 static const uint8_t k_algorithmDSA = 3;
94 RRDataKEY(uint16_t flags, uint8_t protocol, uint8_t algorithm,
95 uint16_t moreFlags,
const std::string & publicKey);
105 uint16_t
Flags()
const;
110 uint16_t
Flags(uint16_t flags);
150 const std::string &
PublicKey(
const std::string & publicKey);
159 uint8_t *
Encode(uint8_t *pkt, uint8_t *ptr, uint16_t pktlen,
169 const uint8_t *
Decode(
const uint8_t *pkt,
const uint8_t *ptr,
170 uint16_t pktlen, uint16_t rdlen);
176 friend std::ostream &
operator << (std::ostream & os,
184 std::string _publicKey;
191 #endif // _DWMDNSRRDATAKEY_HH_ Encapsulates KEY resource record data.
Definition: DwmDnsRRDataKEY.hh:62
friend std::ostream & operator<<(std::ostream &os, const RRDataKEY &key)
Print the KEY resource record data to an ostream in human readable form.
const uint8_t * Decode(const uint8_t *pkt, const uint8_t *ptr, uint16_t pktlen, uint16_t rdlen)
Decodes the KEY resource record data from buffer pkt of length pktlen, starting at ptr...
uint16_t Flags() const
Returns the contained flags.
uint8_t * Encode(uint8_t *pkt, uint8_t *ptr, uint16_t pktlen, LabelPositions &lps) const
Encodes the KEY resource record data into buffer @ pkt of length pktlen, starting at ptr...
const std::string & PublicKey() const
Returns the contained public key.
Definition: DwmDnsEtcHosts.hh:60
bool operator==(const RRDataKEY &key) const
Equal-to operator, mostly for unit testing.
uint8_t Protocol() const
Returns the contained protocol.
uint16_t MoreFlags() const
Returns the contained 'more flags'.
RRDataKEY()
Construct with an empty public key.
Dwm::Dns::RRData class definition.
A helper class used when performing label sequence compression.
Definition: DwmDnsLabelPositions.hh:57
uint8_t Algorithm() const
Returns the contained algorithm.
Abstract (pure virtual) base for resource record data classes.
Definition: DwmDnsRRData.hh:71