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