* configure.ac: New option --disable-finger.
[gnupg.git] / keyserver / ChangeLog
1 2004-10-11  Werner Koch  <wk@g10code.com>
2
3         * gpgkeys_finger.c: New.
4
5 2004-08-27  Stefan Bellon  <sbellon@sbellon.de>
6
7         * gpgkeys_hkp.c (search_key): Fix the prior faulty fix by
8         introducing a cast but leaving skey unsigned.
9
10         * gpgkeys_hkp.c (search_key): Change type of variable skey from
11         unsigned char* to char* to fix type incompatibility.
12
13 2004-08-23  David Shaw  <dshaw@jabberwocky.com>
14
15         * gpgkeys_ldap.c (get_key, search_key), gpgkeys_hkp.c (get_key,
16         search_key), gpgkeys_http.c (get_key): Do not give informational
17         logs since this is now done inside gpg.
18
19         * gpgkeys_hkp.c (dehtmlize): Understand the quote character
20         (i.e. "&quot;") in HTML responses.
21         (search_key): Search key must be unsigned for url encoder to work
22         properly for 8-bit values.
23
24         * gpgkeys_ldap.c (get_key): Factor out informational display into
25         new function build_info().
26
27         * gpgkeys_ldap.c (build_attrs): Properly terminate user ID strings
28         that got shrunk due to encoding.
29
30 2004-08-22  David Shaw  <dshaw@jabberwocky.com>
31
32         * gpgkeys_ldap.c (find_basekeyspacedn): Use LDAP_SCOPE_BASE along
33         with a full DN rather than LDAP_SCOPE_ONELEVEL plus a filter to
34         find the pgpServerInfo object.  Some LDAP setups don't like the
35         search.
36         (main): Stop binding to the server since it seems no server really
37         requires it, and some require it not be there.
38
39 2004-07-29  David Shaw  <dshaw@jabberwocky.com>
40
41         * gpgkeys_ldap.c (main): Add "debug" option.  This is only really
42         useful with OpenLDAP, but it's practically vital to debug SSL and
43         TLS setups.  Add "basedn" option.  This allows users to override
44         the autodetection for base DN.  SSL overrides TLS, so TLS will not
45         be started on SSL connections (starting an already started car).
46
47 2004-07-28  David Shaw  <dshaw@jabberwocky.com>
48
49         * gpgkeys_ldap.c (build_attrs): Add "pgpKeySize" and "pgpSubKeyID"
50         attributes so we can do subkey searches.
51
52         * gpgkeys_ldap.c (main): Under certain error conditions, we might
53         try and unbind twice.  Don't.
54
55         * gpgkeys_ldap.c (join_two_modlists): New.
56         (send_key): Use new function so we can try a modify operation
57         first, and fail over to an add if that fails.  Add cannot cope
58         with the NULLs at the head of the modify request, so we jump into
59         the list in the middle.
60
61 2004-07-27  David Shaw  <dshaw@jabberwocky.com>
62
63         * gpgkeys_ldap.c (main): Don't try and error out before making a
64         ldaps connection to the NAI keyserver since we cannot tell if it
65         is a NAI keyserver until we connect.  Fail if we cannot find a
66         base keyspace DN.  Fix a false success message for TLS being
67         enabled.
68
69 2004-07-20  Werner Koch  <wk@gnupg.org>
70
71         * gpgkeys_ldap.c [_WIN32]: Include Windows specific header files.
72         Suggested by Brian Gladman.
73
74 2004-05-26  David Shaw  <dshaw@jabberwocky.com>
75
76         * gpgkeys_http.c: General polish and removal of leftover stuff
77         from gpgkeys_hkp.c.
78
79 2004-05-21  David Shaw  <dshaw@jabberwocky.com>
80
81         * gpgkeys_http.c (get_key): Cosmetic fix - make sure that URLs
82         with no path use a path of "/".
83
84         * gpgkeys_ldap.c (ldap2epochtime): We can always rely on timegm()
85         being available now, since it's a replacement function.
86
87 2004-05-20  David Shaw  <dshaw@jabberwocky.com>
88
89         * gpgkeys_http.c: New program to do a simple HTTP file fetch using
90         the keyserver interface.
91
92         * Makefile.am: Build it.
93
94 2004-02-28  David Shaw  <dshaw@jabberwocky.com>
95
96         * Makefile.am: Don't split LDADD across two lines since some make
97         programs can't handle blank lines after a \ continuation.  Noted
98         by Christoph Moench-Tegeder.
99
100 2004-02-25  David Shaw  <dshaw@jabberwocky.com>
101
102         * gpgkeys_ldap.c (send_key): List pgpCertID as one of the deleted
103         attributes.  This guarantees that if something goes wrong, we
104         won't be able to complete the transaction, thus leaving any key
105         already existing on the server intact.
106
107 2004-02-23  David Shaw  <dshaw@jabberwocky.com>
108
109         * gpgkeys_ldap.c (delete_one_attr): Removed.
110         (make_one_attr): Delete functionality added.  Optional deduping
111         functionality added (currently only used for pgpSignerID).
112         (build_attrs): Translate sig entries into pgpSignerID.  Properly
113         build the timestamp for pgpKeyCreateTime and pgpKeyExpireTime.
114
115 2004-02-22  David Shaw  <dshaw@jabberwocky.com>
116
117         * gpgkeys_ldap.c (delete_one_attr): New function to replace
118         attributes with NULL (a "delete" that works even for nonexistant
119         attributes).
120         (send_key): Use it here to remove attributes so a modify operation
121         starts with a clean playing field.  Bias sends to modify before
122         add, since (I suspect) people update their existing keys more
123         often than they make and send new keys to the server.
124
125 2004-02-21  David Shaw  <dshaw@jabberwocky.com>
126
127         * gpgkeys_ldap.c (epoch2ldaptime): New.  Converse of
128         ldap2epochtime.
129         (make_one_attr): New. Build a modification list in memory to send
130         to the LDAP server.
131         (build_attrs): New. Parse INFO lines sent over by gpg.
132         (free_mod_values): New.  Unwinds a modification list.
133         (send_key_keyserver): Renamed from old send_key().
134         (send_key): New function to send a key to a LDAP server.
135         (main): Use send_key() for real LDAP servers, send_key_keyserver()
136         otherwise.
137
138 2004-02-20  David Shaw  <dshaw@jabberwocky.com>
139
140         * gpgkeys_ldap.c: Replacement prototypes for setenv and unsetenv.
141         (search_key): Catch a SIZELIMIT_EXCEEDED error and show the user
142         whatever the server did give us.
143         (find_basekeyspacedn): There is no guarantee that namingContexts
144         will be readable.
145
146         * Makefile.am: Link gpgkeys_ldap with libutil.a to get the
147         replacement functions (and eventually translations, etc).
148
149 2004-02-19  David Shaw  <dshaw@jabberwocky.com>
150
151         * gpgkeys_ldap.c (ldap2epochtime): LDAP timestamps are UTC, so do
152         not correct for timezones.
153         (main): Find the basekeyspacedn before we try to start TLS, so we
154         can give a better error message when a user tries to use TLS with
155         a LDAP keyserver.
156
157         * Makefile.am: Add automake conditionals to symlink gpgkeys_ldaps
158         to gpgkeys_ldap when needed.
159
160         * gpgkeys_ldap.c (main): Add support for LDAPS and TLS
161         connections.  These are only useful and usable when talking to
162         real LDAP keyservers.  Add new "tls" option to tune TLS use from
163         off, to try quietly, to try loudly, or to require TLS.
164
165         * gpgkeys_ldap.c (find_basekeyspacedn): New function to figure out
166         what kind of LDAP server we're talking to (either real LDAP or the
167         LDAP keyserver), and return the baseKeySpaceDN to find keys under.
168         (main): Call it from here, and remove the old code that only
169         handled the LDAP keyserver.
170
171 2004-02-18  David Shaw  <dshaw@jabberwocky.com>
172
173         * gpgkeys_ldap.c (ldap_to_gpg_err): Make sure that
174         LDAP_OPT_ERROR_NUMBER is defined before we use it.
175
176         * gpgkeys_mailto.in: Fix VERSION number.
177
178 2004-01-13  Werner Koch  <wk@gnupg.org>
179
180         * gpgkeys_hkp.c (send_key): Add a content type.
181
182 2004-01-11  David Shaw  <dshaw@jabberwocky.com>
183
184         * gpgkeys_hkp.c (search_key): Catch a mangled input file (useful
185         if something other than GnuPG is calling the program).
186         (main): Avoid possible pre-string write.  Noted by Christian
187         Biere.
188
189         * gpgkeys_ldap.c (main): Avoid possible pre-string write.
190
191 2003-12-28  David Shaw  <dshaw@jabberwocky.com>
192
193         * gpgkeys_hkp.c (send_key, get_key, main): Work with new HTTP code
194         that passes the proxy in from the outside.  If the command file
195         sends a proxy, use it.  If it sends "http-proxy" with no
196         arguments, use $http_proxy from the environment.  Suggested by
197         Christian Biere.
198
199 2003-12-28  Stefan Bellon  <sbellon@sbellon.de>
200
201         * gpgkeys_hkp.c, gpgkeys_ldap.c [__riscos__]: Removal of
202         unnecessary #ifdef __riscos__ sections.
203
204 2003-11-27  Werner Koch  <wk@gnupg.org>
205
206         * gpgkeys_hkp.c (get_key): Fixed invalid use of fprintf without
207         format string.
208
209 2003-10-25  Werner Koch  <wk@gnupg.org>
210
211         * Makefile.am (gpgkeys_hkp_LDADD): Replaced INTLLIBS by LIBINTL.
212
213 2003-07-10  David Shaw  <dshaw@jabberwocky.com>
214
215         * Makefile.am: Use W32LIBS where appropriate.
216
217 2003-05-30  David Shaw  <dshaw@jabberwocky.com>
218
219         * gpgkeys_hkp.c, gpgkeys_ldap.c: #include <getopt.h> if it is
220         available.  Also include extern references for optarg and optind
221         since there is no guarantee that any header file will include
222         them.  Standards?  We don't need no stinkin' standards.
223
224         * Makefile.am: Use @GETOPT@ to pull in libiberty on those
225         platforms that need it.
226
227 2003-04-08  David Shaw  <dshaw@jabberwocky.com>
228
229         * gpgkeys_hkp.c (dehtmlize, parse_hkp_index): Fix memory
230         corruption bug on some platforms.
231
232 2003-03-11  David Shaw  <dshaw@jabberwocky.com>
233
234         * gpgkeys_hkp.c (get_key): Properly handle CRLF line endings in
235         the armored key.
236         (main): Accept "try-dns-srv" option.
237
238         * Makefile.am: Use @CAPLIBS@ to link in -lcap if we are using
239         capabilities.  Use @SRVLIBS@ to link in the resolver if we are
240         using DNS SRV.
241
242 2003-02-11  David Shaw  <dshaw@jabberwocky.com>
243
244         * Makefile.am: Use a local copy of libexecdir along with @PACKAGE@
245         so it can be easily overridden at make time.
246
247 2003-01-29  David Shaw  <dshaw@jabberwocky.com>
248
249         * gpgkeys_mailto.in: Fix regexp to work properly if the "keyid" is
250         not a keyid, but rather a text string from the user ID.
251
252 2003-01-06  David Shaw  <dshaw@jabberwocky.com>
253
254         * gpgkeys_hkp.c (get_key): Use options=mr when getting a key so
255         keyserver doesn't attach the HTML header which we will just have
256         to discard.
257
258 2002-11-17  David Shaw  <dshaw@jabberwocky.com>
259
260         * gpgkeys_ldap.c (main), gpgkeys_hkp.c (main): Use new keyserver
261         protocol version.
262
263 2002-11-14  David Shaw  <dshaw@jabberwocky.com>
264
265         * gpgkeys_ldap.c (get_key): The deduping code requires
266         "pgpcertid", but that was not available when running without
267         verbose on.  Noted by Stefan.
268
269 2002-11-10  David Shaw  <dshaw@jabberwocky.com>
270
271         * gpgkeys_ldap.c (get_key): Fix typo in deduping code.
272
273 2002-11-05  David Shaw  <dshaw@jabberwocky.com>
274
275         * gpgkeys_ldap.c (key_in_keylist, add_key_to_keylist,
276         free_keylist, get_key, search_key): The LDAP keyserver doesn't
277         remove duplicates, so remove them locally.  Do not include the key
278         modification time in the search response.
279
280 2002-11-04  David Shaw  <dshaw@jabberwocky.com>
281
282         * gpgkeys_hkp.c (send_key), gpgkeys_ldap.c (send_key): Properly
283         handle an input file that does not include any key data at all.
284
285 2002-10-24  David Shaw  <dshaw@jabberwocky.com>
286
287         * gpgkeys_hkp.c (main), gpgkeys_ldap.c (main): Add -V flag to
288         output protocol and program version.
289
290 2002-10-21  David Shaw  <dshaw@jabberwocky.com>
291
292         * Makefile.am: Anything linking with libutil.a needs INTLLIBS as
293         well on platforms where INTLLIBS is set.
294
295 2002-10-14  David Shaw  <dshaw@jabberwocky.com>
296
297         * gpgkeys_hkp.c (write_quoted): Use %-encoding instead of
298         \-encoding.
299         (parse_hkp_index): Use new keyserver key listing format, and add
300         support for disabled keys via include-disabled.
301
302         * gpgkeys_ldap.c (get_key): Don't print keysize unless it's >0.
303         (printquoted): Use %-encoding instead of \-encoding.
304         (search_key): Use new keyserver key listing format.
305
306 2002-10-08  David Shaw  <dshaw@jabberwocky.com>
307
308         * gpgkeys_ldap.c (search_key, main): Make sure LDAP values are
309         freed in case of error.
310
311         * gpgkeys_ldap.c (fail_all): New function to unwind a keylist and
312         error each item.
313         (main): Call fail_all from here, as needed.  Also add a NO_MEMORY
314         error in an appropriate place and fix error return code.
315         (ldap_err_to_gpg_err): Add KEYSERVER_UNREACHABLE.
316
317         * gpgkeys_hkp.c (fail_all): New function to unwind a keylist and
318         error each item.
319         (main): Call fail_all from here.  Also add a NO_MEMORY error in an
320         appropriate place.
321         (get_key): Use new UNREACHABLE error for network errors.
322
323 2002-09-26  Werner Koch  <wk@gnupg.org>
324
325         * gpgkeys_ldap.c (send_key): Removed non-constant initializers.
326
327 2002-09-24  David Shaw  <dshaw@jabberwocky.com>
328
329         * gpgkeys_ldap.c (ldap_err_to_gpg_err, ldap_to_gpg_err, send_key,
330         get_key, search_key, main): Some minor error reporting
331         enhancements for use with GPA (show reasons for KEY FAILED).
332
333         * gpgkeys_hkp.c (send_key, get_key, search_key, main): Some minor
334         error reporting enhancements for use with GPA (show reasons for
335         KEY FAILED).
336
337 2002-09-20  Werner Koch  <wk@gnupg.org>
338
339         * gpgkeys_hkp.c (handle_old_hkp_index): s/input/inp/ to avoid
340         shadowing warning.
341
342 2002-09-19  David Shaw  <dshaw@jabberwocky.com>
343
344         * gpgkeys_hkp.c (get_key, handle_old_hkp_index, search_key):
345         Properly handle line truncation.
346
347 2002-09-16  David Shaw  <dshaw@jabberwocky.com>
348
349         * gpgkeys_mailto.in: Add quasi-RFC-2368 mailto:email@addr?from=
350         syntax so people can set their own email address to respond to.
351
352         * gpgkeys_hkp.c (get_key): Properly respond with KEY FAILED (to
353         gpg) and "key not found" (to user) on failure.
354
355 2002-09-13  David Shaw  <dshaw@jabberwocky.com>
356
357         * gpgkeys_hkp.c: (search_key, handle_old_hkp_index): Try and
358         request a machine-readable key index.  If the server supports
359         this, pass it through.  If the server does not support it, parse
360         the "index" page.
361
362 2002-09-12  Stefan Bellon  <sbellon@sbellon.de>
363
364         * gpgkeys_hkp.c: Tidied up RISC OS initializations.
365
366 2002-09-12  David Shaw  <dshaw@jabberwocky.com>
367
368         * gpgkeys_hkp.c (main): Remove warning - this is no longer
369         experimental code.
370
371 2002-09-09  Werner Koch  <wk@gnupg.org>
372
373         * gpgkeys_hkp.c (send_key, get_key, search_key): Check return
374         value of malloc.
375         (dehtmlize): Use ascii_tolower to protect against weird locales.
376         Cast the argument for isspace for the sake of broken HP/UXes.
377         (search_key): Check return value of realloc.
378
379 2002-09-09  David Shaw  <dshaw@jabberwocky.com>
380
381         * gpgkeys_ldap.c (get_key): Some compilers (RISC OS, HPUX c89)
382         don't like using variables as array initializers.
383
384         * gpgkeys_hkp.c (send_key): Use CRLF in headers.
385
386 2002-08-28  David Shaw  <dshaw@jabberwocky.com>
387
388         * gpgkeys_hkp.c (parse_hkp_index): Use same types on all
389         platforms.  This was probably leftover from earlier code where the
390         typing mattered.
391
392         * gpgkeys_hkp.c: Overall cleanup from iobuf conversion.  Be
393         consistent in m_alloc and malloc usage.  Remove include-disabled
394         (meaningless on HKP).  RISC OS tweak.
395
396 2002-08-27  David Shaw  <dshaw@jabberwocky.com>
397
398         * gpgkeys_hkp.c, Makefile.am: Convert over to using iobufs.
399
400         * gpgkeys_hkp.c (http_get, http_post): Use CRLF for line endings.
401
402         * gpgkeys_hkp.c: Include util.h on RISC OS as per Stefan.  Include
403         a replacement for hstrerror() for those platforms (such as RISC
404         OS) that don't have it.
405
406 2002-08-26  David Shaw  <dshaw@jabberwocky.com>
407
408         * Makefile.am: May as well include gpgkeys_hkp.c in the
409         distribution now.  It works well enough without proxies, and isn't
410         built by default.  It would be good to get some test experience
411         with it.
412
413         * gpgkeys_hkp.c (main): Don't warn about include-subkeys - it
414         isn't unsupported, it's actually non-meaningful in the context of
415         HKP (yet).
416
417         * gpgkeys_hkp.c (parse_hkp_index, dehtmlize): Move HTML
418         functionality into new "dehtmlize" function.  Remove HTML before
419         trying to parse each line from the keyserver.  If the keyserver
420         provides key type information in the listing, use it.  (Copy over
421         from g10/hkp.c).
422
423 2002-08-19  David Shaw  <dshaw@jabberwocky.com>
424
425         * gpgkeys_hkp.c (get_key, parse_hkp_index): Bring over latest code
426         from g10/hkp.c.
427
428         * gpgkeys_ldap.c (get_key): Fix cosmetic URL display problem
429         (extra ":" at the end).
430
431 2002-08-03  Stefan Bellon  <sbellon@sbellon.de>
432
433         * gpgkeys_ldap.c: Tidied up RISC OS initializations.
434
435 2002-07-25  David Shaw  <dshaw@jabberwocky.com>
436
437         * gpgkeys_hkp.c: "Warning" -> "WARNING"
438
439 2002-07-24  David Shaw  <dshaw@jabberwocky.com>
440
441         * Makefile.am: Install keyserver helpers in @GNUPG_LIBEXECDIR@
442
443 2002-07-15  David Shaw  <dshaw@jabberwocky.com>
444
445         * gpgkeys_ldap.c (send_key, get_key, main): Consult the server
446         version string to determine whether to use pgpKey or pgpKeyV2.
447
448 2002-07-09  David Shaw  <dshaw@jabberwocky.com>
449
450         * gpgkeys_mailto.in: Use new OPAQUE tag for non net-path URIs.
451         Fail more elegantly if there is no email address to send to.  Show
452         the GnuPG version in the message body.
453
454 2002-07-04  David Shaw  <dshaw@jabberwocky.com>
455
456         * gpgkeys_ldap.c (get_key), gpgkeys_hkp.c (get_key): Display
457         keyserver URI as a URI, but only if verbose.
458
459 2002-07-01  David Shaw  <dshaw@jabberwocky.com>
460
461         * gpgkeys_hkp.c (parse_hkp_index): Error if the keyserver returns
462         an unparseable HKP response.
463
464         * gpgkeys_hkp.c (main): Warn on honor-http-proxy,
465         broken-http-proxy, and include-subkeys (not supported yet).
466
467         * gpgkeys_ldap.c (main), gpgkeys_hkp.c (http_connect, main): Fix
468         some shadowing warnings.
469
470 2002-06-11  David Shaw  <dshaw@jabberwocky.com>
471
472         * Makefile.am: Don't hard-code the LDAP libraries - get them from
473         LDAPLIBS via configure.  Also, gpgkeys_hkp is a program, not a
474         script.
475
476 2002-06-10  David Shaw  <dshaw@jabberwocky.com>
477
478         * gpgkeys_ldap.c (include_subkeys): Default "include-subkeys" to
479         off, since GnuPG now defaults it to on.
480
481 2002-06-06  David Shaw  <dshaw@jabberwocky.com>
482
483         * gpgkeys_hkp.c (parse_hkp_index): Type tweaks.
484
485         * gpgkeys_hkp.c (main): Add experimental code warning.
486
487 2002-06-05  David Shaw  <dshaw@jabberwocky.com>
488
489         * Makefile.am, gpgkeys_hkp.c (new): Experimental HKP keyserver
490         interface.
491
492 2002-05-08  David Shaw  <dshaw@jabberwocky.com>
493
494         * gpgkeys_ldap.c: Include <lber.h> if we absolutely must.  This
495         helps when compiling against a very old OpenLDAP.
496
497 2002-04-29  David Shaw  <dshaw@jabberwocky.com>
498
499         * gpgkeys_mailto.in: Properly handle key requests in full
500         fingerprint form.
501
502 2002-03-29  David Shaw  <dshaw@jabberwocky.com>
503
504         * gpgkeys_ldap.c (printquoted): Quote backslashes within keyserver
505         search responses.
506
507 2002-02-25  David Shaw  <dshaw@jabberwocky.com>
508
509         * gpgkeys_ldap (get_key): LDAP keyservers do not support v3
510         fingerprints, so error out if someone tries.  Actually, they don't
511         support any fingerprints, but at least we can calculate a keyid
512         from a v4 fingerprint.
513
514 2002-02-23  David Shaw  <dshaw@jabberwocky.com>
515
516         * gpgkeys_ldap: Clarify the notion of a partial failure.  This is
517         possible if more than one key is being handled in a batch, and one
518         fails while the other succeeds.  Note that a search that comes up
519         with no results is not a failure - that is a valid response of "no
520         answer".
521
522         * gpgkeys_ldap.c (get_key): Allow GnuPG to send us full v4
523         fingerprints, long key ids, or short key ids while fetching.
524         Since the LDAP server doesn't actually handle fingerprints, chop
525         them down to long key ids for actual use.
526
527         * gpgkeys_ldap.c (main, get_key): When searching for a keyid,
528         search for subkeys as well as primary keys.  This is mostly
529         significant when automatically fetching the key based on the id in
530         a header (i.e. "signature made by....").  "no-include-subkeys"
531         disables.
532
533 2002-02-14  David Shaw  <dshaw@jabberwocky.com>
534
535         * gpgkeys_ldap.c: Fix compiler warning.
536
537         * gpgkeys_ldap.c: Be much more robust with mangled input files.
538
539 2001-12-28  David Shaw  <dshaw@jabberwocky.com>
540
541         * gpgkeys_mailto.in: Use the new OUTOFBAND indicator so gpg knows
542         not to try and import anything.  Also turn on perl -w for
543         warnings.
544
545         * gpgkeys_ldap.c (main): If we're using temp files (rather than
546         stdin/stdout), make sure the file is closed when we're done.
547
548 2001-12-20  David Shaw  <dshaw@jabberwocky.com>
549
550         * Properly free the LDAP response when we're done with it.
551
552         * Now that we handle multiple keys, we must remove duplicates as
553         the LDAP keyserver returns keys with multiple user IDs multiple
554         times.
555
556         * Properly handle multiple keys with the same key ID (it's really
557         rare, so fetch "0xDEADBEEF" to test this).
558
559 2001-12-17  David Shaw  <dshaw@jabberwocky.com>
560
561         * gpgkeys_ldap.c, gpgkeys_mailto.in: Fix GNU capitalization
562         issues.  Prefix log messages with "gpgkeys" to clarify which
563         program is generating them.
564
565 2001-12-14  David Shaw  <dshaw@jabberwocky.com>
566
567         * gpgkeys_ldap.c (search_key): Use unsigned int rather than uint
568         for portability.
569
570 2001-12-04  David Shaw  <dshaw@jabberwocky.com>
571
572         * Initial version of gpgkeys_ldap (LDAP keyserver helper) and
573         gpgkeys_mailto (email keyserver helper)
574
575
576  Copyright 1998, 1999, 2000, 2001, 2002, 2003,
577            2004 Free Software Foundation, Inc.
578
579  This file is free software; as a special exception the author gives
580  unlimited permission to copy and/or distribute it, with or without
581  modifications, as long as this notice is preserved.
582
583  This file is distributed in the hope that it will be useful, but
584  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
585  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.