42 #ifndef _DWMDNSRRDATARRSIG_HH_ 43 #define _DWMDNSRRDATARRSIG_HH_ 63 static const uint16_t k_rrtype = 46;
87 RRDataRRSIG(uint16_t typeCovered, uint8_t algorithm, uint8_t labels,
88 uint32_t originalTTL, uint32_t signatureExpiration,
89 uint32_t signatureInception, uint16_t keyTag,
90 const std::string & signersName,
91 const std::string & signature);
126 uint8_t
Labels(uint8_t labels);
166 uint16_t
KeyTag(uint16_t keyTag);
176 const std::string &
SignersName(
const std::string & signersName);
186 const std::string &
Signature(
const std::string & signature);
195 uint8_t *
Encode(uint8_t *pkt, uint8_t *ptr, uint16_t pktlen,
205 const uint8_t *
Decode(
const uint8_t *pkt,
const uint8_t *ptr,
206 uint16_t pktlen, uint16_t rdlen);
212 friend std::ostream &
operator << (std::ostream & os,
223 typedef struct __attribute__((packed)) {
224 uint16_t typeCovered;
227 uint32_t originalTTL;
228 uint32_t signatureExpiration;
229 uint32_t signatureInception;
233 fixed_data_t _fixedData;
234 std::string _signersName;
235 std::string _signature;
237 static fixed_data_t ToNetworkByteOrder(
const fixed_data_t *data);
238 static fixed_data_t ToHostByteOrder(
const fixed_data_t *data);
245 #endif // _DWMDNSRRDATARRSIG_HH_ uint32_t SignatureInception() const
Returns the contained signature inception.
bool operator==(const RRDataRRSIG &rrsig) const
Equal-to operator, mostly for unit testing.
static constexpr uint8_t k_algoDH
Definition: DwmDnsRRDataRRSIG.hh:68
const uint8_t * Decode(const uint8_t *pkt, const uint8_t *ptr, uint16_t pktlen, uint16_t rdlen)
Decodes the RRSIG resource record data from buffer pkt of length pktlen, starting at ptr...
uint8_t * Encode(uint8_t *pkt, uint8_t *ptr, uint16_t pktlen, LabelPositions &lps) const
Encodes the RRSIG resource record data into buffer @ pkt of length pktlen, starting at ptr...
const std::string & Signature() const
Returns the contained signature.
uint8_t Algorithm() const
Returns the contained algorithm.
uint32_t SignatureExpiration() const
Returns the contained signature expiration.
static std::string AlgorithmName(uint8_t algo)
Returns the mnemonic for the given algorithm algo.
static constexpr uint8_t k_algoDSA
Definition: DwmDnsRRDataRRSIG.hh:69
static constexpr uint8_t k_algoPRIVATEDNS
Definition: DwmDnsRRDataRRSIG.hh:73
uint16_t TypeCovered() const
Returns the contained type covered.
uint16_t KeyTag() const
Returns the contained key tag.
static constexpr uint8_t k_algoINDIRECT
Definition: DwmDnsRRDataRRSIG.hh:72
uint8_t Labels() const
Returns the contained labels.
static constexpr uint8_t k_algoRSASHA1
Definition: DwmDnsRRDataRRSIG.hh:71
RRDataRRSIG()
Construct with empty signer's name and signature.
Definition: DwmDnsEtcHosts.hh:60
friend std::ostream & operator<<(std::ostream &os, const RRDataRRSIG &rrsig)
Print the RRSIG resource record data to an ostream in human readable form.
static constexpr uint8_t k_algoRSAMD5
Definition: DwmDnsRRDataRRSIG.hh:67
Dwm::Dns::RRData class definition.
Encapsulates RRSIG resource record data.
Definition: DwmDnsRRDataRRSIG.hh:59
static constexpr uint8_t k_algoPRIVATEOID
Definition: DwmDnsRRDataRRSIG.hh:74
A helper class used when performing label sequence compression.
Definition: DwmDnsLabelPositions.hh:57
uint32_t OriginalTTL() const
Returns the contained original TTL.
static constexpr uint8_t k_algoECC
Definition: DwmDnsRRDataRRSIG.hh:70
Abstract (pure virtual) base for resource record data classes.
Definition: DwmDnsRRData.hh:71
const std::string & SignersName() const
Returns the contained signer's name.