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