aboutsummaryrefslogtreecommitdiff
path: root/external/unbound/sldns/rrdef.h
diff options
context:
space:
mode:
Diffstat (limited to 'external/unbound/sldns/rrdef.h')
-rw-r--r--external/unbound/sldns/rrdef.h510
1 files changed, 0 insertions, 510 deletions
diff --git a/external/unbound/sldns/rrdef.h b/external/unbound/sldns/rrdef.h
deleted file mode 100644
index af7bca1d2..000000000
--- a/external/unbound/sldns/rrdef.h
+++ /dev/null
@@ -1,510 +0,0 @@
-/*
- * rrdef.h
- *
- * RR definitions
- *
- * a Net::DNS like library for C
- *
- * (c) NLnet Labs, 2005-2006
- *
- * See the file LICENSE for the license
- */
-
-/**
- * \file
- *
- * Defines resource record types and constants.
- */
-
-#ifndef LDNS_RRDEF_H
-#define LDNS_RRDEF_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** Maximum length of a dname label */
-#define LDNS_MAX_LABELLEN 63
-/** Maximum length of a complete dname */
-#define LDNS_MAX_DOMAINLEN 255
-/** Maximum number of pointers in 1 dname */
-#define LDNS_MAX_POINTERS 65535
-/** The bytes TTL, CLASS and length use up in an rr */
-#define LDNS_RR_OVERHEAD 10
-
-#define LDNS_DNSSEC_KEYPROTO 3
-#define LDNS_KEY_ZONE_KEY 0x0100 /* set for ZSK&KSK, rfc 4034 */
-#define LDNS_KEY_SEP_KEY 0x0001 /* set for KSK, rfc 4034 */
-#define LDNS_KEY_REVOKE_KEY 0x0080 /* used to revoke KSK, rfc 5011 */
-
-/* The first fields are contiguous and can be referenced instantly */
-#define LDNS_RDATA_FIELD_DESCRIPTORS_COMMON 258
-
-/** lookuptable for rr classes */
-extern struct sldns_struct_lookup_table* sldns_rr_classes;
-
-/**
- * The different RR classes.
- */
-enum sldns_enum_rr_class
-{
- /** the Internet */
- LDNS_RR_CLASS_IN = 1,
- /** Chaos class */
- LDNS_RR_CLASS_CH = 3,
- /** Hesiod (Dyer 87) */
- LDNS_RR_CLASS_HS = 4,
- /** None class, dynamic update */
- LDNS_RR_CLASS_NONE = 254,
- /** Any class */
- LDNS_RR_CLASS_ANY = 255,
-
- LDNS_RR_CLASS_FIRST = 0,
- LDNS_RR_CLASS_LAST = 65535,
- LDNS_RR_CLASS_COUNT = LDNS_RR_CLASS_LAST - LDNS_RR_CLASS_FIRST + 1
-};
-typedef enum sldns_enum_rr_class sldns_rr_class;
-
-/**
- * Used to specify whether compression is allowed.
- */
-enum sldns_enum_rr_compress
-{
- /** compression is allowed */
- LDNS_RR_COMPRESS,
- LDNS_RR_NO_COMPRESS
-};
-typedef enum sldns_enum_rr_compress sldns_rr_compress;
-
-/**
- * The different RR types.
- */
-enum sldns_enum_rr_type
-{
- /** a host address */
- LDNS_RR_TYPE_A = 1,
- /** an authoritative name server */
- LDNS_RR_TYPE_NS = 2,
- /** a mail destination (Obsolete - use MX) */
- LDNS_RR_TYPE_MD = 3,
- /** a mail forwarder (Obsolete - use MX) */
- LDNS_RR_TYPE_MF = 4,
- /** the canonical name for an alias */
- LDNS_RR_TYPE_CNAME = 5,
- /** marks the start of a zone of authority */
- LDNS_RR_TYPE_SOA = 6,
- /** a mailbox domain name (EXPERIMENTAL) */
- LDNS_RR_TYPE_MB = 7,
- /** a mail group member (EXPERIMENTAL) */
- LDNS_RR_TYPE_MG = 8,
- /** a mail rename domain name (EXPERIMENTAL) */
- LDNS_RR_TYPE_MR = 9,
- /** a null RR (EXPERIMENTAL) */
- LDNS_RR_TYPE_NULL = 10,
- /** a well known service description */
- LDNS_RR_TYPE_WKS = 11,
- /** a domain name pointer */
- LDNS_RR_TYPE_PTR = 12,
- /** host information */
- LDNS_RR_TYPE_HINFO = 13,
- /** mailbox or mail list information */
- LDNS_RR_TYPE_MINFO = 14,
- /** mail exchange */
- LDNS_RR_TYPE_MX = 15,
- /** text strings */
- LDNS_RR_TYPE_TXT = 16,
- /** RFC1183 */
- LDNS_RR_TYPE_RP = 17,
- /** RFC1183 */
- LDNS_RR_TYPE_AFSDB = 18,
- /** RFC1183 */
- LDNS_RR_TYPE_X25 = 19,
- /** RFC1183 */
- LDNS_RR_TYPE_ISDN = 20,
- /** RFC1183 */
- LDNS_RR_TYPE_RT = 21,
- /** RFC1706 */
- LDNS_RR_TYPE_NSAP = 22,
- /** RFC1348 */
- LDNS_RR_TYPE_NSAP_PTR = 23,
- /** 2535typecode */
- LDNS_RR_TYPE_SIG = 24,
- /** 2535typecode */
- LDNS_RR_TYPE_KEY = 25,
- /** RFC2163 */
- LDNS_RR_TYPE_PX = 26,
- /** RFC1712 */
- LDNS_RR_TYPE_GPOS = 27,
- /** ipv6 address */
- LDNS_RR_TYPE_AAAA = 28,
- /** LOC record RFC1876 */
- LDNS_RR_TYPE_LOC = 29,
- /** 2535typecode */
- LDNS_RR_TYPE_NXT = 30,
- /** draft-ietf-nimrod-dns-01.txt */
- LDNS_RR_TYPE_EID = 31,
- /** draft-ietf-nimrod-dns-01.txt */
- LDNS_RR_TYPE_NIMLOC = 32,
- /** SRV record RFC2782 */
- LDNS_RR_TYPE_SRV = 33,
- /** http://www.jhsoft.com/rfc/af-saa-0069.000.rtf */
- LDNS_RR_TYPE_ATMA = 34,
- /** RFC2915 */
- LDNS_RR_TYPE_NAPTR = 35,
- /** RFC2230 */
- LDNS_RR_TYPE_KX = 36,
- /** RFC2538 */
- LDNS_RR_TYPE_CERT = 37,
- /** RFC2874 */
- LDNS_RR_TYPE_A6 = 38,
- /** RFC2672 */
- LDNS_RR_TYPE_DNAME = 39,
- /** dnsind-kitchen-sink-02.txt */
- LDNS_RR_TYPE_SINK = 40,
- /** Pseudo OPT record... */
- LDNS_RR_TYPE_OPT = 41,
- /** RFC3123 */
- LDNS_RR_TYPE_APL = 42,
- /** RFC4034, RFC3658 */
- LDNS_RR_TYPE_DS = 43,
- /** SSH Key Fingerprint */
- LDNS_RR_TYPE_SSHFP = 44, /* RFC 4255 */
- /** IPsec Key */
- LDNS_RR_TYPE_IPSECKEY = 45, /* RFC 4025 */
- /** DNSSEC */
- LDNS_RR_TYPE_RRSIG = 46, /* RFC 4034 */
- LDNS_RR_TYPE_NSEC = 47, /* RFC 4034 */
- LDNS_RR_TYPE_DNSKEY = 48, /* RFC 4034 */
-
- LDNS_RR_TYPE_DHCID = 49, /* RFC 4701 */
- /* NSEC3 */
- LDNS_RR_TYPE_NSEC3 = 50, /* RFC 5155 */
- LDNS_RR_TYPE_NSEC3PARAM = 51, /* RFC 5155 */
- LDNS_RR_TYPE_NSEC3PARAMS = 51,
- LDNS_RR_TYPE_TLSA = 52, /* RFC 6698 */
- LDNS_RR_TYPE_SMIMEA = 53, /* draft-ietf-dane-smime, TLSA-like but may
- be extended */
-
- LDNS_RR_TYPE_HIP = 55, /* RFC 5205 */
-
- /** draft-reid-dnsext-zs */
- LDNS_RR_TYPE_NINFO = 56,
- /** draft-reid-dnsext-rkey */
- LDNS_RR_TYPE_RKEY = 57,
- /** draft-ietf-dnsop-trust-history */
- LDNS_RR_TYPE_TALINK = 58,
- LDNS_RR_TYPE_CDS = 59, /** RFC 7344 */
- LDNS_RR_TYPE_CDNSKEY = 60, /** RFC 7344 */
- LDNS_RR_TYPE_OPENPGPKEY = 61, /* RFC 7929 */
- LDNS_RR_TYPE_CSYNC = 62, /* RFC 7477 */
-
- LDNS_RR_TYPE_SPF = 99, /* RFC 4408 */
-
- LDNS_RR_TYPE_UINFO = 100,
- LDNS_RR_TYPE_UID = 101,
- LDNS_RR_TYPE_GID = 102,
- LDNS_RR_TYPE_UNSPEC = 103,
-
- LDNS_RR_TYPE_NID = 104, /* RFC 6742 */
- LDNS_RR_TYPE_L32 = 105, /* RFC 6742 */
- LDNS_RR_TYPE_L64 = 106, /* RFC 6742 */
- LDNS_RR_TYPE_LP = 107, /* RFC 6742 */
-
- /** draft-jabley-dnsext-eui48-eui64-rrtypes */
- LDNS_RR_TYPE_EUI48 = 108,
- LDNS_RR_TYPE_EUI64 = 109,
-
- LDNS_RR_TYPE_TKEY = 249, /* RFC 2930 */
- LDNS_RR_TYPE_TSIG = 250,
- LDNS_RR_TYPE_IXFR = 251,
- LDNS_RR_TYPE_AXFR = 252,
- /** A request for mailbox-related records (MB, MG or MR) */
- LDNS_RR_TYPE_MAILB = 253,
- /** A request for mail agent RRs (Obsolete - see MX) */
- LDNS_RR_TYPE_MAILA = 254,
- /** any type (wildcard) */
- LDNS_RR_TYPE_ANY = 255,
- LDNS_RR_TYPE_URI = 256, /* RFC 7553 */
- LDNS_RR_TYPE_CAA = 257, /* RFC 6844 */
-
- /** DNSSEC Trust Authorities */
- LDNS_RR_TYPE_TA = 32768,
- /* RFC 4431, 5074, DNSSEC Lookaside Validation */
- LDNS_RR_TYPE_DLV = 32769,
-
- /* type codes from nsec3 experimental phase
- LDNS_RR_TYPE_NSEC3 = 65324,
- LDNS_RR_TYPE_NSEC3PARAMS = 65325, */
- LDNS_RR_TYPE_FIRST = 0,
- LDNS_RR_TYPE_LAST = 65535,
- LDNS_RR_TYPE_COUNT = LDNS_RR_TYPE_LAST - LDNS_RR_TYPE_FIRST + 1
-};
-typedef enum sldns_enum_rr_type sldns_rr_type;
-
-/* RDATA */
-#define LDNS_MAX_RDFLEN 65535
-
-#define LDNS_RDF_SIZE_BYTE 1
-#define LDNS_RDF_SIZE_WORD 2
-#define LDNS_RDF_SIZE_DOUBLEWORD 4
-#define LDNS_RDF_SIZE_6BYTES 6
-#define LDNS_RDF_SIZE_8BYTES 8
-#define LDNS_RDF_SIZE_16BYTES 16
-
-#define LDNS_NSEC3_VARS_OPTOUT_MASK 0x01
-
-#define LDNS_APL_IP4 1
-#define LDNS_APL_IP6 2
-#define LDNS_APL_MASK 0x7f
-#define LDNS_APL_NEGATION 0x80
-
-/**
- * The different types of RDATA fields.
- */
-enum sldns_enum_rdf_type
-{
- /** none */
- LDNS_RDF_TYPE_NONE,
- /** domain name */
- LDNS_RDF_TYPE_DNAME,
- /** 8 bits */
- LDNS_RDF_TYPE_INT8,
- /** 16 bits */
- LDNS_RDF_TYPE_INT16,
- /** 32 bits */
- LDNS_RDF_TYPE_INT32,
- /** A record */
- LDNS_RDF_TYPE_A,
- /** AAAA record */
- LDNS_RDF_TYPE_AAAA,
- /** txt string */
- LDNS_RDF_TYPE_STR,
- /** apl data */
- LDNS_RDF_TYPE_APL,
- /** b32 string */
- LDNS_RDF_TYPE_B32_EXT,
- /** b64 string */
- LDNS_RDF_TYPE_B64,
- /** hex string */
- LDNS_RDF_TYPE_HEX,
- /** nsec type codes */
- LDNS_RDF_TYPE_NSEC,
- /** a RR type */
- LDNS_RDF_TYPE_TYPE,
- /** a class */
- LDNS_RDF_TYPE_CLASS,
- /** certificate algorithm */
- LDNS_RDF_TYPE_CERT_ALG,
- /** a key algorithm */
- LDNS_RDF_TYPE_ALG,
- /** unknown types */
- LDNS_RDF_TYPE_UNKNOWN,
- /** time (32 bits) */
- LDNS_RDF_TYPE_TIME,
- /** period */
- LDNS_RDF_TYPE_PERIOD,
- /** tsig time 48 bits */
- LDNS_RDF_TYPE_TSIGTIME,
- /** Represents the Public Key Algorithm, HIT and Public Key fields
- for the HIP RR types. A HIP specific rdf type is used because of
- the unusual layout in wireformat (see RFC 5205 Section 5) */
- LDNS_RDF_TYPE_HIP,
- /** variable length any type rdata where the length
- is specified by the first 2 bytes */
- LDNS_RDF_TYPE_INT16_DATA,
- /** protocol and port bitmaps */
- LDNS_RDF_TYPE_SERVICE,
- /** location data */
- LDNS_RDF_TYPE_LOC,
- /** well known services */
- LDNS_RDF_TYPE_WKS,
- /** NSAP */
- LDNS_RDF_TYPE_NSAP,
- /** ATMA */
- LDNS_RDF_TYPE_ATMA,
- /** IPSECKEY */
- LDNS_RDF_TYPE_IPSECKEY,
- /** nsec3 hash salt */
- LDNS_RDF_TYPE_NSEC3_SALT,
- /** nsec3 base32 string (with length byte on wire */
- LDNS_RDF_TYPE_NSEC3_NEXT_OWNER,
-
- /** 4 shorts represented as 4 * 16 bit hex numbers
- * seperated by colons. For NID and L64.
- */
- LDNS_RDF_TYPE_ILNP64,
-
- /** 6 * 8 bit hex numbers seperated by dashes. For EUI48. */
- LDNS_RDF_TYPE_EUI48,
- /** 8 * 8 bit hex numbers seperated by dashes. For EUI64. */
- LDNS_RDF_TYPE_EUI64,
-
- /** A non-zero sequence of US-ASCII letters and numbers in lower case.
- * For CAA.
- */
- LDNS_RDF_TYPE_TAG,
-
- /** A <character-string> encoding of the value field as specified
- * [RFC1035], Section 5.1., encoded as remaining rdata.
- * For CAA, URI.
- */
- LDNS_RDF_TYPE_LONG_STR,
-
- /* Aliases */
- LDNS_RDF_TYPE_BITMAP = LDNS_RDF_TYPE_NSEC
-};
-typedef enum sldns_enum_rdf_type sldns_rdf_type;
-
-/**
- * Algorithms used in dns
- */
-enum sldns_enum_algorithm
-{
- LDNS_RSAMD5 = 1, /* RFC 4034,4035 */
- LDNS_DH = 2,
- LDNS_DSA = 3,
- LDNS_ECC = 4,
- LDNS_RSASHA1 = 5,
- LDNS_DSA_NSEC3 = 6,
- LDNS_RSASHA1_NSEC3 = 7,
- LDNS_RSASHA256 = 8, /* RFC 5702 */
- LDNS_RSASHA512 = 10, /* RFC 5702 */
- LDNS_ECC_GOST = 12, /* RFC 5933 */
- LDNS_ECDSAP256SHA256 = 13, /* RFC 6605 */
- LDNS_ECDSAP384SHA384 = 14, /* RFC 6605 */
- LDNS_ED25519 = 15, /* RFC 8080 */
- LDNS_ED448 = 16, /* RFC 8080 */
- LDNS_INDIRECT = 252,
- LDNS_PRIVATEDNS = 253,
- LDNS_PRIVATEOID = 254
-};
-typedef enum sldns_enum_algorithm sldns_algorithm;
-
-/**
- * Hashing algorithms used in the DS record
- */
-enum sldns_enum_hash
-{
- LDNS_SHA1 = 1, /* RFC 4034 */
- LDNS_SHA256 = 2, /* RFC 4509 */
- LDNS_HASH_GOST = 3, /* RFC 5933 */
- LDNS_SHA384 = 4 /* RFC 6605 */
-};
-typedef enum sldns_enum_hash sldns_hash;
-
-/**
- * algorithms used in CERT rrs
- */
-enum sldns_enum_cert_algorithm
-{
- LDNS_CERT_PKIX = 1,
- LDNS_CERT_SPKI = 2,
- LDNS_CERT_PGP = 3,
- LDNS_CERT_IPKIX = 4,
- LDNS_CERT_ISPKI = 5,
- LDNS_CERT_IPGP = 6,
- LDNS_CERT_ACPKIX = 7,
- LDNS_CERT_IACPKIX = 8,
- LDNS_CERT_URI = 253,
- LDNS_CERT_OID = 254
-};
-typedef enum sldns_enum_cert_algorithm sldns_cert_algorithm;
-
-/**
- * EDNS option codes
- */
-enum sldns_enum_edns_option
-{
- LDNS_EDNS_LLQ = 1, /* http://files.dns-sd.org/draft-sekar-dns-llq.txt */
- LDNS_EDNS_UL = 2, /* http://files.dns-sd.org/draft-sekar-dns-ul.txt */
- LDNS_EDNS_NSID = 3, /* RFC5001 */
- /* 4 draft-cheshire-edns0-owner-option */
- LDNS_EDNS_DAU = 5, /* RFC6975 */
- LDNS_EDNS_DHU = 6, /* RFC6975 */
- LDNS_EDNS_N3U = 7, /* RFC6975 */
- LDNS_EDNS_CLIENT_SUBNET = 8, /* RFC7871 */
- LDNS_EDNS_KEEPALIVE = 11, /* draft-ietf-dnsop-edns-tcp-keepalive*/
- LDNS_EDNS_PADDING = 12 /* RFC7830 */
-};
-typedef enum sldns_enum_edns_option sldns_edns_option;
-
-#define LDNS_EDNS_MASK_DO_BIT 0x8000
-
-/**
- * Contains all information about resource record types.
- *
- * This structure contains, for all rr types, the rdata fields that are defined.
- */
-struct sldns_struct_rr_descriptor
-{
- /** Type of the RR that is described here */
- sldns_rr_type _type;
- /** Textual name of the RR type. */
- const char *_name;
- /** Minimum number of rdata fields in the RRs of this type. */
- uint8_t _minimum;
- /** Maximum number of rdata fields in the RRs of this type. */
- uint8_t _maximum;
- /** Wireformat specification for the rr, i.e. the types of rdata fields in their respective order. */
- const sldns_rdf_type *_wireformat;
- /** Special rdf types */
- sldns_rdf_type _variable;
- /** Specifies whether compression can be used for dnames in this RR type. */
- sldns_rr_compress _compress;
- /** The number of DNAMEs in the _wireformat string, for parsing. */
- uint8_t _dname_count;
-};
-typedef struct sldns_struct_rr_descriptor sldns_rr_descriptor;
-
-/**
- * returns the resource record descriptor for the given rr type.
- *
- * \param[in] type the type value of the rr type
- *\return the sldns_rr_descriptor for this type
- */
-const sldns_rr_descriptor *sldns_rr_descript(uint16_t type);
-
-/**
- * returns the minimum number of rdata fields of the rr type this descriptor describes.
- *
- * \param[in] descriptor for an rr type
- * \return the minimum number of rdata fields
- */
-size_t sldns_rr_descriptor_minimum(const sldns_rr_descriptor *descriptor);
-
-/**
- * returns the maximum number of rdata fields of the rr type this descriptor describes.
- *
- * \param[in] descriptor for an rr type
- * \return the maximum number of rdata fields
- */
-size_t sldns_rr_descriptor_maximum(const sldns_rr_descriptor *descriptor);
-
-/**
- * returns the rdf type for the given rdata field number of the rr type for the given descriptor.
- *
- * \param[in] descriptor for an rr type
- * \param[in] field the field number
- * \return the rdf type for the field
- */
-sldns_rdf_type sldns_rr_descriptor_field_type(const sldns_rr_descriptor *descriptor, size_t field);
-
-/**
- * retrieves a rrtype by looking up its name.
- * \param[in] name a string with the name
- * \return the type which corresponds with the name
- */
-sldns_rr_type sldns_get_rr_type_by_name(const char *name);
-
-/**
- * retrieves a class by looking up its name.
- * \param[in] name string with the name
- * \return the cass which corresponds with the name
- */
-sldns_rr_class sldns_get_rr_class_by_name(const char *name);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LDNS_RRDEF_H */