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