From 982105f1ce85c92482def1d66f1f44e438ae5ab6 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 28 Nov 2011 18:11:59 +0100 Subject: Use separate test module for dns-cert.c. * dns-cert.c (get_dns_cert): Factor test code out to ... * t-dns-cert.c: new file. --- common/ChangeLog | 5 +++ common/Makefile.am | 3 +- common/dns-cert.c | 62 ++--------------------------------- common/dns-cert.h | 2 +- common/t-dns-cert.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 103 insertions(+), 62 deletions(-) create mode 100644 common/t-dns-cert.c diff --git a/common/ChangeLog b/common/ChangeLog index 54435f4b9..dd7ef5398 100644 --- a/common/ChangeLog +++ b/common/ChangeLog @@ -1,3 +1,8 @@ +2011-11-28 Werner Koch + + * dns-cert.c (get_dns_cert): Factor test code out to ... + * t-dns-cert.c: new file. + 2011-10-24 Werner Koch * dotlock.h, dotlock.c: Add alternative to allow distribution of diff --git a/common/Makefile.am b/common/Makefile.am index 555d0881d..7821e0442 100644 --- a/common/Makefile.am +++ b/common/Makefile.am @@ -162,7 +162,7 @@ if HAVE_W32_SYSTEM jnlib_tests += t-w32-reg endif module_tests = t-convert t-percent t-gettime t-sysutils t-sexputil \ - t-session-env t-openpgp-oid t-ssh-utils + t-session-env t-openpgp-oid t-ssh-utils t-dns-cert if !HAVE_W32CE_SYSTEM module_tests += t-exechelp endif @@ -196,3 +196,4 @@ t_exechelp_LDADD = $(t_common_ldadd) t_session_env_LDADD = $(t_common_ldadd) t_openpgp_oid_LDADD = $(t_common_ldadd) t_ssh_utils_LDADD = $(t_common_ldadd) +t_dns_cert_LDADD = $(t_common_ldadd) $(DNSLIBS) diff --git a/common/dns-cert.c b/common/dns-cert.c index 888ffb7b1..db1c7be39 100644 --- a/common/dns-cert.c +++ b/common/dns-cert.c @@ -46,13 +46,13 @@ #define T_CERT 37 #endif -/* ADNS has no support for CERT yes. */ +/* ADNS has no support for CERT yet. */ #define my_adns_r_cert 37 /* Returns -1 on error, 0 for no answer, 1 for PGP provided and 2 for - IPGP provided. Note that this fucntion retruns the first CERT + IPGP provided. Note that this function retruns the first CERT found with a supported type; it is expected that only one CERT record is used. */ int @@ -289,61 +289,3 @@ get_dns_cert (const char *name, size_t max_size, IOBUF *iobuf, return -1; #endif } - - - -/* Test with simon.josefsson.org */ - -#ifdef TEST -int -main(int argc,char *argv[]) -{ - unsigned char *fpr; - size_t fpr_len; - char *url; - int rc; - IOBUF iobuf; - - if(argc!=2) - { - printf("cert-test [name]\n"); - return 1; - } - - printf("CERT lookup on %s\n",argv[1]); - - rc=get_dns_cert (argv[1],16384,&iobuf,&fpr,&fpr_len,&url); - if(rc==-1) - printf("error\n"); - else if(rc==0) - printf("no answer\n"); - else if(rc==1) - { - printf("key found: %d bytes\n",(int)iobuf_get_temp_length(iobuf)); - iobuf_close(iobuf); - } - else if(rc==2) - { - if(fpr) - { - size_t i; - printf("Fingerprint found (%d bytes): ",(int)fpr_len); - for(i=0;i. + */ + +#include +#include +#include +#include + +#include "util.h" +#include "iobuf.h" +#include "dns-cert.h" + + +int +main (int argc, char **argv) +{ + unsigned char *fpr; + size_t fpr_len; + char *url; + int rc; + iobuf_t iobuf; + char const *name; + + if (argc) + { + argc--; + argv++; + } + + if (!argc) + name = "simon.josefsson.org"; + else if (argc == 1) + name = *argv; + else + { + fputs ("usage: t-dns-cert [name]\n", stderr); + return 1; + } + + printf ("CERT lookup on `%s'\n", name); + + rc = get_dns_cert (name, 16384, &iobuf, &fpr, &fpr_len, &url); + if (rc == -1) + fputs ("lookup result: error\n", stdout); + else if (!rc) + fputs ("lookup result: no answer\n", stdout); + else if (rc == 1) + { + printf ("lookup result: %d bytes\n", + (int)iobuf_get_temp_length(iobuf)); + iobuf_close (iobuf); + } + else if (rc == 2) + { + if (fpr) + { + int i; + + printf ("Fingerprint found (%d bytes): ", (int)fpr_len); + for (i = 0; i < fpr_len; i++) + printf ("%02X", fpr[i]); + putchar ('\n'); + } + else + printf ("No fingerprint found\n"); + + if (url) + printf ("URL found: %s\n", url); + else + printf ("No URL found\n"); + + xfree (fpr); + xfree (url); + } + + return 0; +} -- cgit v1.2.3