def canonical_l1(self, ttl): rdata = bytearray() for part in self.address.split('.'): rdata.append(int(part)) return DNSRR(self.name.lower(), dns_type_to_int(self.typ), dns_class_to_int('IN'), ttl, 4, rdata, None, None)
def canonical_l1(self, ttl): rdata = bytearray() rdata.extend(pack('! H B B', self.keytag, dnssec_algorithm_to_int(self.algorithm), dnssec_digest_type_to_int(self.digest_type))) rdata.extend(self.digest) return DNSRR(self.name.lower(), dns_type_to_int(self.typ), dns_class_to_int('IN'), ttl, len(rdata), rdata, None, None)
def canonical_l1(self, ttl): rdata = bytearray() rdata.extend(pack('! H B B', self.flags, 3, dnssec_algorithm_to_int(self.algorithm))) rdata.extend(self.public_key) return DNSRR(self.name.lower(), dns_type_to_int(self.typ), dns_class_to_int('IN'), ttl, len(rdata), rdata, None, None)
def to_rr(self): b = bytearray() b.extend(pack('! H B B', self.keytag, dnssec_algorithm_to_int(self.algorithm), dnssec_digest_type_to_int(self.digest_type))) b.extend(self.digest) return DNSRR(self.name, dns_type_to_int(self.typ), dns_class_to_int(self.clas), self.ttl, len(b), b, None, None)
def canonical_l1(self, ttl): rdata = bytearray() rdata.extend(encode_name(self.mname)) rdata.extend(encode_name(self.rname)) rdata.extend(pack('! I I I I I', self.serial, self.refresh, self.retry, self.expire, self.minimum)) return DNSRR(self.name.lower(), dns_type_to_int(self.typ), dns_class_to_int('IN'), ttl, len(rdata), rdata, None, None)
def make_query_message(qname, qtype, qclass, rd, cd, udp_payload_size, dnssec_ok=False): msgid = random_dns_message_id() qrr = DNSQuestionRR(qname, dns_type_to_int(qtype), dns_class_to_int(qclass)) if udp_payload_size is not None: opt_rr = DNSOptRR(udp_payload_size, 0, 0, dnssec_ok, []) else: opt_rr = None dns_message = DNSMessage( DNSHeader(msgid, DNSFlags(False, 0, False, False, rd, False, False, cd, 0), 1, 0, 0, 1 if opt_rr else 0), [qrr], [], [], [opt_rr] if opt_rr is not None else []) return dns_message