Electroneum
Loading...
Searching...
No Matches
rrdef.h
Go to the documentation of this file.
1/*
2 * rrdef.h
3 *
4 * RR definitions
5 *
6 * a Net::DNS like library for C
7 *
8 * (c) NLnet Labs, 2005-2006
9 *
10 * See the file LICENSE for the license
11 */
12
18
19#ifndef LDNS_RRDEF_H
20#define LDNS_RRDEF_H
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
27#define LDNS_MAX_LABELLEN 63
29#define LDNS_MAX_DOMAINLEN 255
31#define LDNS_MAX_POINTERS 65535
33#define LDNS_RR_OVERHEAD 10
34
35#define LDNS_DNSSEC_KEYPROTO 3
36#define LDNS_KEY_ZONE_KEY 0x0100 /* set for ZSK&KSK, rfc 4034 */
37#define LDNS_KEY_SEP_KEY 0x0001 /* set for KSK, rfc 4034 */
38#define LDNS_KEY_REVOKE_KEY 0x0080 /* used to revoke KSK, rfc 5011 */
39
40/* The first fields are contiguous and can be referenced instantly */
41#define LDNS_RDATA_FIELD_DESCRIPTORS_COMMON 259
42
45
67
78
83{
171 LDNS_RR_TYPE_SSHFP = 44, /* RFC 4255 */
173 LDNS_RR_TYPE_IPSECKEY = 45, /* RFC 4025 */
175 LDNS_RR_TYPE_RRSIG = 46, /* RFC 4034 */
176 LDNS_RR_TYPE_NSEC = 47, /* RFC 4034 */
177 LDNS_RR_TYPE_DNSKEY = 48, /* RFC 4034 */
178
179 LDNS_RR_TYPE_DHCID = 49, /* RFC 4701 */
180 /* NSEC3 */
181 LDNS_RR_TYPE_NSEC3 = 50, /* RFC 5155 */
182 LDNS_RR_TYPE_NSEC3PARAM = 51, /* RFC 5155 */
184 LDNS_RR_TYPE_TLSA = 52, /* RFC 6698 */
185 LDNS_RR_TYPE_SMIMEA = 53, /* draft-ietf-dane-smime, TLSA-like but may
186 be extended */
187
188 LDNS_RR_TYPE_HIP = 55, /* RFC 5205 */
189
198 LDNS_RR_TYPE_OPENPGPKEY = 61, /* RFC 7929 */
199 LDNS_RR_TYPE_CSYNC = 62, /* RFC 7477 */
200
201 LDNS_RR_TYPE_SPF = 99, /* RFC 4408 */
202
207
208 LDNS_RR_TYPE_NID = 104, /* RFC 6742 */
209 LDNS_RR_TYPE_L32 = 105, /* RFC 6742 */
210 LDNS_RR_TYPE_L64 = 106, /* RFC 6742 */
211 LDNS_RR_TYPE_LP = 107, /* RFC 6742 */
212
216
217 LDNS_RR_TYPE_TKEY = 249, /* RFC 2930 */
227 LDNS_RR_TYPE_URI = 256, /* RFC 7553 */
228 LDNS_RR_TYPE_CAA = 257, /* RFC 6844 */
230
233 /* RFC 4431, 5074, DNSSEC Lookaside Validation */
235
236 /* type codes from nsec3 experimental phase
237 LDNS_RR_TYPE_NSEC3 = 65324,
238 LDNS_RR_TYPE_NSEC3PARAMS = 65325, */
242};
244
245/* RDATA */
246#define LDNS_MAX_RDFLEN 65535
247
248#define LDNS_RDF_SIZE_BYTE 1
249#define LDNS_RDF_SIZE_WORD 2
250#define LDNS_RDF_SIZE_DOUBLEWORD 4
251#define LDNS_RDF_SIZE_6BYTES 6
252#define LDNS_RDF_SIZE_8BYTES 8
253#define LDNS_RDF_SIZE_16BYTES 16
254
255#define LDNS_NSEC3_VARS_OPTOUT_MASK 0x01
256
257#define LDNS_APL_IP4 1
258#define LDNS_APL_IP6 2
259#define LDNS_APL_MASK 0x7f
260#define LDNS_APL_NEGATION 0x80
261
361
366{
367 LDNS_RSAMD5 = 1, /* RFC 4034,4035 */
374 LDNS_RSASHA256 = 8, /* RFC 5702 */
375 LDNS_RSASHA512 = 10, /* RFC 5702 */
376 LDNS_ECC_GOST = 12, /* RFC 5933 */
377 LDNS_ECDSAP256SHA256 = 13, /* RFC 6605 */
378 LDNS_ECDSAP384SHA384 = 14, /* RFC 6605 */
379 LDNS_ED25519 = 15, /* RFC 8080 */
380 LDNS_ED448 = 16, /* RFC 8080 */
384};
386
391{
392 LDNS_SHA1 = 1, /* RFC 4034 */
393 LDNS_SHA256 = 2, /* RFC 4509 */
394 LDNS_HASH_GOST = 3, /* RFC 5933 */
395 LDNS_SHA384 = 4 /* RFC 6605 */
396};
398
416
421{
422 LDNS_EDNS_LLQ = 1, /* http://files.dns-sd.org/draft-sekar-dns-llq.txt */
423 LDNS_EDNS_UL = 2, /* http://files.dns-sd.org/draft-sekar-dns-ul.txt */
424 LDNS_EDNS_NSID = 3, /* RFC5001 */
425 /* 4 draft-cheshire-edns0-owner-option */
426 LDNS_EDNS_DAU = 5, /* RFC6975 */
427 LDNS_EDNS_DHU = 6, /* RFC6975 */
428 LDNS_EDNS_N3U = 7, /* RFC6975 */
429 LDNS_EDNS_CLIENT_SUBNET = 8, /* RFC7871 */
430 LDNS_EDNS_KEEPALIVE = 11, /* draft-ietf-dnsop-edns-tcp-keepalive*/
431 LDNS_EDNS_PADDING = 12 /* RFC7830 */
432};
434
435#define LDNS_EDNS_MASK_DO_BIT 0x8000
436
438#define LDNS_TSIG_ERROR_NOERROR 0
439#define LDNS_TSIG_ERROR_BADSIG 16
440#define LDNS_TSIG_ERROR_BADKEY 17
441#define LDNS_TSIG_ERROR_BADTIME 18
442#define LDNS_TSIG_ERROR_BADMODE 19
443#define LDNS_TSIG_ERROR_BADNAME 20
444#define LDNS_TSIG_ERROR_BADALG 21
445
471
479
487
495
504
511
518
519#ifdef __cplusplus
520}
521#endif
522
523#endif /* LDNS_RRDEF_H */
sldns_enum_rr_compress
Definition rrdef.h:72
@ LDNS_RR_NO_COMPRESS
Definition rrdef.h:75
@ LDNS_RR_COMPRESS
Definition rrdef.h:74
sldns_enum_cert_algorithm
Definition rrdef.h:403
@ LDNS_CERT_SPKI
Definition rrdef.h:405
@ LDNS_CERT_URI
Definition rrdef.h:412
@ LDNS_CERT_ISPKI
Definition rrdef.h:408
@ LDNS_CERT_IPGP
Definition rrdef.h:409
@ LDNS_CERT_ACPKIX
Definition rrdef.h:410
@ LDNS_CERT_IACPKIX
Definition rrdef.h:411
@ LDNS_CERT_IPKIX
Definition rrdef.h:407
@ LDNS_CERT_OID
Definition rrdef.h:413
@ LDNS_CERT_PGP
Definition rrdef.h:406
@ LDNS_CERT_PKIX
Definition rrdef.h:404
sldns_enum_hash
Definition rrdef.h:391
@ LDNS_HASH_GOST
Definition rrdef.h:394
@ LDNS_SHA256
Definition rrdef.h:393
@ LDNS_SHA1
Definition rrdef.h:392
@ LDNS_SHA384
Definition rrdef.h:395
sldns_enum_rr_class
Definition rrdef.h:50
@ LDNS_RR_CLASS_NONE
Definition rrdef.h:58
@ LDNS_RR_CLASS_IN
Definition rrdef.h:52
@ LDNS_RR_CLASS_LAST
Definition rrdef.h:63
@ LDNS_RR_CLASS_CH
Definition rrdef.h:54
@ LDNS_RR_CLASS_COUNT
Definition rrdef.h:64
@ LDNS_RR_CLASS_HS
Definition rrdef.h:56
@ LDNS_RR_CLASS_ANY
Definition rrdef.h:60
@ LDNS_RR_CLASS_FIRST
Definition rrdef.h:62
size_t sldns_rr_descriptor_maximum(const sldns_rr_descriptor *descriptor)
enum sldns_enum_algorithm sldns_algorithm
Definition rrdef.h:385
enum sldns_enum_hash sldns_hash
Definition rrdef.h:397
sldns_rr_type sldns_get_rr_type_by_name(const char *name)
sldns_enum_rr_type
Definition rrdef.h:83
@ LDNS_RR_TYPE_MF
Definition rrdef.h:91
@ LDNS_RR_TYPE_CERT
Definition rrdef.h:157
@ LDNS_RR_TYPE_RP
Definition rrdef.h:117
@ LDNS_RR_TYPE_KX
Definition rrdef.h:155
@ LDNS_RR_TYPE_SPF
Definition rrdef.h:201
@ LDNS_RR_TYPE_OPT
Definition rrdef.h:165
@ LDNS_RR_TYPE_RRSIG
Definition rrdef.h:175
@ LDNS_RR_TYPE_SINK
Definition rrdef.h:163
@ LDNS_RR_TYPE_A
Definition rrdef.h:85
@ LDNS_RR_TYPE_HIP
Definition rrdef.h:188
@ LDNS_RR_TYPE_LP
Definition rrdef.h:211
@ LDNS_RR_TYPE_ISDN
Definition rrdef.h:123
@ LDNS_RR_TYPE_IXFR
Definition rrdef.h:219
@ LDNS_RR_TYPE_MINFO
Definition rrdef.h:111
@ LDNS_RR_TYPE_L32
Definition rrdef.h:209
@ LDNS_RR_TYPE_GPOS
Definition rrdef.h:137
@ LDNS_RR_TYPE_TKEY
Definition rrdef.h:217
@ LDNS_RR_TYPE_DNSKEY
Definition rrdef.h:177
@ LDNS_RR_TYPE_FIRST
Definition rrdef.h:239
@ LDNS_RR_TYPE_SOA
Definition rrdef.h:95
@ LDNS_RR_TYPE_UINFO
Definition rrdef.h:203
@ LDNS_RR_TYPE_SSHFP
Definition rrdef.h:171
@ LDNS_RR_TYPE_TSIG
Definition rrdef.h:218
@ LDNS_RR_TYPE_X25
Definition rrdef.h:121
@ LDNS_RR_TYPE_WKS
Definition rrdef.h:105
@ LDNS_RR_TYPE_TLSA
Definition rrdef.h:184
@ LDNS_RR_TYPE_PX
Definition rrdef.h:135
@ LDNS_RR_TYPE_RT
Definition rrdef.h:125
@ LDNS_RR_TYPE_NSEC
Definition rrdef.h:176
@ LDNS_RR_TYPE_DNAME
Definition rrdef.h:161
@ LDNS_RR_TYPE_OPENPGPKEY
Definition rrdef.h:198
@ LDNS_RR_TYPE_COUNT
Definition rrdef.h:241
@ LDNS_RR_TYPE_DS
Definition rrdef.h:169
@ LDNS_RR_TYPE_KEY
Definition rrdef.h:133
@ LDNS_RR_TYPE_NULL
Definition rrdef.h:103
@ LDNS_RR_TYPE_NSEC3PARAM
Definition rrdef.h:182
@ LDNS_RR_TYPE_RKEY
Definition rrdef.h:193
@ LDNS_RR_TYPE_LAST
Definition rrdef.h:240
@ LDNS_RR_TYPE_NXT
Definition rrdef.h:143
@ LDNS_RR_TYPE_DLV
Definition rrdef.h:234
@ LDNS_RR_TYPE_SIG
Definition rrdef.h:131
@ LDNS_RR_TYPE_CNAME
Definition rrdef.h:93
@ LDNS_RR_TYPE_NID
Definition rrdef.h:208
@ LDNS_RR_TYPE_NSEC3
Definition rrdef.h:181
@ LDNS_RR_TYPE_UID
Definition rrdef.h:204
@ LDNS_RR_TYPE_MAILA
Definition rrdef.h:224
@ LDNS_RR_TYPE_DHCID
Definition rrdef.h:179
@ LDNS_RR_TYPE_CDNSKEY
Definition rrdef.h:197
@ LDNS_RR_TYPE_NSEC3PARAMS
Definition rrdef.h:183
@ LDNS_RR_TYPE_TA
Definition rrdef.h:232
@ LDNS_RR_TYPE_LOC
Definition rrdef.h:141
@ LDNS_RR_TYPE_TXT
Definition rrdef.h:115
@ LDNS_RR_TYPE_PTR
Definition rrdef.h:107
@ LDNS_RR_TYPE_AAAA
Definition rrdef.h:139
@ LDNS_RR_TYPE_EUI64
Definition rrdef.h:215
@ LDNS_RR_TYPE_MD
Definition rrdef.h:89
@ LDNS_RR_TYPE_A6
Definition rrdef.h:159
@ LDNS_RR_TYPE_NS
Definition rrdef.h:87
@ LDNS_RR_TYPE_MR
Definition rrdef.h:101
@ LDNS_RR_TYPE_AXFR
Definition rrdef.h:220
@ LDNS_RR_TYPE_ANY
Definition rrdef.h:226
@ LDNS_RR_TYPE_CAA
Definition rrdef.h:228
@ LDNS_RR_TYPE_EUI48
Definition rrdef.h:214
@ LDNS_RR_TYPE_MB
Definition rrdef.h:97
@ LDNS_RR_TYPE_NINFO
Definition rrdef.h:191
@ LDNS_RR_TYPE_TALINK
Definition rrdef.h:195
@ LDNS_RR_TYPE_ATMA
Definition rrdef.h:151
@ LDNS_RR_TYPE_HINFO
Definition rrdef.h:109
@ LDNS_RR_TYPE_CSYNC
Definition rrdef.h:199
@ LDNS_RR_TYPE_EID
Definition rrdef.h:145
@ LDNS_RR_TYPE_AFSDB
Definition rrdef.h:119
@ LDNS_RR_TYPE_L64
Definition rrdef.h:210
@ LDNS_RR_TYPE_NSAP
Definition rrdef.h:127
@ LDNS_RR_TYPE_URI
Definition rrdef.h:227
@ LDNS_RR_TYPE_AVC
Definition rrdef.h:229
@ LDNS_RR_TYPE_CDS
Definition rrdef.h:196
@ LDNS_RR_TYPE_NAPTR
Definition rrdef.h:153
@ LDNS_RR_TYPE_SMIMEA
Definition rrdef.h:185
@ LDNS_RR_TYPE_SRV
Definition rrdef.h:149
@ LDNS_RR_TYPE_IPSECKEY
Definition rrdef.h:173
@ LDNS_RR_TYPE_MAILB
Definition rrdef.h:222
@ LDNS_RR_TYPE_APL
Definition rrdef.h:167
@ LDNS_RR_TYPE_MX
Definition rrdef.h:113
@ LDNS_RR_TYPE_NIMLOC
Definition rrdef.h:147
@ LDNS_RR_TYPE_GID
Definition rrdef.h:205
@ LDNS_RR_TYPE_MG
Definition rrdef.h:99
@ LDNS_RR_TYPE_UNSPEC
Definition rrdef.h:206
@ LDNS_RR_TYPE_NSAP_PTR
Definition rrdef.h:129
sldns_enum_edns_option
Definition rrdef.h:421
@ LDNS_EDNS_NSID
Definition rrdef.h:424
@ LDNS_EDNS_KEEPALIVE
Definition rrdef.h:430
@ LDNS_EDNS_DHU
Definition rrdef.h:427
@ LDNS_EDNS_PADDING
Definition rrdef.h:431
@ LDNS_EDNS_DAU
Definition rrdef.h:426
@ LDNS_EDNS_N3U
Definition rrdef.h:428
@ LDNS_EDNS_UL
Definition rrdef.h:423
@ LDNS_EDNS_CLIENT_SUBNET
Definition rrdef.h:429
@ LDNS_EDNS_LLQ
Definition rrdef.h:422
sldns_rdf_type sldns_rr_descriptor_field_type(const sldns_rr_descriptor *descriptor, size_t field)
size_t sldns_rr_descriptor_minimum(const sldns_rr_descriptor *descriptor)
struct sldns_struct_lookup_table * sldns_rr_classes
enum sldns_enum_edns_option sldns_edns_option
Definition rrdef.h:433
enum sldns_enum_cert_algorithm sldns_cert_algorithm
Definition rrdef.h:415
enum sldns_enum_rr_class sldns_rr_class
Definition rrdef.h:66
sldns_enum_rdf_type
Definition rrdef.h:266
@ LDNS_RDF_TYPE_INT32
Definition rrdef.h:276
@ LDNS_RDF_TYPE_TAG
Definition rrdef.h:346
@ LDNS_RDF_TYPE_NSAP
Definition rrdef.h:323
@ LDNS_RDF_TYPE_HIP
Definition rrdef.h:312
@ LDNS_RDF_TYPE_B32_EXT
Definition rrdef.h:286
@ LDNS_RDF_TYPE_NSEC3_NEXT_OWNER
Definition rrdef.h:331
@ LDNS_RDF_TYPE_CERT_ALG
Definition rrdef.h:298
@ LDNS_RDF_TYPE_EUI48
Definition rrdef.h:339
@ LDNS_RDF_TYPE_SERVICE
Definition rrdef.h:317
@ LDNS_RDF_TYPE_EUI64
Definition rrdef.h:341
@ LDNS_RDF_TYPE_PERIOD
Definition rrdef.h:306
@ LDNS_RDF_TYPE_B64
Definition rrdef.h:288
@ LDNS_RDF_TYPE_TSIGERROR
Definition rrdef.h:355
@ LDNS_RDF_TYPE_AAAA
Definition rrdef.h:280
@ LDNS_RDF_TYPE_UNKNOWN
Definition rrdef.h:302
@ LDNS_RDF_TYPE_WKS
Definition rrdef.h:321
@ LDNS_RDF_TYPE_DNAME
Definition rrdef.h:270
@ LDNS_RDF_TYPE_TIME
Definition rrdef.h:304
@ LDNS_RDF_TYPE_BITMAP
Definition rrdef.h:358
@ LDNS_RDF_TYPE_NSEC
Definition rrdef.h:292
@ LDNS_RDF_TYPE_NSEC3_SALT
Definition rrdef.h:329
@ LDNS_RDF_TYPE_APL
Definition rrdef.h:284
@ LDNS_RDF_TYPE_A
Definition rrdef.h:278
@ LDNS_RDF_TYPE_LONG_STR
Definition rrdef.h:352
@ LDNS_RDF_TYPE_LOC
Definition rrdef.h:319
@ LDNS_RDF_TYPE_INT16_DATA
Definition rrdef.h:315
@ LDNS_RDF_TYPE_ILNP64
Definition rrdef.h:336
@ LDNS_RDF_TYPE_ATMA
Definition rrdef.h:325
@ LDNS_RDF_TYPE_HEX
Definition rrdef.h:290
@ LDNS_RDF_TYPE_NONE
Definition rrdef.h:268
@ LDNS_RDF_TYPE_CLASS
Definition rrdef.h:296
@ LDNS_RDF_TYPE_INT8
Definition rrdef.h:272
@ LDNS_RDF_TYPE_IPSECKEY
Definition rrdef.h:327
@ LDNS_RDF_TYPE_STR
Definition rrdef.h:282
@ LDNS_RDF_TYPE_INT16
Definition rrdef.h:274
@ LDNS_RDF_TYPE_ALG
Definition rrdef.h:300
@ LDNS_RDF_TYPE_TSIGTIME
Definition rrdef.h:308
@ LDNS_RDF_TYPE_TYPE
Definition rrdef.h:294
enum sldns_enum_rr_type sldns_rr_type
Definition rrdef.h:243
struct sldns_struct_rr_descriptor sldns_rr_descriptor
Definition rrdef.h:470
sldns_enum_algorithm
Definition rrdef.h:366
@ LDNS_ED448
Definition rrdef.h:380
@ LDNS_RSAMD5
Definition rrdef.h:367
@ LDNS_ECDSAP384SHA384
Definition rrdef.h:378
@ LDNS_RSASHA1_NSEC3
Definition rrdef.h:373
@ LDNS_DSA_NSEC3
Definition rrdef.h:372
@ LDNS_DSA
Definition rrdef.h:369
@ LDNS_ECDSAP256SHA256
Definition rrdef.h:377
@ LDNS_ECC_GOST
Definition rrdef.h:376
@ LDNS_PRIVATEOID
Definition rrdef.h:383
@ LDNS_PRIVATEDNS
Definition rrdef.h:382
@ LDNS_DH
Definition rrdef.h:368
@ LDNS_INDIRECT
Definition rrdef.h:381
@ LDNS_ECC
Definition rrdef.h:370
@ LDNS_RSASHA1
Definition rrdef.h:371
@ LDNS_RSASHA512
Definition rrdef.h:375
@ LDNS_RSASHA256
Definition rrdef.h:374
@ LDNS_ED25519
Definition rrdef.h:379
const sldns_rr_descriptor * sldns_rr_descript(uint16_t type)
enum sldns_enum_rr_compress sldns_rr_compress
Definition rrdef.h:77
sldns_rr_class sldns_get_rr_class_by_name(const char *name)
enum sldns_enum_rdf_type sldns_rdf_type
Definition rrdef.h:360
unsigned short uint16_t
Definition stdint.h:125
unsigned char uint8_t
Definition stdint.h:124
const sldns_rdf_type * _wireformat
Definition rrdef.h:462
sldns_rr_type _type
Definition rrdef.h:454
sldns_rr_compress _compress
Definition rrdef.h:466
sldns_rdf_type _variable
Definition rrdef.h:464