mirror of https://github.com/getdnsapi/getdns.git
smime verification of root-anchors.xml in ~/.getdns
This commit is contained in:
parent
f4fe2cb6c5
commit
edecca8b63
|
@ -155,6 +155,7 @@ AC_ARG_ENABLE(debug-stub, AC_HELP_STRING([--enable-debug-stub], [Enable stub deb
|
||||||
AC_ARG_ENABLE(debug-daemon, AC_HELP_STRING([--enable-debug-daemon], [Enable daemon debugging messages]))
|
AC_ARG_ENABLE(debug-daemon, AC_HELP_STRING([--enable-debug-daemon], [Enable daemon debugging messages]))
|
||||||
AC_ARG_ENABLE(debug-sec, AC_HELP_STRING([--enable-debug-sec], [Enable dnssec debugging messages]))
|
AC_ARG_ENABLE(debug-sec, AC_HELP_STRING([--enable-debug-sec], [Enable dnssec debugging messages]))
|
||||||
AC_ARG_ENABLE(debug-server, AC_HELP_STRING([--enable-debug-server], [Enable server debugging messages]))
|
AC_ARG_ENABLE(debug-server, AC_HELP_STRING([--enable-debug-server], [Enable server debugging messages]))
|
||||||
|
AC_ARG_ENABLE(debug-anchor, AC_HELP_STRING([--enable-debug-anchor], [Enable anchor debugging messages]))
|
||||||
AC_ARG_ENABLE(all-debugging, AC_HELP_STRING([--enable-all-debugging], [Enable scheduling, stub and dnssec debugging]))
|
AC_ARG_ENABLE(all-debugging, AC_HELP_STRING([--enable-all-debugging], [Enable scheduling, stub and dnssec debugging]))
|
||||||
case "$enable_all_debugging" in
|
case "$enable_all_debugging" in
|
||||||
yes)
|
yes)
|
||||||
|
@ -163,6 +164,7 @@ case "$enable_all_debugging" in
|
||||||
enable_debug_daemon=yes
|
enable_debug_daemon=yes
|
||||||
enable_debug_sec=yes
|
enable_debug_sec=yes
|
||||||
enable_debug_server=yes
|
enable_debug_server=yes
|
||||||
|
enable_debug_anchor=yes
|
||||||
;;
|
;;
|
||||||
no|*)
|
no|*)
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -149,24 +149,16 @@ depend:
|
||||||
|
|
||||||
# Dependencies for the examples
|
# Dependencies for the examples
|
||||||
example-all-functions.lo example-all-functions.o: $(srcdir)/example-all-functions.c $(srcdir)/getdns_libevent.h \
|
example-all-functions.lo example-all-functions.o: $(srcdir)/example-all-functions.c $(srcdir)/getdns_libevent.h \
|
||||||
../../src/config.h \
|
../../src/config.h ../../src/getdns/getdns.h \
|
||||||
../../src/getdns/getdns.h \
|
$(srcdir)/../../src/getdns/getdns_ext_libevent.h ../../src/getdns/getdns_extra.h
|
||||||
$(srcdir)/../../src/getdns/getdns_ext_libevent.h \
|
example-reverse.lo example-reverse.o: $(srcdir)/example-reverse.c $(srcdir)/getdns_libevent.h ../../src/config.h \
|
||||||
../../src/getdns/getdns_extra.h
|
../../src/getdns/getdns.h $(srcdir)/../../src/getdns/getdns_ext_libevent.h \
|
||||||
example-reverse.lo example-reverse.o: $(srcdir)/example-reverse.c $(srcdir)/getdns_libevent.h \
|
|
||||||
../../src/config.h \
|
|
||||||
../../src/getdns/getdns.h \
|
|
||||||
$(srcdir)/../../src/getdns/getdns_ext_libevent.h \
|
|
||||||
../../src/getdns/getdns_extra.h
|
../../src/getdns/getdns_extra.h
|
||||||
example-simple-answers.lo example-simple-answers.o: $(srcdir)/example-simple-answers.c $(srcdir)/getdns_libevent.h \
|
example-simple-answers.lo example-simple-answers.o: $(srcdir)/example-simple-answers.c $(srcdir)/getdns_libevent.h \
|
||||||
../../src/config.h \
|
../../src/config.h ../../src/getdns/getdns.h \
|
||||||
../../src/getdns/getdns.h \
|
$(srcdir)/../../src/getdns/getdns_ext_libevent.h ../../src/getdns/getdns_extra.h
|
||||||
$(srcdir)/../../src/getdns/getdns_ext_libevent.h \
|
|
||||||
../../src/getdns/getdns_extra.h
|
|
||||||
example-synchronous.lo example-synchronous.o: $(srcdir)/example-synchronous.c $(srcdir)/getdns_core_only.h \
|
example-synchronous.lo example-synchronous.o: $(srcdir)/example-synchronous.c $(srcdir)/getdns_core_only.h \
|
||||||
../../src/getdns/getdns.h
|
../../src/getdns/getdns.h
|
||||||
example-tree.lo example-tree.o: $(srcdir)/example-tree.c $(srcdir)/getdns_libevent.h \
|
example-tree.lo example-tree.o: $(srcdir)/example-tree.c $(srcdir)/getdns_libevent.h ../../src/config.h \
|
||||||
../../src/config.h \
|
../../src/getdns/getdns.h $(srcdir)/../../src/getdns/getdns_ext_libevent.h \
|
||||||
../../src/getdns/getdns.h \
|
|
||||||
$(srcdir)/../../src/getdns/getdns_ext_libevent.h \
|
|
||||||
../../src/getdns/getdns_extra.h
|
../../src/getdns/getdns_extra.h
|
||||||
|
|
427
src/Makefile.in
427
src/Makefile.in
|
@ -67,7 +67,7 @@ C99COMPATFLAGS=@C99COMPATFLAGS@
|
||||||
|
|
||||||
DEFAULT_EVENTLOOP_OBJ=@DEFAULT_EVENTLOOP@.lo
|
DEFAULT_EVENTLOOP_OBJ=@DEFAULT_EVENTLOOP@.lo
|
||||||
|
|
||||||
GETDNS_OBJ=const-info.lo convert.lo dict.lo dnssec.lo general.lo \
|
GETDNS_OBJ=anchor.lo const-info.lo convert.lo dict.lo dnssec.lo general.lo \
|
||||||
list.lo request-internal.lo pubkey-pinning.lo rr-dict.lo \
|
list.lo request-internal.lo pubkey-pinning.lo rr-dict.lo \
|
||||||
rr-iter.lo server.lo stub.lo sync.lo ub_loop.lo util-internal.lo \
|
rr-iter.lo server.lo stub.lo sync.lo ub_loop.lo util-internal.lo \
|
||||||
mdns.lo
|
mdns.lo
|
||||||
|
@ -216,287 +216,170 @@ depend:
|
||||||
FORCE:
|
FORCE:
|
||||||
|
|
||||||
# Dependencies for gldns, utils, the extensions and compat functions
|
# Dependencies for gldns, utils, the extensions and compat functions
|
||||||
const-info.lo const-info.o: $(srcdir)/const-info.c \
|
anchor.lo anchor.o: $(srcdir)/anchor.c config.h $(srcdir)/debug.h $(srcdir)/anchor.h getdns/getdns.h
|
||||||
getdns/getdns.h \
|
const-info.lo const-info.o: $(srcdir)/const-info.c getdns/getdns.h getdns/getdns_extra.h \
|
||||||
getdns/getdns_extra.h \
|
getdns/getdns.h $(srcdir)/const-info.h
|
||||||
$(srcdir)/const-info.h
|
context.lo context.o: $(srcdir)/context.c config.h $(srcdir)/debug.h $(srcdir)/gldns/str2wire.h $(srcdir)/gldns/rrdef.h \
|
||||||
context.lo context.o: $(srcdir)/context.c \
|
$(srcdir)/gldns/wire2str.h $(srcdir)/context.h getdns/getdns.h getdns/getdns_extra.h \
|
||||||
config.h \
|
getdns/getdns.h $(srcdir)/types-internal.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/debug.h $(srcdir)/gldns/str2wire.h $(srcdir)/gldns/rrdef.h $(srcdir)/gldns/wire2str.h $(srcdir)/context.h \
|
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/extension/default_eventloop.h config.h \
|
||||||
getdns/getdns.h \
|
$(srcdir)/extension/poll_eventloop.h getdns/getdns_extra.h $(srcdir)/types-internal.h \
|
||||||
getdns/getdns_extra.h \
|
$(srcdir)/ub_loop.h $(srcdir)/server.h $(srcdir)/util-internal.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h \
|
||||||
$(srcdir)/types-internal.h $(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h \
|
$(srcdir)/gldns/pkthdr.h $(srcdir)/dnssec.h $(srcdir)/gldns/rrdef.h $(srcdir)/stub.h $(srcdir)/list.h $(srcdir)/dict.h \
|
||||||
$(srcdir)/extension/default_eventloop.h $(srcdir)/extension/poll_eventloop.h \
|
$(srcdir)/pubkey-pinning.h
|
||||||
$(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/server.h $(srcdir)/util/lruhash.h \
|
convert.lo convert.o: $(srcdir)/convert.c config.h getdns/getdns.h getdns/getdns_extra.h \
|
||||||
$(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/orig-headers/locks.h \
|
getdns/getdns.h $(srcdir)/util-internal.h $(srcdir)/context.h $(srcdir)/types-internal.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h $(srcdir)/util-internal.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h \
|
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/extension/default_eventloop.h config.h \
|
||||||
$(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h $(srcdir)/dnssec.h $(srcdir)/gldns/rrdef.h $(srcdir)/stub.h $(srcdir)/list.h \
|
$(srcdir)/extension/poll_eventloop.h getdns/getdns_extra.h $(srcdir)/types-internal.h \
|
||||||
$(srcdir)/dict.h $(srcdir)/pubkey-pinning.h
|
$(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h \
|
||||||
convert.lo convert.o: $(srcdir)/convert.c \
|
$(srcdir)/gldns/pkthdr.h $(srcdir)/gldns/wire2str.h $(srcdir)/gldns/str2wire.h $(srcdir)/gldns/rrdef.h \
|
||||||
config.h \
|
$(srcdir)/gldns/parseutil.h $(srcdir)/const-info.h $(srcdir)/dict.h $(srcdir)/list.h $(srcdir)/jsmn/jsmn.h $(srcdir)/convert.h
|
||||||
getdns/getdns.h \
|
dict.lo dict.o: $(srcdir)/dict.c config.h $(srcdir)/types-internal.h getdns/getdns.h \
|
||||||
getdns/getdns_extra.h \
|
getdns/getdns_extra.h getdns/getdns.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/util-internal.h $(srcdir)/context.h $(srcdir)/types-internal.h $(srcdir)/util/rbtree.h \
|
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/util-internal.h $(srcdir)/context.h \
|
||||||
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/extension/default_eventloop.h \
|
$(srcdir)/extension/default_eventloop.h config.h $(srcdir)/extension/poll_eventloop.h \
|
||||||
$(srcdir)/extension/poll_eventloop.h $(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h \
|
getdns/getdns_extra.h $(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h \
|
||||||
$(srcdir)/util/lruhash.h $(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h \
|
$(srcdir)/rr-iter.h $(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h $(srcdir)/dict.h $(srcdir)/list.h \
|
||||||
$(srcdir)/util/orig-headers/locks.h $(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h $(srcdir)/rr-iter.h \
|
$(srcdir)/const-info.h $(srcdir)/gldns/wire2str.h $(srcdir)/gldns/parseutil.h
|
||||||
$(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h $(srcdir)/gldns/wire2str.h \
|
dnssec.lo dnssec.o: $(srcdir)/dnssec.c config.h $(srcdir)/debug.h getdns/getdns.h $(srcdir)/context.h \
|
||||||
$(srcdir)/gldns/str2wire.h $(srcdir)/gldns/rrdef.h $(srcdir)/gldns/parseutil.h $(srcdir)/const-info.h $(srcdir)/dict.h \
|
getdns/getdns_extra.h getdns/getdns.h $(srcdir)/types-internal.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/list.h $(srcdir)/jsmn/jsmn.h $(srcdir)/convert.h
|
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/extension/default_eventloop.h config.h \
|
||||||
dict.lo dict.o: $(srcdir)/dict.c \
|
$(srcdir)/extension/poll_eventloop.h getdns/getdns_extra.h $(srcdir)/types-internal.h \
|
||||||
config.h \
|
$(srcdir)/ub_loop.h $(srcdir)/server.h $(srcdir)/util-internal.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h \
|
||||||
$(srcdir)/types-internal.h \
|
$(srcdir)/gldns/pkthdr.h $(srcdir)/dnssec.h $(srcdir)/gldns/rrdef.h $(srcdir)/gldns/str2wire.h $(srcdir)/gldns/rrdef.h \
|
||||||
getdns/getdns.h \
|
$(srcdir)/gldns/wire2str.h $(srcdir)/gldns/keyraw.h $(srcdir)/gldns/parseutil.h $(srcdir)/general.h $(srcdir)/dict.h \
|
||||||
getdns/getdns_extra.h \
|
$(srcdir)/list.h $(srcdir)/util/val_secalgo.h $(srcdir)/util/orig-headers/val_secalgo.h
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h $(srcdir)/util-internal.h $(srcdir)/context.h \
|
general.lo general.o: $(srcdir)/general.c config.h $(srcdir)/general.h getdns/getdns.h $(srcdir)/types-internal.h \
|
||||||
$(srcdir)/extension/default_eventloop.h $(srcdir)/extension/poll_eventloop.h \
|
getdns/getdns_extra.h getdns/getdns.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h $(srcdir)/util/lruhash.h \
|
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/gldns/wire2str.h $(srcdir)/context.h \
|
||||||
$(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/orig-headers/locks.h \
|
$(srcdir)/extension/default_eventloop.h config.h $(srcdir)/extension/poll_eventloop.h \
|
||||||
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h \
|
getdns/getdns_extra.h $(srcdir)/types-internal.h $(srcdir)/server.h $(srcdir)/util-internal.h \
|
||||||
$(srcdir)/gldns/pkthdr.h $(srcdir)/dict.h $(srcdir)/list.h $(srcdir)/const-info.h $(srcdir)/gldns/wire2str.h \
|
$(srcdir)/rr-iter.h $(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h $(srcdir)/dnssec.h \
|
||||||
$(srcdir)/gldns/parseutil.h
|
$(srcdir)/gldns/rrdef.h $(srcdir)/stub.h $(srcdir)/dict.h $(srcdir)/mdns.h
|
||||||
dnssec.lo dnssec.o: $(srcdir)/dnssec.c \
|
list.lo list.o: $(srcdir)/list.c $(srcdir)/types-internal.h getdns/getdns.h getdns/getdns_extra.h \
|
||||||
config.h \
|
getdns/getdns.h $(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h $(srcdir)/util-internal.h \
|
||||||
$(srcdir)/debug.h \
|
config.h $(srcdir)/context.h $(srcdir)/extension/default_eventloop.h config.h \
|
||||||
getdns/getdns.h \
|
$(srcdir)/extension/poll_eventloop.h getdns/getdns_extra.h $(srcdir)/types-internal.h \
|
||||||
$(srcdir)/context.h \
|
$(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h \
|
||||||
getdns/getdns_extra.h \
|
|
||||||
$(srcdir)/types-internal.h $(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h \
|
|
||||||
$(srcdir)/extension/default_eventloop.h $(srcdir)/extension/poll_eventloop.h \
|
|
||||||
$(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/server.h $(srcdir)/util/lruhash.h \
|
|
||||||
$(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/orig-headers/locks.h \
|
|
||||||
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h $(srcdir)/util-internal.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h \
|
|
||||||
$(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h $(srcdir)/dnssec.h $(srcdir)/gldns/rrdef.h $(srcdir)/gldns/str2wire.h \
|
|
||||||
$(srcdir)/gldns/rrdef.h $(srcdir)/gldns/wire2str.h $(srcdir)/gldns/keyraw.h $(srcdir)/gldns/parseutil.h \
|
|
||||||
$(srcdir)/general.h $(srcdir)/dict.h $(srcdir)/list.h $(srcdir)/util/val_secalgo.h \
|
|
||||||
$(srcdir)/util/orig-headers/val_secalgo.h
|
|
||||||
general.lo general.o: $(srcdir)/general.c \
|
|
||||||
config.h \
|
|
||||||
$(srcdir)/general.h \
|
|
||||||
getdns/getdns.h \
|
|
||||||
$(srcdir)/types-internal.h \
|
|
||||||
getdns/getdns_extra.h \
|
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h $(srcdir)/ub_loop.h $(srcdir)/debug.h \
|
|
||||||
$(srcdir)/gldns/wire2str.h $(srcdir)/context.h $(srcdir)/extension/default_eventloop.h \
|
|
||||||
$(srcdir)/extension/poll_eventloop.h $(srcdir)/types-internal.h $(srcdir)/server.h $(srcdir)/util/lruhash.h \
|
|
||||||
$(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/orig-headers/locks.h \
|
|
||||||
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h $(srcdir)/util-internal.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h \
|
|
||||||
$(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h $(srcdir)/dnssec.h $(srcdir)/gldns/rrdef.h $(srcdir)/stub.h $(srcdir)/dict.h \
|
|
||||||
$(srcdir)/mdns.h
|
|
||||||
list.lo list.o: $(srcdir)/list.c $(srcdir)/types-internal.h \
|
|
||||||
getdns/getdns.h \
|
|
||||||
getdns/getdns_extra.h \
|
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h $(srcdir)/util-internal.h \
|
|
||||||
config.h \
|
|
||||||
$(srcdir)/context.h $(srcdir)/extension/default_eventloop.h $(srcdir)/extension/poll_eventloop.h \
|
|
||||||
$(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h $(srcdir)/util/lruhash.h \
|
|
||||||
$(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/orig-headers/locks.h \
|
|
||||||
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h \
|
|
||||||
$(srcdir)/gldns/pkthdr.h $(srcdir)/list.h $(srcdir)/dict.h
|
$(srcdir)/gldns/pkthdr.h $(srcdir)/list.h $(srcdir)/dict.h
|
||||||
mdns.lo mdns.o: $(srcdir)/mdns.c \
|
mdns.lo mdns.o: $(srcdir)/mdns.c config.h $(srcdir)/debug.h $(srcdir)/context.h getdns/getdns.h \
|
||||||
config.h \
|
getdns/getdns_extra.h getdns/getdns.h $(srcdir)/types-internal.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/debug.h $(srcdir)/context.h \
|
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/extension/default_eventloop.h config.h \
|
||||||
getdns/getdns.h \
|
$(srcdir)/extension/poll_eventloop.h getdns/getdns_extra.h $(srcdir)/types-internal.h \
|
||||||
getdns/getdns_extra.h \
|
$(srcdir)/ub_loop.h $(srcdir)/server.h $(srcdir)/general.h $(srcdir)/gldns/pkthdr.h $(srcdir)/gldns/rrdef.h \
|
||||||
$(srcdir)/types-internal.h $(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h \
|
$(srcdir)/util-internal.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h $(srcdir)/mdns.h
|
||||||
$(srcdir)/extension/default_eventloop.h $(srcdir)/extension/poll_eventloop.h \
|
pubkey-pinning.lo pubkey-pinning.o: $(srcdir)/pubkey-pinning.c config.h $(srcdir)/debug.h getdns/getdns.h \
|
||||||
$(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/server.h $(srcdir)/util/lruhash.h \
|
$(srcdir)/context.h getdns/getdns.h getdns/getdns_extra.h $(srcdir)/types-internal.h \
|
||||||
$(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/orig-headers/locks.h \
|
$(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h $(srcdir)/extension/default_eventloop.h \
|
||||||
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h $(srcdir)/general.h $(srcdir)/gldns/pkthdr.h $(srcdir)/gldns/rrdef.h \
|
config.h $(srcdir)/extension/poll_eventloop.h getdns/getdns_extra.h \
|
||||||
$(srcdir)/util-internal.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h $(srcdir)/mdns.h \
|
$(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/server.h $(srcdir)/util-internal.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h \
|
||||||
$(srcdir)/util/auxiliary/util/fptr_wlist.h $(srcdir)/util/lookup3.h \
|
|
||||||
$(srcdir)/util/orig-headers/lookup3.h
|
|
||||||
pubkey-pinning.lo pubkey-pinning.o: $(srcdir)/pubkey-pinning.c \
|
|
||||||
config.h \
|
|
||||||
$(srcdir)/debug.h \
|
|
||||||
getdns/getdns.h \
|
|
||||||
$(srcdir)/context.h \
|
|
||||||
getdns/getdns_extra.h \
|
|
||||||
$(srcdir)/types-internal.h $(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h \
|
|
||||||
$(srcdir)/extension/default_eventloop.h $(srcdir)/extension/poll_eventloop.h \
|
|
||||||
$(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/server.h $(srcdir)/util/lruhash.h \
|
|
||||||
$(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/orig-headers/locks.h \
|
|
||||||
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h $(srcdir)/util-internal.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h \
|
|
||||||
$(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h
|
$(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h
|
||||||
request-internal.lo request-internal.o: $(srcdir)/request-internal.c \
|
request-internal.lo request-internal.o: $(srcdir)/request-internal.c config.h $(srcdir)/types-internal.h \
|
||||||
config.h \
|
getdns/getdns.h getdns/getdns_extra.h getdns/getdns.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/types-internal.h \
|
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/util-internal.h $(srcdir)/context.h \
|
||||||
getdns/getdns.h \
|
$(srcdir)/extension/default_eventloop.h config.h $(srcdir)/extension/poll_eventloop.h \
|
||||||
getdns/getdns_extra.h \
|
getdns/getdns_extra.h $(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h \
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h $(srcdir)/util-internal.h $(srcdir)/context.h \
|
$(srcdir)/rr-iter.h $(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h $(srcdir)/gldns/rrdef.h \
|
||||||
$(srcdir)/extension/default_eventloop.h $(srcdir)/extension/poll_eventloop.h \
|
$(srcdir)/gldns/str2wire.h $(srcdir)/gldns/rrdef.h $(srcdir)/dict.h $(srcdir)/convert.h $(srcdir)/general.h
|
||||||
$(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h $(srcdir)/util/lruhash.h \
|
rr-dict.lo rr-dict.o: $(srcdir)/rr-dict.c $(srcdir)/rr-dict.h config.h getdns/getdns.h $(srcdir)/gldns/gbuffer.h \
|
||||||
$(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/orig-headers/locks.h \
|
$(srcdir)/util-internal.h $(srcdir)/context.h getdns/getdns_extra.h getdns/getdns.h \
|
||||||
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h \
|
|
||||||
$(srcdir)/gldns/pkthdr.h $(srcdir)/gldns/rrdef.h $(srcdir)/gldns/str2wire.h $(srcdir)/gldns/rrdef.h $(srcdir)/dict.h \
|
|
||||||
$(srcdir)/convert.h $(srcdir)/general.h
|
|
||||||
rr-dict.lo rr-dict.o: $(srcdir)/rr-dict.c $(srcdir)/rr-dict.h \
|
|
||||||
config.h \
|
|
||||||
getdns/getdns.h \
|
|
||||||
$(srcdir)/gldns/gbuffer.h $(srcdir)/util-internal.h $(srcdir)/context.h \
|
|
||||||
getdns/getdns_extra.h \
|
|
||||||
$(srcdir)/types-internal.h $(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h \
|
$(srcdir)/types-internal.h $(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h \
|
||||||
$(srcdir)/extension/default_eventloop.h $(srcdir)/extension/poll_eventloop.h \
|
$(srcdir)/extension/default_eventloop.h config.h $(srcdir)/extension/poll_eventloop.h \
|
||||||
$(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h $(srcdir)/util/lruhash.h \
|
getdns/getdns_extra.h $(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h \
|
||||||
$(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/orig-headers/locks.h \
|
$(srcdir)/rr-iter.h $(srcdir)/gldns/pkthdr.h $(srcdir)/dict.h
|
||||||
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h $(srcdir)/rr-iter.h $(srcdir)/gldns/pkthdr.h $(srcdir)/dict.h
|
rr-iter.lo rr-iter.o: $(srcdir)/rr-iter.c $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h config.h getdns/getdns.h \
|
||||||
rr-iter.lo rr-iter.o: $(srcdir)/rr-iter.c $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h \
|
|
||||||
config.h \
|
|
||||||
getdns/getdns.h \
|
|
||||||
$(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h $(srcdir)/gldns/rrdef.h
|
$(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h $(srcdir)/gldns/rrdef.h
|
||||||
server.lo server.o: $(srcdir)/server.c \
|
server.lo server.o: $(srcdir)/server.c config.h getdns/getdns_extra.h getdns/getdns.h \
|
||||||
config.h \
|
$(srcdir)/context.h getdns/getdns.h $(srcdir)/types-internal.h $(srcdir)/util/rbtree.h \
|
||||||
getdns/getdns_extra.h \
|
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/extension/default_eventloop.h config.h \
|
||||||
getdns/getdns.h \
|
$(srcdir)/extension/poll_eventloop.h getdns/getdns_extra.h $(srcdir)/types-internal.h \
|
||||||
$(srcdir)/context.h $(srcdir)/types-internal.h $(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h \
|
$(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h
|
||||||
$(srcdir)/extension/default_eventloop.h $(srcdir)/extension/poll_eventloop.h \
|
stub.lo stub.o: $(srcdir)/stub.c config.h $(srcdir)/debug.h $(srcdir)/stub.h getdns/getdns.h $(srcdir)/types-internal.h \
|
||||||
$(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h $(srcdir)/util/lruhash.h \
|
getdns/getdns_extra.h getdns/getdns.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/orig-headers/locks.h \
|
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h $(srcdir)/gldns/rrdef.h \
|
||||||
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h
|
$(srcdir)/gldns/str2wire.h $(srcdir)/gldns/rrdef.h $(srcdir)/gldns/wire2str.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h \
|
||||||
stub.lo stub.o: $(srcdir)/stub.c \
|
$(srcdir)/context.h $(srcdir)/extension/default_eventloop.h config.h \
|
||||||
config.h \
|
$(srcdir)/extension/poll_eventloop.h getdns/getdns_extra.h $(srcdir)/types-internal.h \
|
||||||
$(srcdir)/debug.h $(srcdir)/stub.h \
|
$(srcdir)/ub_loop.h $(srcdir)/server.h $(srcdir)/util-internal.h $(srcdir)/general.h $(srcdir)/pubkey-pinning.h
|
||||||
getdns/getdns.h \
|
sync.lo sync.o: $(srcdir)/sync.c getdns/getdns.h config.h $(srcdir)/context.h getdns/getdns_extra.h \
|
||||||
$(srcdir)/types-internal.h \
|
getdns/getdns.h $(srcdir)/types-internal.h $(srcdir)/util/rbtree.h \
|
||||||
getdns/getdns_extra.h \
|
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/extension/default_eventloop.h config.h \
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h $(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h \
|
$(srcdir)/extension/poll_eventloop.h getdns/getdns_extra.h $(srcdir)/types-internal.h \
|
||||||
$(srcdir)/gldns/rrdef.h $(srcdir)/gldns/str2wire.h $(srcdir)/gldns/rrdef.h $(srcdir)/gldns/wire2str.h $(srcdir)/rr-iter.h \
|
$(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h $(srcdir)/general.h $(srcdir)/util-internal.h $(srcdir)/rr-iter.h $(srcdir)/rr-dict.h \
|
||||||
$(srcdir)/rr-dict.h $(srcdir)/context.h $(srcdir)/extension/default_eventloop.h \
|
$(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h $(srcdir)/dnssec.h $(srcdir)/gldns/rrdef.h $(srcdir)/stub.h \
|
||||||
$(srcdir)/extension/poll_eventloop.h $(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/server.h \
|
|
||||||
$(srcdir)/util/lruhash.h $(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h \
|
|
||||||
$(srcdir)/util/orig-headers/locks.h $(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h \
|
|
||||||
$(srcdir)/util-internal.h $(srcdir)/general.h $(srcdir)/pubkey-pinning.h
|
|
||||||
sync.lo sync.o: $(srcdir)/sync.c \
|
|
||||||
getdns/getdns.h \
|
|
||||||
config.h \
|
|
||||||
$(srcdir)/context.h \
|
|
||||||
getdns/getdns_extra.h \
|
|
||||||
$(srcdir)/types-internal.h $(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h \
|
|
||||||
$(srcdir)/extension/default_eventloop.h $(srcdir)/extension/poll_eventloop.h \
|
|
||||||
$(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h $(srcdir)/util/lruhash.h \
|
|
||||||
$(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/orig-headers/locks.h \
|
|
||||||
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h $(srcdir)/general.h $(srcdir)/util-internal.h $(srcdir)/rr-iter.h \
|
|
||||||
$(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h $(srcdir)/dnssec.h $(srcdir)/gldns/rrdef.h $(srcdir)/stub.h \
|
|
||||||
$(srcdir)/gldns/wire2str.h
|
$(srcdir)/gldns/wire2str.h
|
||||||
ub_loop.lo ub_loop.o: $(srcdir)/ub_loop.c $(srcdir)/ub_loop.h \
|
ub_loop.lo ub_loop.o: $(srcdir)/ub_loop.c $(srcdir)/ub_loop.h config.h getdns/getdns.h \
|
||||||
config.h \
|
getdns/getdns_extra.h getdns/getdns.h $(srcdir)/types-internal.h $(srcdir)/util/rbtree.h \
|
||||||
getdns/getdns.h \
|
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/debug.h
|
||||||
getdns/getdns_extra.h \
|
util-internal.lo util-internal.o: $(srcdir)/util-internal.c config.h getdns/getdns.h $(srcdir)/dict.h \
|
||||||
$(srcdir)/types-internal.h $(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h $(srcdir)/debug.h
|
$(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h $(srcdir)/types-internal.h \
|
||||||
util-internal.lo util-internal.o: $(srcdir)/util-internal.c \
|
getdns/getdns_extra.h getdns/getdns.h $(srcdir)/list.h $(srcdir)/util-internal.h $(srcdir)/context.h \
|
||||||
config.h \
|
$(srcdir)/extension/default_eventloop.h config.h $(srcdir)/extension/poll_eventloop.h \
|
||||||
getdns/getdns.h \
|
getdns/getdns_extra.h $(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h \
|
||||||
$(srcdir)/dict.h $(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h $(srcdir)/types-internal.h \
|
$(srcdir)/rr-iter.h $(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h $(srcdir)/gldns/str2wire.h \
|
||||||
getdns/getdns_extra.h \
|
$(srcdir)/gldns/rrdef.h $(srcdir)/dnssec.h $(srcdir)/gldns/rrdef.h
|
||||||
$(srcdir)/list.h $(srcdir)/util-internal.h $(srcdir)/context.h $(srcdir)/extension/default_eventloop.h \
|
version.lo version.o: version.c
|
||||||
$(srcdir)/extension/poll_eventloop.h $(srcdir)/types-internal.h $(srcdir)/ub_loop.h $(srcdir)/debug.h $(srcdir)/server.h \
|
gbuffer.lo gbuffer.o: $(srcdir)/gldns/gbuffer.c config.h $(srcdir)/gldns/gbuffer.h
|
||||||
$(srcdir)/util/lruhash.h $(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h \
|
keyraw.lo keyraw.o: $(srcdir)/gldns/keyraw.c config.h $(srcdir)/gldns/keyraw.h $(srcdir)/gldns/rrdef.h
|
||||||
$(srcdir)/util/orig-headers/locks.h $(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h $(srcdir)/rr-iter.h \
|
parse.lo parse.o: $(srcdir)/gldns/parse.c config.h $(srcdir)/gldns/parse.h $(srcdir)/gldns/parseutil.h \
|
||||||
$(srcdir)/rr-dict.h $(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/pkthdr.h $(srcdir)/gldns/str2wire.h $(srcdir)/gldns/rrdef.h \
|
|
||||||
$(srcdir)/dnssec.h $(srcdir)/gldns/rrdef.h
|
|
||||||
gbuffer.lo gbuffer.o: $(srcdir)/gldns/gbuffer.c \
|
|
||||||
config.h \
|
|
||||||
$(srcdir)/gldns/gbuffer.h
|
$(srcdir)/gldns/gbuffer.h
|
||||||
keyraw.lo keyraw.o: $(srcdir)/gldns/keyraw.c \
|
parseutil.lo parseutil.o: $(srcdir)/gldns/parseutil.c config.h $(srcdir)/gldns/parseutil.h
|
||||||
config.h \
|
rrdef.lo rrdef.o: $(srcdir)/gldns/rrdef.c config.h $(srcdir)/gldns/rrdef.h $(srcdir)/gldns/parseutil.h
|
||||||
$(srcdir)/gldns/keyraw.h $(srcdir)/gldns/rrdef.h
|
str2wire.lo str2wire.o: $(srcdir)/gldns/str2wire.c config.h $(srcdir)/gldns/str2wire.h $(srcdir)/gldns/rrdef.h \
|
||||||
parse.lo parse.o: $(srcdir)/gldns/parse.c \
|
$(srcdir)/gldns/wire2str.h $(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/parse.h $(srcdir)/gldns/parseutil.h
|
||||||
config.h \
|
wire2str.lo wire2str.o: $(srcdir)/gldns/wire2str.c config.h $(srcdir)/gldns/wire2str.h $(srcdir)/gldns/str2wire.h \
|
||||||
$(srcdir)/gldns/parse.h $(srcdir)/gldns/parseutil.h $(srcdir)/gldns/gbuffer.h
|
$(srcdir)/gldns/rrdef.h $(srcdir)/gldns/pkthdr.h $(srcdir)/gldns/parseutil.h $(srcdir)/gldns/gbuffer.h \
|
||||||
parseutil.lo parseutil.o: $(srcdir)/gldns/parseutil.c \
|
$(srcdir)/gldns/keyraw.h
|
||||||
config.h \
|
arc4_lock.lo arc4_lock.o: $(srcdir)/compat/arc4_lock.c config.h
|
||||||
$(srcdir)/gldns/parseutil.h
|
arc4random.lo arc4random.o: $(srcdir)/compat/arc4random.c config.h $(srcdir)/compat/chacha_private.h
|
||||||
rrdef.lo rrdef.o: $(srcdir)/gldns/rrdef.c \
|
arc4random_uniform.lo arc4random_uniform.o: $(srcdir)/compat/arc4random_uniform.c config.h
|
||||||
config.h \
|
explicit_bzero.lo explicit_bzero.o: $(srcdir)/compat/explicit_bzero.c config.h
|
||||||
$(srcdir)/gldns/rrdef.h $(srcdir)/gldns/parseutil.h
|
getentropy_linux.lo getentropy_linux.o: $(srcdir)/compat/getentropy_linux.c config.h
|
||||||
str2wire.lo str2wire.o: $(srcdir)/gldns/str2wire.c \
|
getentropy_osx.lo getentropy_osx.o: $(srcdir)/compat/getentropy_osx.c config.h
|
||||||
config.h \
|
getentropy_solaris.lo getentropy_solaris.o: $(srcdir)/compat/getentropy_solaris.c config.h
|
||||||
$(srcdir)/gldns/str2wire.h $(srcdir)/gldns/rrdef.h $(srcdir)/gldns/wire2str.h $(srcdir)/gldns/gbuffer.h \
|
|
||||||
$(srcdir)/gldns/parse.h $(srcdir)/gldns/parseutil.h
|
|
||||||
wire2str.lo wire2str.o: $(srcdir)/gldns/wire2str.c \
|
|
||||||
config.h \
|
|
||||||
$(srcdir)/gldns/wire2str.h $(srcdir)/gldns/str2wire.h $(srcdir)/gldns/rrdef.h $(srcdir)/gldns/pkthdr.h \
|
|
||||||
$(srcdir)/gldns/parseutil.h $(srcdir)/gldns/gbuffer.h $(srcdir)/gldns/keyraw.h
|
|
||||||
arc4_lock.lo arc4_lock.o: $(srcdir)/compat/arc4_lock.c \
|
|
||||||
config.h
|
|
||||||
arc4random.lo arc4random.o: $(srcdir)/compat/arc4random.c \
|
|
||||||
config.h \
|
|
||||||
$(srcdir)/compat/chacha_private.h
|
|
||||||
arc4random_uniform.lo arc4random_uniform.o: $(srcdir)/compat/arc4random_uniform.c \
|
|
||||||
config.h
|
|
||||||
explicit_bzero.lo explicit_bzero.o: $(srcdir)/compat/explicit_bzero.c \
|
|
||||||
config.h
|
|
||||||
getentropy_linux.lo getentropy_linux.o: $(srcdir)/compat/getentropy_linux.c \
|
|
||||||
config.h
|
|
||||||
getentropy_osx.lo getentropy_osx.o: $(srcdir)/compat/getentropy_osx.c \
|
|
||||||
config.h
|
|
||||||
getentropy_solaris.lo getentropy_solaris.o: $(srcdir)/compat/getentropy_solaris.c \
|
|
||||||
config.h
|
|
||||||
getentropy_win.lo getentropy_win.o: $(srcdir)/compat/getentropy_win.c
|
getentropy_win.lo getentropy_win.o: $(srcdir)/compat/getentropy_win.c
|
||||||
gettimeofday.lo gettimeofday.o: $(srcdir)/compat/gettimeofday.c \
|
gettimeofday.lo gettimeofday.o: $(srcdir)/compat/gettimeofday.c config.h
|
||||||
config.h
|
inet_ntop.lo inet_ntop.o: $(srcdir)/compat/inet_ntop.c config.h
|
||||||
inet_ntop.lo inet_ntop.o: $(srcdir)/compat/inet_ntop.c \
|
inet_pton.lo inet_pton.o: $(srcdir)/compat/inet_pton.c config.h
|
||||||
config.h
|
sha512.lo sha512.o: $(srcdir)/compat/sha512.c config.h
|
||||||
inet_pton.lo inet_pton.o: $(srcdir)/compat/inet_pton.c \
|
strlcpy.lo strlcpy.o: $(srcdir)/compat/strlcpy.c config.h
|
||||||
config.h
|
locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/orig-headers/locks.h \
|
||||||
sha512.lo sha512.o: $(srcdir)/compat/sha512.c \
|
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h config.h
|
||||||
config.h
|
lookup3.lo lookup3.o: $(srcdir)/util/lookup3.c config.h $(srcdir)/util/auxiliary/util/storage/lookup3.h \
|
||||||
strlcpy.lo strlcpy.o: $(srcdir)/compat/strlcpy.c \
|
$(srcdir)/util/lookup3.h $(srcdir)/util/orig-headers/lookup3.h
|
||||||
config.h
|
lruhash.lo lruhash.o: $(srcdir)/util/lruhash.c config.h $(srcdir)/util/auxiliary/util/storage/lruhash.h \
|
||||||
locks.lo locks.o: $(srcdir)/util/locks.c \
|
$(srcdir)/util/lruhash.h $(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h \
|
||||||
config.h \
|
$(srcdir)/util/orig-headers/locks.h $(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h config.h \
|
||||||
$(srcdir)/util/locks.h $(srcdir)/util/orig-headers/locks.h $(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h
|
$(srcdir)/util/auxiliary/util/fptr_wlist.h
|
||||||
lookup3.lo lookup3.o: $(srcdir)/util/lookup3.c \
|
rbtree.lo rbtree.o: $(srcdir)/util/rbtree.c config.h $(srcdir)/util/auxiliary/log.h \
|
||||||
config.h \
|
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h config.h $(srcdir)/util/auxiliary/fptr_wlist.h \
|
||||||
$(srcdir)/util/auxiliary/util/storage/lookup3.h $(srcdir)/util/lookup3.h \
|
$(srcdir)/util/auxiliary/util/fptr_wlist.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/util/orig-headers/lookup3.h
|
$(srcdir)/util/orig-headers/rbtree.h
|
||||||
lruhash.lo lruhash.o: $(srcdir)/util/lruhash.c \
|
val_secalgo.lo val_secalgo.o: $(srcdir)/util/val_secalgo.c config.h \
|
||||||
config.h \
|
|
||||||
$(srcdir)/util/auxiliary/util/storage/lruhash.h $(srcdir)/util/lruhash.h \
|
|
||||||
$(srcdir)/util/orig-headers/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/orig-headers/locks.h \
|
|
||||||
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h $(srcdir)/util/auxiliary/util/fptr_wlist.h
|
|
||||||
rbtree.lo rbtree.o: $(srcdir)/util/rbtree.c \
|
|
||||||
config.h \
|
|
||||||
$(srcdir)/util/auxiliary/log.h $(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h \
|
|
||||||
$(srcdir)/util/auxiliary/fptr_wlist.h $(srcdir)/util/auxiliary/util/fptr_wlist.h \
|
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h
|
|
||||||
val_secalgo.lo val_secalgo.o: $(srcdir)/util/val_secalgo.c \
|
|
||||||
config.h \
|
|
||||||
$(srcdir)/util/auxiliary/util/data/packed_rrset.h \
|
$(srcdir)/util/auxiliary/util/data/packed_rrset.h \
|
||||||
$(srcdir)/util/auxiliary/validator/val_secalgo.h $(srcdir)/util/val_secalgo.h \
|
$(srcdir)/util/auxiliary/validator/val_secalgo.h $(srcdir)/util/val_secalgo.h \
|
||||||
$(srcdir)/util/orig-headers/val_secalgo.h $(srcdir)/util/auxiliary/validator/val_nsec3.h \
|
$(srcdir)/util/orig-headers/val_secalgo.h $(srcdir)/util/auxiliary/validator/val_nsec3.h \
|
||||||
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h $(srcdir)/util/auxiliary/sldns/rrdef.h \
|
$(srcdir)/util/auxiliary/util/log.h $(srcdir)/debug.h config.h $(srcdir)/util/auxiliary/sldns/rrdef.h \
|
||||||
$(srcdir)/gldns/rrdef.h $(srcdir)/util/auxiliary/sldns/keyraw.h $(srcdir)/gldns/keyraw.h \
|
$(srcdir)/gldns/rrdef.h $(srcdir)/util/auxiliary/sldns/keyraw.h $(srcdir)/gldns/keyraw.h \
|
||||||
$(srcdir)/util/auxiliary/sldns/sbuffer.h $(srcdir)/gldns/gbuffer.h
|
$(srcdir)/util/auxiliary/sldns/sbuffer.h $(srcdir)/gldns/gbuffer.h
|
||||||
jsmn.lo jsmn.o: $(srcdir)/jsmn/jsmn.c $(srcdir)/jsmn/jsmn.h
|
jsmn.lo jsmn.o: $(srcdir)/jsmn/jsmn.c $(srcdir)/jsmn/jsmn.h
|
||||||
libev.lo libev.o: $(srcdir)/extension/libev.c \
|
libev.lo libev.o: $(srcdir)/extension/libev.c config.h $(srcdir)/types-internal.h getdns/getdns.h \
|
||||||
config.h \
|
getdns/getdns_extra.h getdns/getdns.h $(srcdir)/util/rbtree.h \
|
||||||
$(srcdir)/types-internal.h \
|
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/getdns/getdns_ext_libev.h \
|
||||||
getdns/getdns.h \
|
getdns/getdns_extra.h
|
||||||
getdns/getdns_extra.h \
|
libevent.lo libevent.o: $(srcdir)/extension/libevent.c config.h $(srcdir)/types-internal.h \
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h $(srcdir)/getdns/getdns_ext_libev.h
|
getdns/getdns.h getdns/getdns_extra.h getdns/getdns.h $(srcdir)/util/rbtree.h \
|
||||||
libevent.lo libevent.o: $(srcdir)/extension/libevent.c \
|
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/getdns/getdns_ext_libevent.h \
|
||||||
config.h \
|
getdns/getdns_extra.h
|
||||||
$(srcdir)/types-internal.h \
|
libuv.lo libuv.o: $(srcdir)/extension/libuv.c config.h $(srcdir)/debug.h config.h $(srcdir)/types-internal.h \
|
||||||
getdns/getdns.h \
|
getdns/getdns.h getdns/getdns_extra.h getdns/getdns.h $(srcdir)/util/rbtree.h \
|
||||||
getdns/getdns_extra.h \
|
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/getdns/getdns_ext_libuv.h \
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h $(srcdir)/getdns/getdns_ext_libevent.h
|
getdns/getdns_extra.h
|
||||||
libuv.lo libuv.o: $(srcdir)/extension/libuv.c \
|
poll_eventloop.lo poll_eventloop.o: $(srcdir)/extension/poll_eventloop.c config.h \
|
||||||
config.h \
|
$(srcdir)/extension/poll_eventloop.h getdns/getdns.h getdns/getdns_extra.h \
|
||||||
$(srcdir)/debug.h $(srcdir)/types-internal.h \
|
$(srcdir)/types-internal.h getdns/getdns.h getdns/getdns_extra.h $(srcdir)/util/rbtree.h \
|
||||||
getdns/getdns.h \
|
$(srcdir)/util/orig-headers/rbtree.h $(srcdir)/debug.h config.h
|
||||||
getdns/getdns_extra.h \
|
select_eventloop.lo select_eventloop.o: $(srcdir)/extension/select_eventloop.c config.h \
|
||||||
$(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h $(srcdir)/getdns/getdns_ext_libuv.h
|
$(srcdir)/extension/select_eventloop.h getdns/getdns.h getdns/getdns_extra.h \
|
||||||
poll_eventloop.lo poll_eventloop.o: $(srcdir)/extension/poll_eventloop.c \
|
$(srcdir)/debug.h config.h $(srcdir)/types-internal.h getdns/getdns.h getdns/getdns_extra.h \
|
||||||
config.h \
|
$(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h
|
||||||
$(srcdir)/extension/poll_eventloop.h \
|
|
||||||
getdns/getdns.h \
|
|
||||||
getdns/getdns_extra.h \
|
|
||||||
$(srcdir)/types-internal.h $(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h $(srcdir)/debug.h
|
|
||||||
select_eventloop.lo select_eventloop.o: $(srcdir)/extension/select_eventloop.c \
|
|
||||||
config.h \
|
|
||||||
$(srcdir)/extension/select_eventloop.h \
|
|
||||||
getdns/getdns.h \
|
|
||||||
getdns/getdns_extra.h \
|
|
||||||
$(srcdir)/debug.h $(srcdir)/types-internal.h $(srcdir)/util/rbtree.h $(srcdir)/util/orig-headers/rbtree.h
|
|
||||||
|
|
|
@ -0,0 +1,305 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* /brief functions for DNSSEC trust anchor management
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2017, NLnet Labs, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* * Neither the names of the copyright holders nor the
|
||||||
|
* names of its contributors may be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL Verisign, Inc. BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
#include "debug.h"
|
||||||
|
#include "anchor.h"
|
||||||
|
#include <expat.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <openssl/x509.h>
|
||||||
|
#include <openssl/x509v3.h>
|
||||||
|
#include <openssl/err.h>
|
||||||
|
|
||||||
|
#define P7SIGNER "dnssec@iana.org"
|
||||||
|
|
||||||
|
static const char*
|
||||||
|
get_builtin_cert(void)
|
||||||
|
{
|
||||||
|
return
|
||||||
|
/* The ICANN CA fetched at 24 Sep 2010. Valid to 2028 */
|
||||||
|
"-----BEGIN CERTIFICATE-----\n"
|
||||||
|
"MIIDdzCCAl+gAwIBAgIBATANBgkqhkiG9w0BAQsFADBdMQ4wDAYDVQQKEwVJQ0FO\n"
|
||||||
|
"TjEmMCQGA1UECxMdSUNBTk4gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAUBgNV\n"
|
||||||
|
"BAMTDUlDQU5OIFJvb3QgQ0ExCzAJBgNVBAYTAlVTMB4XDTA5MTIyMzA0MTkxMloX\n"
|
||||||
|
"DTI5MTIxODA0MTkxMlowXTEOMAwGA1UEChMFSUNBTk4xJjAkBgNVBAsTHUlDQU5O\n"
|
||||||
|
"IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1JQ0FOTiBSb290IENB\n"
|
||||||
|
"MQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKDb\n"
|
||||||
|
"cLhPNNqc1NB+u+oVvOnJESofYS9qub0/PXagmgr37pNublVThIzyLPGCJ8gPms9S\n"
|
||||||
|
"G1TaKNIsMI7d+5IgMy3WyPEOECGIcfqEIktdR1YWfJufXcMReZwU4v/AdKzdOdfg\n"
|
||||||
|
"ONiwc6r70duEr1IiqPbVm5T05l1e6D+HkAvHGnf1LtOPGs4CHQdpIUcy2kauAEy2\n"
|
||||||
|
"paKcOcHASvbTHK7TbbvHGPB+7faAztABLoneErruEcumetcNfPMIjXKdv1V1E3C7\n"
|
||||||
|
"MSJKy+jAqqQJqjZoQGB0necZgUMiUv7JK1IPQRM2CXJllcyJrm9WFxY0c1KjBO29\n"
|
||||||
|
"iIKK69fcglKcBuFShUECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B\n"
|
||||||
|
"Af8EBAMCAf4wHQYDVR0OBBYEFLpS6UmDJIZSL8eZzfyNa2kITcBQMA0GCSqGSIb3\n"
|
||||||
|
"DQEBCwUAA4IBAQAP8emCogqHny2UYFqywEuhLys7R9UKmYY4suzGO4nkbgfPFMfH\n"
|
||||||
|
"6M+Zj6owwxlwueZt1j/IaCayoKU3QsrYYoDRolpILh+FPwx7wseUEV8ZKpWsoDoD\n"
|
||||||
|
"2JFbLg2cfB8u/OlE4RYmcxxFSmXBg0yQ8/IoQt/bxOcEEhhiQ168H2yE5rxJMt9h\n"
|
||||||
|
"15nu5JBSewrCkYqYYmaxyOC3WrVGfHZxVI7MpIFcGdvSb2a1uyuua8l0BKgk3ujF\n"
|
||||||
|
"0/wsHNeP22qNyVO+XVBzrM8fk8BSUFuiT/6tZTYXRtEt5aKQZgXbKU5dUF3jT9qg\n"
|
||||||
|
"j/Br5BZw3X/zd325TvnswzMC1+ljLzHnQGGk\n"
|
||||||
|
"-----END CERTIFICATE-----\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* get key usage out of its extension, returns 0 if no key_usage extension */
|
||||||
|
static unsigned long
|
||||||
|
get_usage_of_ex(X509* cert)
|
||||||
|
{
|
||||||
|
unsigned long val = 0;
|
||||||
|
ASN1_BIT_STRING* s;
|
||||||
|
if((s=X509_get_ext_d2i(cert, NID_key_usage, NULL, NULL))) {
|
||||||
|
if(s->length > 0) {
|
||||||
|
val = s->data[0];
|
||||||
|
if(s->length > 1)
|
||||||
|
val |= s->data[1] << 8;
|
||||||
|
}
|
||||||
|
ASN1_BIT_STRING_free(s);
|
||||||
|
}
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** get valid signers from the list of signers in the signature */
|
||||||
|
static STACK_OF(X509)*
|
||||||
|
get_valid_signers(PKCS7* p7, const char* p7signer)
|
||||||
|
{
|
||||||
|
const int verb = 5;
|
||||||
|
int i;
|
||||||
|
STACK_OF(X509)* validsigners = sk_X509_new_null();
|
||||||
|
STACK_OF(X509)* signers = PKCS7_get0_signers(p7, NULL, 0);
|
||||||
|
unsigned long usage = 0;
|
||||||
|
if(!validsigners) {
|
||||||
|
if(verb) printf("out of memory\n");
|
||||||
|
sk_X509_free(signers);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if(!signers) {
|
||||||
|
if(verb) printf("no signers in pkcs7 signature\n");
|
||||||
|
sk_X509_free(validsigners);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
for(i=0; i<sk_X509_num(signers); i++) {
|
||||||
|
X509_NAME* nm = X509_get_subject_name(
|
||||||
|
sk_X509_value(signers, i));
|
||||||
|
char buf[1024];
|
||||||
|
if(!nm) {
|
||||||
|
if(verb) printf("signer %d: cert has no subject name\n", i);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(verb && nm) {
|
||||||
|
char* nmline = X509_NAME_oneline(nm, buf,
|
||||||
|
(int)sizeof(buf));
|
||||||
|
printf("signer %d: Subject: %s\n", i,
|
||||||
|
nmline?nmline:"no subject");
|
||||||
|
if(verb >= 3 && X509_NAME_get_text_by_NID(nm,
|
||||||
|
NID_commonName, buf, (int)sizeof(buf)))
|
||||||
|
printf("commonName: %s\n", buf);
|
||||||
|
if(verb >= 3 && X509_NAME_get_text_by_NID(nm,
|
||||||
|
NID_pkcs9_emailAddress, buf, (int)sizeof(buf)))
|
||||||
|
printf("emailAddress: %s\n", buf);
|
||||||
|
}
|
||||||
|
if(verb) {
|
||||||
|
int ku_loc = X509_get_ext_by_NID(
|
||||||
|
sk_X509_value(signers, i), NID_key_usage, -1);
|
||||||
|
if(verb >= 3 && ku_loc >= 0) {
|
||||||
|
X509_EXTENSION *ex = X509_get_ext(
|
||||||
|
sk_X509_value(signers, i), ku_loc);
|
||||||
|
if(ex) {
|
||||||
|
printf("keyUsage: ");
|
||||||
|
X509V3_EXT_print_fp(stdout, ex, 0, 0);
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!p7signer || strcmp(p7signer, "")==0) {
|
||||||
|
/* there is no name to check, return all records */
|
||||||
|
if(verb) printf("did not check commonName of signer\n");
|
||||||
|
} else {
|
||||||
|
if(!X509_NAME_get_text_by_NID(nm,
|
||||||
|
NID_pkcs9_emailAddress,
|
||||||
|
buf, (int)sizeof(buf))) {
|
||||||
|
if(verb) printf("removed cert with no name\n");
|
||||||
|
continue; /* no name, no use */
|
||||||
|
}
|
||||||
|
if(strcmp(buf, p7signer) != 0) {
|
||||||
|
if(verb) printf("removed cert with wrong name\n");
|
||||||
|
continue; /* wrong name, skip it */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* check that the key usage allows digital signatures
|
||||||
|
* (the p7s) */
|
||||||
|
usage = get_usage_of_ex(sk_X509_value(signers, i));
|
||||||
|
if(!(usage & KU_DIGITAL_SIGNATURE)) {
|
||||||
|
if(verb) printf("removed cert with no key usage Digital Signature allowed\n");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* we like this cert, add it to our list of valid
|
||||||
|
* signers certificates */
|
||||||
|
sk_X509_push(validsigners, sk_X509_value(signers, i));
|
||||||
|
}
|
||||||
|
sk_X509_free(signers);
|
||||||
|
return validsigners;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
verify_p7sig(BIO* data, BIO* p7s, X509_STORE *store, const char* p7signer)
|
||||||
|
{
|
||||||
|
const int verb = 5;
|
||||||
|
PKCS7* p7;
|
||||||
|
STACK_OF(X509)* validsigners;
|
||||||
|
int secure = 0;
|
||||||
|
#ifdef X509_V_FLAG_CHECK_SS_SIGNATURE
|
||||||
|
X509_VERIFY_PARAM* param = X509_VERIFY_PARAM_new();
|
||||||
|
if(!param) {
|
||||||
|
if(verb) printf("out of memory\n");
|
||||||
|
X509_STORE_free(store);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* do the selfcheck on the root certificate; it checks that the
|
||||||
|
* input is valid */
|
||||||
|
X509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_CHECK_SS_SIGNATURE);
|
||||||
|
if(store) X509_STORE_set1_param(store, param);
|
||||||
|
#endif
|
||||||
|
if(!store) {
|
||||||
|
if(verb) printf("out of memory\n");
|
||||||
|
#ifdef X509_V_FLAG_CHECK_SS_SIGNATURE
|
||||||
|
X509_VERIFY_PARAM_free(param);
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#ifdef X509_V_FLAG_CHECK_SS_SIGNATURE
|
||||||
|
X509_VERIFY_PARAM_free(param);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
(void)BIO_reset(p7s);
|
||||||
|
(void)BIO_reset(data);
|
||||||
|
|
||||||
|
/* convert p7s to p7 (the signature) */
|
||||||
|
p7 = d2i_PKCS7_bio(p7s, NULL);
|
||||||
|
if(!p7) {
|
||||||
|
if(verb) printf("could not parse p7s signature file\n");
|
||||||
|
X509_STORE_free(store);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if(verb >= 2) printf("parsed the PKCS7 signature\n");
|
||||||
|
|
||||||
|
/* check what is in the Subject name of the certificates,
|
||||||
|
* and build a stack that contains only the right certificates */
|
||||||
|
validsigners = get_valid_signers(p7, p7signer);
|
||||||
|
if(!validsigners) {
|
||||||
|
PKCS7_free(p7);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
BIO *out = BIO_new_fd(fileno(stdout), BIO_NOCLOSE);
|
||||||
|
BIO_printf(out, "Hello World\n");
|
||||||
|
if(PKCS7_verify(p7, validsigners, store, data, out, PKCS7_NOINTERN) == 1) {
|
||||||
|
secure = 1;
|
||||||
|
if(verb) printf("the PKCS7 signature verified\n");
|
||||||
|
} else {
|
||||||
|
if(verb) printf("the PKCS7 signature did not verify\n");
|
||||||
|
if(verb) {
|
||||||
|
ERR_print_errors_fp(stdout);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BIO_free(out);
|
||||||
|
|
||||||
|
sk_X509_free(validsigners);
|
||||||
|
PKCS7_free(p7);
|
||||||
|
return secure;
|
||||||
|
}
|
||||||
|
|
||||||
|
void _getdns_context_equip_with_anchor(getdns_context *context)
|
||||||
|
{
|
||||||
|
char fn[1024];
|
||||||
|
int xml_fd, p7s_fd;
|
||||||
|
int n;
|
||||||
|
BIO *xml, *p7s, *crt;
|
||||||
|
X509 *x;
|
||||||
|
X509_STORE *store;
|
||||||
|
char *crt_str;
|
||||||
|
|
||||||
|
DEBUG_ANCHOR("entering %s\n", __FUNC__);
|
||||||
|
|
||||||
|
n = snprintf( fn, sizeof(fn)
|
||||||
|
, "%s/.getdns/root-anchors.xml", getenv("HOME"));
|
||||||
|
|
||||||
|
if (n < 0 || n >= (int)sizeof(fn))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if ((xml_fd = open(fn, O_RDONLY)) < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
(void) snprintf( fn, sizeof(fn)
|
||||||
|
, "%s/.getdns/root-anchors.p7s", getenv("HOME"));
|
||||||
|
|
||||||
|
if ((p7s_fd = open(fn, O_RDONLY)) < 0) {
|
||||||
|
close(xml_fd);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!(xml = BIO_new_fd(xml_fd, 1))) {
|
||||||
|
close(xml_fd);
|
||||||
|
close(p7s_fd);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!(p7s = BIO_new_fd(p7s_fd, 1))) {
|
||||||
|
BIO_free(xml);
|
||||||
|
close(p7s_fd);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!(crt_str = strdup(get_builtin_cert())))
|
||||||
|
goto error_free_xml;
|
||||||
|
if (!(crt = BIO_new_mem_buf(crt_str, (int)strlen(crt_str))))
|
||||||
|
goto error_free_str;
|
||||||
|
if (!(store = X509_STORE_new()))
|
||||||
|
goto error_free_crt;
|
||||||
|
if (!(x = PEM_read_bio_X509(crt, NULL, 0, NULL)))
|
||||||
|
goto error_free_store;
|
||||||
|
if (!X509_STORE_add_cert(store, x))
|
||||||
|
goto error_free_store;
|
||||||
|
if (verify_p7sig(xml, p7s, store, "dnssec@iana.org")) {
|
||||||
|
DEBUG_ANCHOR("Verifying trust-anchors SUCCEEDED, Yay!\n");
|
||||||
|
;
|
||||||
|
} else {
|
||||||
|
DEBUG_ANCHOR("Verifying trust-anchors failed!\n");
|
||||||
|
;
|
||||||
|
}
|
||||||
|
error_free_store:
|
||||||
|
X509_STORE_free(store);
|
||||||
|
error_free_crt:
|
||||||
|
BIO_free(crt);
|
||||||
|
error_free_str:
|
||||||
|
free(crt_str);
|
||||||
|
error_free_xml:
|
||||||
|
BIO_free(xml);
|
||||||
|
BIO_free(p7s);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* anchor.c */
|
|
@ -0,0 +1,42 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* /brief functions for DNSSEC trust anchor management
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2017, NLnet Labs
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* * Neither the names of the copyright holders nor the
|
||||||
|
* names of its contributors may be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL Verisign, Inc. BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef ANCHOR_H_
|
||||||
|
#define ANCHOR_H_
|
||||||
|
|
||||||
|
#include "getdns/getdns.h"
|
||||||
|
|
||||||
|
void _getdns_context_equip_with_anchor(getdns_context *context);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
/* anchor.h */
|
|
@ -35,6 +35,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include "anchor.h"
|
||||||
|
|
||||||
#ifndef USE_WINSOCK
|
#ifndef USE_WINSOCK
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
@ -67,7 +68,6 @@ typedef unsigned short in_port_t;
|
||||||
#endif
|
#endif
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
#ifdef HAVE_LIBUNBOUND
|
#ifdef HAVE_LIBUNBOUND
|
||||||
#include <unbound.h>
|
#include <unbound.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -1429,6 +1429,8 @@ getdns_context_create_with_extended_memory_functions(
|
||||||
} else
|
} else
|
||||||
result->trust_anchors = result->trust_anchors_spc;
|
result->trust_anchors = result->trust_anchors_spc;
|
||||||
|
|
||||||
|
_getdns_context_equip_with_anchor(result);
|
||||||
|
|
||||||
result->upstreams = NULL;
|
result->upstreams = NULL;
|
||||||
|
|
||||||
result->edns_extended_rcode = 0;
|
result->edns_extended_rcode = 0;
|
||||||
|
|
|
@ -216,13 +216,10 @@ depend:
|
||||||
.PHONY: clean test
|
.PHONY: clean test
|
||||||
|
|
||||||
# Dependencies for the unit tests
|
# Dependencies for the unit tests
|
||||||
check_getdns.lo check_getdns.o: $(srcdir)/check_getdns.c \
|
check_getdns.lo check_getdns.o: $(srcdir)/check_getdns.c ../getdns/getdns.h $(srcdir)/check_getdns_common.h \
|
||||||
../getdns/getdns.h \
|
../getdns/getdns_extra.h $(srcdir)/check_getdns_address.h \
|
||||||
$(srcdir)/check_getdns_common.h \
|
$(srcdir)/check_getdns_address_sync.h $(srcdir)/check_getdns_cancel_callback.h \
|
||||||
../getdns/getdns_extra.h \
|
$(srcdir)/check_getdns_context_create.h $(srcdir)/check_getdns_context_destroy.h \
|
||||||
$(srcdir)/check_getdns_address.h $(srcdir)/check_getdns_address_sync.h \
|
|
||||||
$(srcdir)/check_getdns_cancel_callback.h $(srcdir)/check_getdns_context_create.h \
|
|
||||||
$(srcdir)/check_getdns_context_destroy.h \
|
|
||||||
$(srcdir)/check_getdns_context_set_context_update_callback.h \
|
$(srcdir)/check_getdns_context_set_context_update_callback.h \
|
||||||
$(srcdir)/check_getdns_context_set_dns_transport.h \
|
$(srcdir)/check_getdns_context_set_dns_transport.h \
|
||||||
$(srcdir)/check_getdns_context_set_timeout.h \
|
$(srcdir)/check_getdns_context_set_timeout.h \
|
||||||
|
@ -242,58 +239,34 @@ check_getdns.lo check_getdns.o: $(srcdir)/check_getdns.c \
|
||||||
$(srcdir)/check_getdns_list_get_list.h $(srcdir)/check_getdns_pretty_print_dict.h \
|
$(srcdir)/check_getdns_list_get_list.h $(srcdir)/check_getdns_pretty_print_dict.h \
|
||||||
$(srcdir)/check_getdns_service.h $(srcdir)/check_getdns_service_sync.h \
|
$(srcdir)/check_getdns_service.h $(srcdir)/check_getdns_service_sync.h \
|
||||||
$(srcdir)/check_getdns_transport.h
|
$(srcdir)/check_getdns_transport.h
|
||||||
check_getdns_common.lo check_getdns_common.o: $(srcdir)/check_getdns_common.c \
|
check_getdns_common.lo check_getdns_common.o: $(srcdir)/check_getdns_common.c ../getdns/getdns.h \
|
||||||
../getdns/getdns.h \
|
../config.h $(srcdir)/check_getdns_common.h ../getdns/getdns_extra.h \
|
||||||
../config.h \
|
|
||||||
$(srcdir)/check_getdns_common.h \
|
|
||||||
../getdns/getdns_extra.h \
|
|
||||||
$(srcdir)/check_getdns_eventloop.h
|
$(srcdir)/check_getdns_eventloop.h
|
||||||
check_getdns_context_set_timeout.lo check_getdns_context_set_timeout.o: $(srcdir)/check_getdns_context_set_timeout.c \
|
check_getdns_context_set_timeout.lo check_getdns_context_set_timeout.o: $(srcdir)/check_getdns_context_set_timeout.c \
|
||||||
$(srcdir)/check_getdns_context_set_timeout.h $(srcdir)/check_getdns_common.h \
|
$(srcdir)/check_getdns_context_set_timeout.h $(srcdir)/check_getdns_common.h \
|
||||||
../getdns/getdns.h \
|
../getdns/getdns.h ../getdns/getdns_extra.h
|
||||||
../getdns/getdns_extra.h
|
|
||||||
check_getdns_libev.lo check_getdns_libev.o: $(srcdir)/check_getdns_libev.c $(srcdir)/check_getdns_eventloop.h \
|
check_getdns_libev.lo check_getdns_libev.o: $(srcdir)/check_getdns_libev.c $(srcdir)/check_getdns_eventloop.h \
|
||||||
../config.h \
|
../config.h ../getdns/getdns.h $(srcdir)/../getdns/getdns_ext_libev.h \
|
||||||
../getdns/getdns.h \
|
../getdns/getdns_extra.h $(srcdir)/check_getdns_common.h
|
||||||
$(srcdir)/../getdns/getdns_ext_libev.h \
|
|
||||||
../getdns/getdns_extra.h \
|
|
||||||
$(srcdir)/check_getdns_common.h
|
|
||||||
check_getdns_libevent.lo check_getdns_libevent.o: $(srcdir)/check_getdns_libevent.c $(srcdir)/check_getdns_eventloop.h \
|
check_getdns_libevent.lo check_getdns_libevent.o: $(srcdir)/check_getdns_libevent.c $(srcdir)/check_getdns_eventloop.h \
|
||||||
../config.h \
|
../config.h ../getdns/getdns.h $(srcdir)/../getdns/getdns_ext_libevent.h \
|
||||||
../getdns/getdns.h \
|
../getdns/getdns_extra.h $(srcdir)/check_getdns_libevent.h $(srcdir)/check_getdns_common.h
|
||||||
$(srcdir)/../getdns/getdns_ext_libevent.h \
|
|
||||||
../getdns/getdns_extra.h \
|
|
||||||
$(srcdir)/check_getdns_libevent.h $(srcdir)/check_getdns_common.h
|
|
||||||
check_getdns_libuv.lo check_getdns_libuv.o: $(srcdir)/check_getdns_libuv.c $(srcdir)/check_getdns_eventloop.h \
|
check_getdns_libuv.lo check_getdns_libuv.o: $(srcdir)/check_getdns_libuv.c $(srcdir)/check_getdns_eventloop.h \
|
||||||
../config.h \
|
../config.h ../getdns/getdns.h $(srcdir)/../getdns/getdns_ext_libuv.h \
|
||||||
../getdns/getdns.h \
|
../getdns/getdns_extra.h $(srcdir)/check_getdns_common.h
|
||||||
$(srcdir)/../getdns/getdns_ext_libuv.h \
|
|
||||||
../getdns/getdns_extra.h \
|
|
||||||
$(srcdir)/check_getdns_common.h
|
|
||||||
check_getdns_selectloop.lo check_getdns_selectloop.o: $(srcdir)/check_getdns_selectloop.c \
|
check_getdns_selectloop.lo check_getdns_selectloop.o: $(srcdir)/check_getdns_selectloop.c \
|
||||||
$(srcdir)/check_getdns_eventloop.h \
|
$(srcdir)/check_getdns_eventloop.h ../config.h ../getdns/getdns.h \
|
||||||
../config.h \
|
|
||||||
../getdns/getdns.h \
|
|
||||||
../getdns/getdns_extra.h
|
../getdns/getdns_extra.h
|
||||||
check_getdns_transport.lo check_getdns_transport.o: $(srcdir)/check_getdns_transport.c \
|
check_getdns_transport.lo check_getdns_transport.o: $(srcdir)/check_getdns_transport.c \
|
||||||
$(srcdir)/check_getdns_transport.h $(srcdir)/check_getdns_common.h \
|
$(srcdir)/check_getdns_transport.h $(srcdir)/check_getdns_common.h ../getdns/getdns.h \
|
||||||
../getdns/getdns.h \
|
|
||||||
../getdns/getdns_extra.h
|
../getdns/getdns_extra.h
|
||||||
scratchpad.template.lo scratchpad.template.o: scratchpad.template.c \
|
scratchpad.template.lo scratchpad.template.o: scratchpad.template.c ../getdns/getdns.h \
|
||||||
../getdns/getdns.h \
|
|
||||||
../getdns/getdns_extra.h
|
../getdns/getdns_extra.h
|
||||||
testmessages.lo testmessages.o: $(srcdir)/testmessages.c $(srcdir)/testmessages.h
|
testmessages.lo testmessages.o: $(srcdir)/testmessages.c $(srcdir)/testmessages.h
|
||||||
tests_dict.lo tests_dict.o: $(srcdir)/tests_dict.c $(srcdir)/testmessages.h \
|
tests_dict.lo tests_dict.o: $(srcdir)/tests_dict.c $(srcdir)/testmessages.h ../getdns/getdns.h
|
||||||
../getdns/getdns.h
|
tests_list.lo tests_list.o: $(srcdir)/tests_list.c $(srcdir)/testmessages.h ../getdns/getdns.h
|
||||||
tests_list.lo tests_list.o: $(srcdir)/tests_list.c $(srcdir)/testmessages.h \
|
tests_namespaces.lo tests_namespaces.o: $(srcdir)/tests_namespaces.c $(srcdir)/testmessages.h ../getdns/getdns.h
|
||||||
../getdns/getdns.h
|
tests_stub_async.lo tests_stub_async.o: $(srcdir)/tests_stub_async.c ../config.h $(srcdir)/testmessages.h \
|
||||||
tests_namespaces.lo tests_namespaces.o: $(srcdir)/tests_namespaces.c $(srcdir)/testmessages.h \
|
../getdns/getdns.h ../getdns/getdns_extra.h
|
||||||
../getdns/getdns.h
|
tests_stub_sync.lo tests_stub_sync.o: $(srcdir)/tests_stub_sync.c $(srcdir)/testmessages.h ../getdns/getdns.h \
|
||||||
tests_stub_async.lo tests_stub_async.o: $(srcdir)/tests_stub_async.c \
|
|
||||||
../config.h \
|
|
||||||
$(srcdir)/testmessages.h \
|
|
||||||
../getdns/getdns.h \
|
|
||||||
../getdns/getdns_extra.h
|
|
||||||
tests_stub_sync.lo tests_stub_sync.o: $(srcdir)/tests_stub_sync.c $(srcdir)/testmessages.h \
|
|
||||||
../getdns/getdns.h \
|
|
||||||
../getdns/getdns_extra.h
|
../getdns/getdns_extra.h
|
||||||
|
|
|
@ -113,8 +113,5 @@ depend:
|
||||||
.PHONY: clean test
|
.PHONY: clean test
|
||||||
|
|
||||||
# Dependencies for getdns_query
|
# Dependencies for getdns_query
|
||||||
getdns_query.lo getdns_query.o: $(srcdir)/getdns_query.c \
|
getdns_query.lo getdns_query.o: $(srcdir)/getdns_query.c ../config.h $(srcdir)/../debug.h ../config.h \
|
||||||
../config.h \
|
../getdns/getdns.h ../getdns/getdns_extra.h
|
||||||
$(srcdir)/../debug.h \
|
|
||||||
../getdns/getdns.h \
|
|
||||||
../getdns/getdns_extra.h
|
|
||||||
|
|
Loading…
Reference in New Issue