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