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