55 #ifndef REPLACE_ARPA_NAMESER_H_
56 #define REPLACE_ARPA_NAMESER_H_
62 #if defined( HAVE_ARPA_NAMESER_H ) && defined( HAVE_NS_TYPE )
63 #define dn_expand __dn_expand
64 int dn_expand
__P((
const u_char *,
const u_char *,
const u_char *,
67 #define dn_skipname __dn_skipname
70 #include <sys/param.h>
71 #ifdef HAVE_SYS_TYPES_H
72 #include <sys/types.h>
75 #ifdef HAVE_INTTYPES_H
87 #ifndef HAVE_U_INT16_T
95 #ifndef HAVE_U_INT32_T
105 #if (!defined(BSD)) || (BSD < 199306)
106 # include <sys/bitypes.h>
108 # include <sys/types.h>
110 #include <sys/cdefs.h>
121 #define __NAMESER 19991006
126 #define NS_PACKETSZ 512
127 #define NS_MAXDNAME 1025
128 #define NS_MAXMSG 65535
129 #define NS_MAXCDNAME 255
130 #define NS_MAXLABEL 63
131 #define NS_HFIXEDSZ 12
132 #define NS_QFIXEDSZ 4
133 #define NS_RRFIXEDSZ 10
137 #define NS_INADDRSZ 4
138 #define NS_IN6ADDRSZ 16
139 #define NS_CMPRSFLGS 0xc0
140 #define NS_DEFAULTPORT 53
146 typedef enum __ns_sect {
162 typedef struct __ns_msg {
177 #define ns_msg_id(handle) ((handle)._id + 0)
178 #define ns_msg_base(handle) ((handle)._msg + 0)
179 #define ns_msg_end(handle) ((handle)._eom + 0)
180 #define ns_msg_size(handle) ((handle)._eom - (handle)._msg)
181 #define ns_msg_count(handle, section) ((handle)._counts[section] + 0)
186 typedef struct __ns_rr {
196 #define ns_rr_name(rr) (((rr).name[0] != '\0') ? (rr).name : ".")
197 #define ns_rr_type(rr) ((ns_type)((rr).type + 0))
198 #define ns_rr_class(rr) ((ns_class)((rr).rr_class + 0))
199 #define ns_rr_ttl(rr) ((rr).ttl + 0)
200 #define ns_rr_rdlen(rr) ((rr).rdlength + 0)
201 #define ns_rr_rdata(rr) ((rr).rdata + 0)
208 typedef enum __ns_flag {
225 typedef enum __ns_opcode {
238 typedef enum __ns_rcode {
261 typedef enum __ns_update_operation {
289 #define NS_TSIG_FUDGE 300
290 #define NS_TSIG_TCP_COUNT 100
291 #define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT"
293 #define NS_TSIG_ERROR_NO_TSIG -10
294 #define NS_TSIG_ERROR_NO_SPACE -11
295 #define NS_TSIG_ERROR_FORMERR -12
300 typedef enum __ns_type {
356 #define ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any || \
357 (t) == ns_t_mailb || (t) == ns_t_maila)
359 #define ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt)
361 #define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t))
362 #define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr)
363 #define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr || \
369 typedef enum __ns_class {
383 typedef enum __ns_key_types {
390 typedef enum __ns_cert_types {
399 #define NS_KEY_TYPEMASK 0xC000
400 #define NS_KEY_TYPE_AUTH_CONF 0x0000
401 #define NS_KEY_TYPE_CONF_ONLY 0x8000
402 #define NS_KEY_TYPE_AUTH_ONLY 0x4000
403 #define NS_KEY_TYPE_NO_KEY 0xC000
405 #define NS_KEY_NO_AUTH 0x8000
406 #define NS_KEY_NO_CONF 0x4000
407 #define NS_KEY_RESERVED2 0x2000
408 #define NS_KEY_EXTENDED_FLAGS 0x1000
409 #define NS_KEY_RESERVED4 0x0800
410 #define NS_KEY_RESERVED5 0x0400
411 #define NS_KEY_NAME_TYPE 0x0300
412 #define NS_KEY_NAME_USER 0x0000
413 #define NS_KEY_NAME_ENTITY 0x0200
414 #define NS_KEY_NAME_ZONE 0x0100
415 #define NS_KEY_NAME_RESERVED 0x0300
416 #define NS_KEY_RESERVED8 0x0080
417 #define NS_KEY_RESERVED9 0x0040
418 #define NS_KEY_RESERVED10 0x0020
419 #define NS_KEY_RESERVED11 0x0010
420 #define NS_KEY_SIGNATORYMASK 0x000F
421 #define NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED2 | \
426 NS_KEY_RESERVED10 | \
428 #define NS_KEY_RESERVED_BITMASK2 0xFFFF
431 #define NS_ALG_MD5RSA 1
434 #define NS_ALG_DSS NS_ALG_DSA
435 #define NS_ALG_EXPIRE_ONLY 253
436 #define NS_ALG_PRIVATE_OID 254
440 #define NS_KEY_PROT_TLS 1
441 #define NS_KEY_PROT_EMAIL 2
442 #define NS_KEY_PROT_DNSSEC 3
443 #define NS_KEY_PROT_IPSEC 4
444 #define NS_KEY_PROT_ANY 255
447 #define NS_MD5RSA_MIN_BITS 512
448 #define NS_MD5RSA_MAX_BITS 4096
450 #define NS_MD5RSA_MAX_BYTES ((NS_MD5RSA_MAX_BITS+7/8)*2+3)
452 #define NS_MD5RSA_MAX_BASE64 (((NS_MD5RSA_MAX_BYTES+2)/3)*4)
453 #define NS_MD5RSA_MIN_SIZE ((NS_MD5RSA_MIN_BITS+7)/8)
454 #define NS_MD5RSA_MAX_SIZE ((NS_MD5RSA_MAX_BITS+7)/8)
456 #define NS_DSA_SIG_SIZE 41
457 #define NS_DSA_MIN_SIZE 213
458 #define NS_DSA_MAX_BYTES 405
461 #define NS_SIG_TYPE 0
463 #define NS_SIG_LABELS 3
464 #define NS_SIG_OTTL 4
465 #define NS_SIG_EXPIR 8
466 #define NS_SIG_SIGNED 12
467 #define NS_SIG_FOOT 16
468 #define NS_SIG_SIGNER 18
471 #define NS_NXT_BITS 8
472 #define NS_NXT_BIT_SET( n,p) (p[(n)/NS_NXT_BITS] |= (0x80>>((n)%NS_NXT_BITS)))
473 #define NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS)))
474 #define NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] & (0x80>>((n)%NS_NXT_BITS)))
475 #define NS_NXT_MAX 127
480 #define NS_OPT_DNSSEC_OK 0x8000U
485 #define NS_GET16(s, cp) do { \
486 register const u_char *t_cp = (const u_char *)(cp); \
487 (s) = ((u_int16_t)t_cp[0] << 8) \
488 | ((u_int16_t)t_cp[1]) \
490 (cp) += NS_INT16SZ; \
493 #define NS_GET32(l, cp) do { \
494 register const u_char *t_cp = (const u_char *)(cp); \
495 (l) = ((u_int32_t)t_cp[0] << 24) \
496 | ((u_int32_t)t_cp[1] << 16) \
497 | ((u_int32_t)t_cp[2] << 8) \
498 | ((u_int32_t)t_cp[3]) \
500 (cp) += NS_INT32SZ; \
503 #define NS_PUT16(s, cp) do { \
504 register u_int16_t t_s = (u_int16_t)(s); \
505 register u_char *t_cp = (u_char *)(cp); \
506 *t_cp++ = t_s >> 8; \
508 (cp) += NS_INT16SZ; \
511 #define NS_PUT32(l, cp) do { \
512 register u_int32_t t_l = (u_int32_t)(l); \
513 register u_char *t_cp = (u_char *)(cp); \
514 *t_cp++ = t_l >> 24; \
515 *t_cp++ = t_l >> 16; \
516 *t_cp++ = t_l >> 8; \
518 (cp) += NS_INT32SZ; \
524 #define ns_msg_getflag __ns_msg_getflag
525 #define ns_get16 __ns_get16
526 #define ns_get32 __ns_get32
527 #define ns_put16 __ns_put16
528 #define ns_put32 __ns_put32
529 #define ns_initparse __ns_initparse
530 #define ns_skiprr __ns_skiprr
531 #define ns_parserr __ns_parserr
532 #define ns_sprintrr __ns_sprintrr
533 #define ns_sprintrrf __ns_sprintrrf
534 #define ns_format_ttl __ns_format_ttl
535 #define ns_parse_ttl __ns_parse_ttl
536 #define ns_datetosecs __ns_datetosecs
537 #define ns_name_ntol __ns_name_ntol
538 #define ns_name_ntop __ns_name_ntop
539 #define ns_name_pton __ns_name_pton
540 #define ns_name_unpack __ns_name_unpack
541 #define ns_name_pack __ns_name_pack
542 #define ns_name_compress __ns_name_compress
543 #define ns_name_uncompress __ns_name_uncompress
544 #define ns_name_skip __ns_name_skip
545 #define ns_name_rollback __ns_name_rollback
546 #define ns_sign __ns_sign
547 #define ns_sign2 __ns_sign2
548 #define ns_sign_tcp __ns_sign_tcp
549 #define ns_sign_tcp2 __ns_sign_tcp2
550 #define ns_sign_tcp_init __ns_sign_tcp_init
551 #define ns_find_tsig __ns_find_tsig
552 #define ns_verify __ns_verify
553 #define ns_verify_tcp __ns_verify_tcp
554 #define ns_verify_tcp_init __ns_verify_tcp_init
555 #define ns_samedomain __ns_samedomain
556 #define ns_subdomain __ns_subdomain
557 #define ns_makecanon __ns_makecanon
558 #define ns_samename __ns_samename
570 const char *,
const char *,
char *,
size_t));
573 size_t,
const char *,
const char *,
582 const u_char *, u_char *,
size_t));
584 const u_char **,
const u_char **));
586 const u_char *,
char *,
size_t));
588 const u_char **,
const u_char **));
592 int ns_sign __P((u_char *,
int *,
int,
int,
void *,
593 const u_char *,
int, u_char *,
int *, time_t));
594 int ns_sign2 __P((u_char *,
int *,
int,
int,
void *,
595 const u_char *,
int, u_char *,
int *, time_t,
596 u_char **, u_char **));
601 u_char **, u_char **));
606 const u_char *,
int, u_char *,
int *,
#define ns_verify_tcp_init
#define ns_name_uncompress
unsigned char sig[NS_PACKETSZ]