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
64int dn_expand
__P((
const u_char *,
const u_char *,
const u_char *,
67#define dn_skipname __dn_skipname
71#ifdef HAVE_SYS_TYPES_H
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
133#define NS_RRFIXEDSZ 10
138#define NS_IN6ADDRSZ 16
139#define NS_CMPRSFLGS 0xc0
140#define NS_DEFAULTPORT 53
146typedef enum __ns_sect {
162typedef 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)
186typedef 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)
208typedef enum __ns_flag {
225typedef enum __ns_opcode {
238typedef enum __ns_rcode {
261typedef 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
300typedef 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 || \
369typedef enum __ns_class {
383typedef enum __ns_key_types {
390typedef 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
463#define NS_SIG_LABELS 3
465#define NS_SIG_EXPIR 8
466#define NS_SIG_SIGNED 12
467#define NS_SIG_FOOT 16
468#define NS_SIG_SIGNER 18
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 **));
593 const u_char *,
int, u_char *,
int *, time_t));
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_name_uncompress
#define ns_verify_tcp_init
unsigned char sig[NS_PACKETSZ]