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