dirmngr: Rename file dns-cert.c.
[gnupg.git] / dirmngr / t-dns-stuff.c
1 /* t-dns-cert.c - Module test for dns-stuff.c
2  * Copyright (C) 2011 Free Software Foundation, Inc.
3  * Copyright (C) 2011, 2015 Werner Koch
4  *
5  * This file is part of GnuPG.
6  *
7  * GnuPG is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * GnuPG is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, see <http://www.gnu.org/licenses/>.
19  */
20
21 #include <config.h>
22 #include <stdio.h>
23 #include <stdlib.h>
24 #include <assert.h>
25
26 #include "util.h"
27 #include "dns-stuff.h"
28
29
30 int
31 main (int argc, char **argv)
32 {
33   gpg_error_t err;
34   unsigned char *fpr;
35   size_t fpr_len;
36   char *url;
37   void *key;
38   size_t keylen;
39   char const *name;
40
41   if (argc)
42     {
43       argc--;
44       argv++;
45     }
46
47   if (!argc)
48     name = "simon.josefsson.org";
49   else if (argc == 1)
50     name = *argv;
51   else
52     {
53       fputs ("usage: t-dns-stuff [name]\n", stderr);
54       return 1;
55     }
56
57   printf ("CERT lookup on '%s'\n", name);
58
59   err = get_dns_cert (name, DNS_CERTTYPE_ANY, &key, &keylen,
60                       &fpr, &fpr_len, &url);
61   if (err)
62     printf ("get_dns_cert failed: %s <%s>\n",
63             gpg_strerror (err), gpg_strsource (err));
64   else if (key)
65     {
66       printf ("Key found (%u bytes)\n", (unsigned int)keylen);
67     }
68   else
69     {
70       if (fpr)
71         {
72           int i;
73
74           printf ("Fingerprint found (%d bytes): ", (int)fpr_len);
75           for (i = 0; i < fpr_len; i++)
76             printf ("%02X", fpr[i]);
77           putchar ('\n');
78         }
79       else
80         printf ("No fingerprint found\n");
81
82       if (url)
83         printf ("URL found: %s\n", url);
84       else
85         printf ("No URL found\n");
86
87     }
88
89   xfree (key);
90   xfree (fpr);
91   xfree (url);
92
93   return 0;
94 }