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