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