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