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