57 #ifndef _ARPA_NAMESER_H_
58 #define _ARPA_NAMESER_H_
68 #define __NAMESER 19991006
73 #define NS_PACKETSZ 512
74 #define NS_MAXDNAME 1025
75 #define NS_MAXCDNAME 255
76 #define NS_MAXLABEL 63
77 #define NS_HFIXEDSZ 12
79 #define NS_RRFIXEDSZ 10
84 #define NS_IN6ADDRSZ 16
85 #define NS_CMPRSFLGS 0xc0
86 #define NS_DEFAULTPORT 53
122 #define ns_msg_getflag(handle, flag) ( \
123 ((handle)._flags & _ns_flagdata[flag].mask) \
124 >> _ns_flagdata[flag].shift \
126 #define ns_msg_id(handle) ((handle)._id + 0)
127 #define ns_msg_base(handle) ((handle)._msg + 0)
128 #define ns_msg_end(handle) ((handle)._eom + 0)
129 #define ns_msg_size(handle) ((handle)._eom - (handle)._msg)
130 #define ns_msg_count(handle, section) ((handle)._counts[section] + 0)
145 #define ns_rr_name(rr) (((rr).name[0] != '\0') ? (rr).name : ".")
146 #define ns_rr_type(rr) ((ns_type)((rr).type + 0))
147 #define ns_rr_class(rr) ((ns_class)((rr).rr_class + 0))
148 #define ns_rr_ttl(rr) ((rr).ttl + 0)
149 #define ns_rr_rdlen(rr) ((rr).rdlength + 0)
150 #define ns_rr_rdata(rr) ((rr).rdata + 0)
214 #define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT"
273 #define ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any || \
274 (t) == ns_t_mailb || (t) == ns_t_maila)
276 #define ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt)
278 #define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t))
279 #define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr)
280 #define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr || \
316 #define NS_KEY_TYPEMASK 0xC000
317 #define NS_KEY_TYPE_AUTH_CONF 0x0000
318 #define NS_KEY_TYPE_CONF_ONLY 0x8000
319 #define NS_KEY_TYPE_AUTH_ONLY 0x4000
320 #define NS_KEY_TYPE_NO_KEY 0xC000
322 #define NS_KEY_NO_AUTH 0x8000
323 #define NS_KEY_NO_CONF 0x4000
324 #define NS_KEY_RESERVED2 0x2000
325 #define NS_KEY_EXTENDED_FLAGS 0x1000
326 #define NS_KEY_RESERVED4 0x0800
327 #define NS_KEY_RESERVED5 0x0400
328 #define NS_KEY_NAME_TYPE 0x0300
329 #define NS_KEY_NAME_USER 0x0000
330 #define NS_KEY_NAME_ENTITY 0x0200
331 #define NS_KEY_NAME_ZONE 0x0100
332 #define NS_KEY_NAME_RESERVED 0x0300
333 #define NS_KEY_RESERVED8 0x0080
334 #define NS_KEY_RESERVED9 0x0040
335 #define NS_KEY_RESERVED10 0x0020
336 #define NS_KEY_RESERVED11 0x0010
337 #define NS_KEY_SIGNATORYMASK 0x000F
338 #define NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED2 | \
343 NS_KEY_RESERVED10 | \
345 #define NS_KEY_RESERVED_BITMASK2 0xFFFF
348 #define NS_ALG_MD5RSA 1
351 #define NS_ALG_DSS NS_ALG_DSA
352 #define NS_ALG_EXPIRE_ONLY 253
353 #define NS_ALG_PRIVATE_OID 254
357 #define NS_KEY_PROT_TLS 1
358 #define NS_KEY_PROT_EMAIL 2
359 #define NS_KEY_PROT_DNSSEC 3
360 #define NS_KEY_PROT_IPSEC 4
361 #define NS_KEY_PROT_ANY 255
364 #define NS_MD5RSA_MIN_BITS 512
365 #define NS_MD5RSA_MAX_BITS 2552
367 #define NS_MD5RSA_MAX_BYTES ((NS_MD5RSA_MAX_BITS+7/8)*2+3)
369 #define NS_MD5RSA_MAX_BASE64 (((NS_MD5RSA_MAX_BYTES+2)/3)*4)
370 #define NS_MD5RSA_MIN_SIZE ((NS_MD5RSA_MIN_BITS+7)/8)
371 #define NS_MD5RSA_MAX_SIZE ((NS_MD5RSA_MAX_BITS+7)/8)
373 #define NS_DSA_SIG_SIZE 41
374 #define NS_DSA_MIN_SIZE 213
375 #define NS_DSA_MAX_BYTES 405
378 #define NS_SIG_TYPE 0
380 #define NS_SIG_LABELS 3
381 #define NS_SIG_OTTL 4
382 #define NS_SIG_EXPIR 8
383 #define NS_SIG_SIGNED 12
384 #define NS_SIG_FOOT 16
385 #define NS_SIG_SIGNER 18
388 #define NS_NXT_BITS 8
389 #define NS_NXT_BIT_SET( n,p) (p[(n)/NS_NXT_BITS] |= (0x80>>((n)%NS_NXT_BITS)))
390 #define NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS)))
391 #define NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] & (0x80>>((n)%NS_NXT_BITS)))
392 #define NS_NXT_MAX 127
397 #define NS_GET16(s, cp) do { \
398 register u_int8_t *t_cp = (u_int8_t *)(cp); \
399 (s) = ((u_int16_t)t_cp[0] << 8) \
400 | ((u_int16_t)t_cp[1]) \
402 (cp) += NS_INT16SZ; \
405 #define NS_GET32(l, cp) do { \
406 register u_int8_t *t_cp = (u_int8_t *)(cp); \
407 (l) = ((u_int32_t)t_cp[0] << 24) \
408 | ((u_int32_t)t_cp[1] << 16) \
409 | ((u_int32_t)t_cp[2] << 8) \
410 | ((u_int32_t)t_cp[3]) \
412 (cp) += NS_INT32SZ; \
415 #define NS_PUT16(s, cp) do { \
416 register u_int16_t t_s = (u_int16_t)(s); \
417 register u_int8_t *t_cp = (u_int8_t *)(cp); \
418 *t_cp++ = t_s >> 8; \
420 (cp) += NS_INT16SZ; \
423 #define NS_PUT32(l, cp) do { \
424 register u_int32_t t_l = (u_int32_t)(l); \
425 register u_int8_t *t_cp = (u_int8_t *)(cp); \
426 *t_cp++ = t_l >> 24; \
427 *t_cp++ = t_l >> 16; \
428 *t_cp++ = t_l >> 8; \
430 (cp) += NS_INT32SZ; \
enum __ns_key_types ns_key_types
u_int16_t _counts[ns_s_max]
enum __ns_opcode ns_opcode
enum __ns_cert_types ns_cert_types
const u_int8_t * _sections[ns_s_max]
enum __ns_update_operation ns_update_operation