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