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.
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
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
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
56 2006-09-19 Werner Koch <wk@g10code.com>
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
79 * curl-shim.c (curl_easy_perform): Add missing http_close to the
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
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
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
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
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
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
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
198 (classify_ks_search): Mimic the gpg search modes instead with *,
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
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
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
245 * Makefile.am: Don't need -DFAKE_CURL any longer since it's in
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
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
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
298 2005-05-04 David Shaw <dshaw@jabberwocky.com>
300 * ksutil.h, ksutil.c: #ifdef so we can build without libcurl or
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
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
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
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
395 * gpgkeys_curl.c (main): Make sure the curl handle is cleaned up
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.
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
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
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
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
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
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
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
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
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
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. """) 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
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
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
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
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
701 (make_one_attr): New. Build a modification list in memory to send
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()
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
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
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
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
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
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
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
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
830 2002-11-17 David Shaw <dshaw@jabberwocky.com>
832 * gpgkeys_ldap.c (main), gpgkeys_hkp.c (main): Use new keyserver
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
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
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
891 (main): Call fail_all from here. Also add a NO_MEMORY error in an
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
909 2002-09-20 Werner Koch <wk@gnupg.org>
911 * gpgkeys_hkp.c (handle_old_hkp_index): s/input/inp/ to avoid
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
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
943 2002-09-09 Werner Koch <wk@gnupg.org>
945 * gpgkeys_hkp.c (send_key, get_key, search_key): Check return
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
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
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
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
995 2002-08-19 David Shaw <dshaw@jabberwocky.com>
997 * gpgkeys_hkp.c (get_key, parse_hkp_index): Bring over latest code
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
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
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
1074 2002-03-29 David Shaw <dshaw@jabberwocky.com>
1076 * gpgkeys_ldap.c (printquoted): Quote backslashes within keyserver
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
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"
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
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
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
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.