1 2009-01-22 Werner Koch <wk@g10code.com>
3 * Makefile.am (gpg2keys_curl_LDADD, gpg2keys_hkp_LDADD): Add all
6 2008-10-20 Werner Koch <wk@g10code.com>
8 * curl-shim.c (curl_global_init): Mark usused arg.
9 (curl_version_info): Ditto.
11 2008-08-29 Werner Koch <wk@g10code.com>
13 * gpgkeys_kdns.c: Changed copyright notice to the FSF.
15 2008-04-21 Werner Koch <wk@g10code.com>
17 * ksutil.c (w32_init_sockets) [HAVE_W32_SYSTEM]: New.
18 * curl-shim.c (curl_easy_init) [HAVE_W32_SYSTEM]: Call it.
19 * gpgkeys_finger.c: s/_WIN32/HAVE_W32_SYSTEM/.
20 (init_sockets): Remove.
21 (connect_server) [HAVE_W32_SYSTEM]: Call new function.
23 2008-04-14 David Shaw <dshaw@jabberwocky.com>
25 * gpgkeys_curl.c (main), gpgkeys_hkp.c (main): Make sure all
26 libcurl number options are passed as long.
28 * curl-shim.c (curl_easy_setopt): Minor tweak to match the real
29 curl better - libcurl uses 'long', not 'unsigned int'.
31 2008-04-07 Werner Koch <wk@g10code.com>
33 * gpgkeys_kdns.c: New.
34 * Makefile.am: Support kdns.
36 * no-libgcrypt.c (gcry_strdup): Fix. It was not used.
38 2008-03-25 Werner Koch <wk@g10code.com>
40 * gpgkeys_ldap.c (build_attrs): Take care of char defaulting to
41 unsigned when using hextobyte.
43 2007-10-25 David Shaw <dshaw@jabberwocky.com> (wk)
47 * gpgkeys_ldap.c (main): Fix bug in setting up whether to verify
48 peer SSL cert. This used to work with older OpenLDAP, but is now
49 more strictly handled.
51 * gpgkeys_ldap.c (search_key, main): Fix bug where searching for
52 foo bar (no quotes) on the command line resulted in searching for
53 "foo\2Abar" due to LDAP quoting. The proper search is "foo*bar".
55 2007-06-11 Werner Koch <wk@g10code.com>
57 * gpgkeys_hkp.c (send_key): Rename eof to r_eof as some Windows
58 header defines such a symbol.
61 2007-06-06 Werner Koch <wk@g10code.com>
63 * gpgkeys_ldap.c (send_key, send_key_keyserver): Rename eof to
64 r_eof as some Windows file has such a symbol.
67 2007-05-07 Werner Koch <wk@g10code.com>
69 * Makefile.am (gpg2keys_ldap_LDADD): Add GPG_ERROR_LIBS.
71 2007-05-04 Werner Koch <wk@g10code.com>
73 * gpgkeys_test.in: Rename to ..
74 * gpg2keys_test.in: .. this.
75 * gpgkeys_mailto.in: Rename to ..
76 * gpg2keys_mailto.in: .. this
77 * Makefile.am: Likewise
79 2007-03-13 David Shaw <dshaw@jabberwocky.com>
81 From STABLE-BRANCH-1-4
83 * gpgkeys_curl.c (main): Use curl_version_info to verify that the
84 protocol we're about to use is actually available.
86 * curl-shim.h, curl-shim.c (curl_free): Make into a macro.
87 (curl_version_info): New. Only advertises "http" for our shim, of
90 2007-03-09 David Shaw <dshaw@jabberwocky.com>
92 From STABLE-BRANCH-1-4
94 * gpgkeys_ldap.c (send_key): Missing a free().
96 * curl-shim.c (curl_easy_perform): Some debugging items that may
99 2006-12-03 David Shaw <dshaw@jabberwocky.com>
101 * gpgkeys_hkp.c (search_key): HKP keyservers like the 0x to be
102 present when searching by keyID.
104 2006-11-22 Werner Koch <wk@g10code.com>
106 * Makefile.am (gpg2keys_ldap_LDADD): Add jnlib. This is needed
107 for some replacement functions.
109 2006-11-21 Werner Koch <wk@g10code.com>
111 * curl-shim.c (curl_easy_perform): Made BUFLEN and MAXLNE a size_t.
113 2006-11-05 David Shaw <dshaw@jabberwocky.com>
115 * gpgkeys_hkp.c (curl_mrindex_writer): Revert previous change.
116 Key-not-found still has a HTML response.
118 2006-10-24 Marcus Brinkmann <marcus@g10code.de>
120 * Makefile.am (gpg2keys_ldap_CPPFLAGS): Rename second instance to ...
121 (gpg2keys_finger_CPPFLAGS): ... this.
123 2006-10-20 Werner Koch <wk@g10code.com>
125 * Makefile.am: Reporder macros for better readability.
126 (gpg2keys_finger_LDADD): Add GPG_ERROR_LIBS.
128 2006-10-19 David Shaw <dshaw@jabberwocky.com>
130 * gpgkeys_hkp.c (curl_mrindex_writer): Print a warning if we see
131 HTML coming back from a MR hkp query.
133 2006-10-17 Werner Koch <wk@g10code.com>
135 * Makefile.am: Removed W32LIBS as they are included in NETLIBS.
138 2006-09-26 Werner Koch <wk@g10code.com>
140 * curl-shim.c: Adjusted for changes in http.c.
141 (curl_easy_perform): Changed LINE from unsigned char* to char*.
143 * Makefile.am (gpg2keys_curl_LDADD, gpg2keys_hkp_LDADD)
144 [FAKE_CURL]: Need to link against common_libs and pth.
146 * curl-shim.h, curl-shim.c: Removed license exception as not
149 2006-09-22 Werner Koch <wk@g10code.com>
151 * gpgkeys_curl.c, gpgkeys_hkp.c, gpgkeys_ldap.c, curl-shim.c:
152 * curl-shim.h, ksutil.c, ksutil.h: Add special license exception
153 for OpenSSL. This helps to avoid license conflicts if OpenLDAP or
154 cURL is linked against OpenSSL and we would thus indirectly link
155 to OpenSSL. This is considered a bug fix and forgives all
156 possible violations, pertaining to this issue, possibly occured in
159 * no-libgcrypt.c: Changed license to a simple all permissive one.
161 * Makefile.am (gpg2keys_ldap_LDADD): For license reasons do not
162 link against common_libs.
163 (gpg2keys_curl_LDADD, gpg2keys_hkp_LDADD): Ditto.
164 * ksutil.c (ks_hextobyte, ks_toupper, ks_strcasecmp): New.
165 Identical to the ascii_foo versions from jnlib.
166 * gpgkeys_ldap.c: Include assert.h.
167 (main): Replace BUG by assert.
168 (build_attrs): Use ks_hextobyte and ks_strcasecmp.
170 * gpgkeys_finger.c (get_key): Resolved signed/unisgned char
173 2006-09-19 Werner Koch <wk@g10code.com>
175 * no-libgcrypt.c: New. Taken from ../tools.
176 * Makefile.am: Add no-libgcrypt to all sources.
178 2006-09-06 Marcus Brinkmann <marcus@g10code.de>
180 * Makefile.am (AM_CFLAGS): Add $(GPG_ERROR_CFLAGS).
182 2006-08-16 Werner Koch <wk@g10code.com>
184 * Makefile.am: Renamed all binaries to gpg2keys_*.
185 (gpg2keys_ldap_CPPFLAGS): Add AM_CPPFLAGS.
187 2006-08-15 Werner Koch <wk@g10code.com>
189 * Makefile.am: Adjusted to the gnupg2 framework.
191 2006-08-14 Werner Koch <wk@g10code.com>
193 * curl-shil.c, curl-shim.h: Changed to make use of the new http.c
196 * curl-shim.c (curl_easy_perform): Add missing http_close to the
199 2006-07-24 David Shaw <dshaw@jabberwocky.com> (wk)
201 * curl-shim.c (curl_easy_perform): Minor cleanup of proxy code.
203 * gpgkeys_hkp.c (send_key)
204 * gpgkeys_ldap.c (send_key, send_key_keyserver): Fix string
205 matching problem when the ascii armored form of the key happens to
206 match "KEY" at the beginning of the line.
208 2006-04-26 David Shaw <dshaw@jabberwocky.com>
210 * gpgkeys_http.c, gpgkeys_oldhkp.c: Removed.
212 * Makefile.am: Don't build gpgkeys_http or gpgkeys_(old)hkp any
213 longer as this is done via curl or fake-curl.
215 * ksutil.h, ksutil.c, gpgkeys_hkp.c, gpgkeys_curl.c: Minor
216 #include tweaks as FAKE_CURL is no longer meaningful.
218 2006-04-10 David Shaw <dshaw@jabberwocky.com>
220 * gpgkeys_ldap.c (ldap_quote, get_name, search_key): LDAP-quote
221 directly into place rather than mallocing temporary buffers.
223 * gpgkeys_ldap.c (get_name): Build strings with strcat rather than
224 using sprintf which is harder to read and modify.
226 * ksutil.h, ksutil.c (classify_ks_search): Add
227 KS_SEARCH_KEYID_SHORT and KS_SEARCH_KEYID_LONG to search for a key
230 * gpgkeys_ldap.c (search_key): Use it here to flip from pgpUserID
231 searches to pgpKeyID or pgpCertID.
233 2006-03-27 David Shaw <dshaw@jabberwocky.com>
235 * gpgkeys_ldap.c: #define LDAP_DEPRECATED for newer OpenLDAPs so
236 they use the regular old API that is compatible with other LDAP
239 2006-03-03 David Shaw <dshaw@jabberwocky.com>
241 * gpgkeys_ldap.c (main): Fix build problem with non-OpenLDAP LDAP
242 libraries that have TLS.
244 2006-02-23 David Shaw <dshaw@jabberwocky.com>
246 * ksutil.c (init_ks_options): Default include-revoked and
247 include-subkeys to on, as gpg isn't doing this any longer.
249 2006-02-22 David Shaw <dshaw@jabberwocky.com>
251 * gpgkeys_hkp.c (get_name): A GETNAME query turns exact=on to cut
254 2006-02-21 David Shaw <dshaw@jabberwocky.com>
256 * gpgkeys_ldap.c (make_one_attr, build_attrs, send_key): Don't
257 allow duplicate attributes as OpenLDAP is now enforcing this.
259 * gpgkeys_ldap.c (main): Add binddn and bindpw so users can pass
260 credentials to a remote LDAP server.
262 * curl-shim.h, curl-shim.c (curl_easy_init, curl_easy_setopt,
263 curl_easy_perform): Mingw has 'stderr' as a macro?
265 * curl-shim.h, curl-shim.c (curl_easy_init, curl_easy_setopt,
266 curl_easy_perform): Add CURLOPT_VERBOSE and CURLOPT_STDERR for
269 2006-01-16 David Shaw <dshaw@jabberwocky.com>
271 * gpgkeys_hkp.c (send_key): Do not escape the '=' in the HTTP POST
272 when uploading a key.
274 2005-12-23 David Shaw <dshaw@jabberwocky.com>
276 * ksutil.h, ksutil.c (parse_ks_options): New keyserver command
279 * gpgkeys_hkp.c (main, get_name), gpgkeys_ldap.c (main, get_name):
280 Use it here to do direct name (rather than key ID) fetches.
282 2005-12-19 David Shaw <dshaw@jabberwocky.com>
284 * ksutil.h, ksutil.c (curl_armor_writer, curl_writer,
285 curl_writer_finalize): New functionality to handle binary format
286 keys by armoring them for input to GPG.
288 * gpgkeys_curl.c (get_key), gpgkeys_hkp.c (get_key): Call it here.
290 2005-12-07 David Shaw <dshaw@jabberwocky.com>
292 * gpgkeys_finger.c (get_key), gpgkeys_curl.c (get_key): Better
293 language for the key-not-found error.
295 * ksutil.c (curl_err_to_gpg_err): Add CURLE_OK and
296 CURLE_COULDNT_CONNECT.
298 * gpgkeys_curl.c (get_key): Give key-not-found error if no data is
299 found (or file itself is not found) during a fetch.
301 2005-12-06 David Shaw <dshaw@jabberwocky.com>
303 * curl-shim.c (curl_easy_perform): Fix build warning (code before
306 2005-11-02 David Shaw <dshaw@jabberwocky.com>
308 * gpgkeys_hkp.c (search_key): Fix warning with typecast (though
309 curl should really have defined that char * as const).
311 2005-08-25 David Shaw <dshaw@jabberwocky.com>
313 * ksutil.h, ksutil.c (parse_ks_options): Remove exact-name and
315 (classify_ks_search): Mimic the gpg search modes instead with *,
318 * gpgkeys_ldap.c (search_key), gpgkeys_hkp.c (search_key): Call
319 them here. Suggested by Jason Harris.
321 2005-08-18 David Shaw <dshaw@jabberwocky.com>
323 * ksutil.h, ksutil.c (parse_ks_options): New keyserver-option
324 exact-name. The last of exact-name and exact-email overrides the
327 * gpgkeys_ldap.c (search_key), gpgkeys_hkp.c (search_key): Use it
328 here to do a name-only search.
330 * gpgkeys_ldap.c (ldap_quote): \-quote a string for LDAP.
332 * gpgkeys_ldap.c (search_key): Use it here to escape reserved
333 characters in searches.
335 2005-08-17 David Shaw <dshaw@jabberwocky.com>
337 * ksutil.h, ksutil.c (parse_ks_options): New keyserver-option
340 * gpgkeys_ldap.c (search_key), gpgkeys_hkp.c (search_key): Use it
341 here to do an email-only search.
343 2005-08-08 David Shaw <dshaw@jabberwocky.com>
345 * Makefile.am: Include LDAP_CPPFLAGS when building LDAP.
347 2005-08-03 David Shaw <dshaw@jabberwocky.com>
349 * gpgkeys_hkp.c (main), gpgkeys_curl.c (main), curl-shim.h: Show
350 version of curl (or curl-shim) when debug is set.
352 2005-07-20 David Shaw <dshaw@jabberwocky.com>
354 * gpgkeys_curl.c (get_key, main): Don't try and be smart about
355 what protocols we handle. Directly pass them to curl or fake-curl
356 and see if an error comes back.
358 * curl-shim.h, curl-shim.c (handle_error), ksutil.c
359 (curl_err_to_gpg_err): Add support for CURLE_UNSUPPORTED_PROTOCOL
362 * Makefile.am: Don't need -DFAKE_CURL any longer since it's in
365 2005-06-23 David Shaw <dshaw@jabberwocky.com>
367 * gpgkeys_mailto.in, gpgkeys_test.in: Use @VERSION@ so version
368 string stays up to date.
370 * gpgkeys_http.c: Don't need to define HTTP_PROXY_ENV here since
373 * gpgkeys_curl.c (get_key, main), gpgkeys_hkp.c (main): Pass AUTH
374 values to curl or curl-shim.
376 * curl-shim.c (curl_easy_perform), gpgkeys_curl.c (main),
377 gpgkeys_hkp.c (main): Use curl-style proxy semantics.
379 * curl-shim.h, curl-shim.c (curl_easy_setopt, curl_easy_perform):
380 Add CURLOPT_USERPWD option for HTTP auth.
382 * gpgkeys_http.c (get_key), gpgkeys_oldhkp (send_key, get_key,
383 search_key): No longer need to pass a proxyauth.
385 * gpgkeys_http.c (get_key): Pass auth outside of the URL.
387 2005-06-21 David Shaw <dshaw@jabberwocky.com>
389 * gpgkeys_http.c (get_key), gpgkeys_oldhkp.c (send_key, get_key,
390 search_key): Fix http_open/http_open_document calls to pass NULL
391 for auth and proxyauth since these programs pass them in the URL.
393 2005-06-20 David Shaw <dshaw@jabberwocky.com>
395 * gpgkeys_hkp.c (append_path, send_key, get_key, search_key,
396 main), gpgkeys_oldhkp.c (main): Properly handle double slashes in
399 2005-06-05 David Shaw <dshaw@jabberwocky.com>
401 * ksutil.c (init_ks_options, parse_ks_options): Provide a default
402 "/" path unless overridden by the config. Allow config to specify
403 items multiple times and take the last specified item.
405 2005-06-04 David Shaw <dshaw@jabberwocky.com>
407 * gpgkeys_hkp.c, gpgkeys_oldhkp.c: Add support for HKP servers
408 that aren't at the root path. Suggested by Jack Bates.
410 2005-06-01 David Shaw <dshaw@jabberwocky.com>
412 * ksutil.c [HAVE_DOSISH_SYSTEM]: Fix warnings on mingw32. Noted
415 2005-05-04 David Shaw <dshaw@jabberwocky.com>
417 * ksutil.h, ksutil.c: #ifdef so we can build without libcurl or
420 2005-05-03 David Shaw <dshaw@jabberwocky.com>
422 * gpgkeys_http.c: Need GET defined.
424 2005-05-01 David Shaw <dshaw@jabberwocky.com>
426 * gpgkeys_hkp.c, gpgkeys_oldhkp.c, ksutil.h: Some minor cleanup
427 and comments as to the size of MAX_LINE and MAX_URL.
429 2005-04-16 David Shaw <dshaw@jabberwocky.com>
431 * gpgkeys_hkp.c: New hkp handler that uses curl or curl-shim.
433 * Makefile.am: Build new gpgkeys_hkp.
435 * curl-shim.c (curl_easy_perform): Cleanup.
437 * ksutil.h, ksutil.c (curl_writer), gpgkeys_curl.c (get_key): Pass
438 a context to curl_writer so we can support multiple fetches in a
441 * curl-shim.h, curl-shim.c (handle_error, curl_easy_setopt,
442 curl_easy_perform): Add POST functionality to the curl shim.
444 * curl-shim.h, curl-shim.c (curl_escape, curl_free): Emulate
445 curl_escape and curl_free.
447 * gpgkeys_curl.c (main): If the http-proxy option is given without
448 any arguments, try to get the proxy from the environment.
450 * ksutil.h, ksutil.c (curl_err_to_gpg_err, curl_writer): Copy from
453 * gpgkeys_oldhkp.c: Copy from gpgkeys_hkp.c.
455 2005-03-22 David Shaw <dshaw@jabberwocky.com>
457 * gpgkeys_ldap.c, ksutil.h, ksutil.c (print_nocr): Moved from
458 gpgkeys_ldap.c. Print a string, but strip out any CRs.
460 * gpgkeys_finger.c (get_key), gpgkeys_hkp.c (get_key),
461 gpgkeys_http.c (get_key): Use it here when outputting key material
462 to canonicalize line endings.
464 2005-03-19 David Shaw <dshaw@jabberwocky.com>
466 * gpgkeys_ldap.c (main): Fix three wrong calls to fail_all().
467 Noted by Stefan Bellon.
469 2005-03-17 David Shaw <dshaw@jabberwocky.com>
471 * ksutil.c (parse_ks_options): Handle verbose=nnn.
473 * Makefile.am: Calculate GNUPG_LIBEXECDIR directly. Do not
474 redefine $libexecdir.
476 * gpgkeys_curl.c, gpgkeys_finger.c, gpgkeys_ldap.c: Start using
477 parse_ks_options and remove a lot of common code.
479 * ksutil.h, ksutil.c (parse_ks_options): Parse OPAQUE, and default
480 debug with no arguments to 1.
482 2005-03-16 David Shaw <dshaw@jabberwocky.com>
484 * gpgkeys_ldap.c: Include lber.h if configure determines we need
487 * ksutil.h, ksutil.c (ks_action_to_string): New.
488 (free_ks_options): Only free if options exist.
490 * ksutil.h, ksutil.c (init_ks_options, free_ks_options,
491 parse_ks_options): Pull a lot of duplicated code into a single
492 options parser for all keyserver helpers.
494 2005-02-11 David Shaw <dshaw@jabberwocky.com>
496 * curl-shim.c (curl_easy_perform): Fix compile warning.
498 * curl-shim.h, gpgkeys_curl.c (main), gpgkeys_ldap.c (main): Add
499 ca-cert-file option, to pass in the SSL cert.
501 * curl-shim.h, curl-shim.c: New. This is code to fake the curl
502 API in terms of the current HTTP iobuf API.
504 * gpgkeys_curl.c [FAKE_CURL], Makefile.am: If FAKE_CURL is set,
505 link with the iobuf code rather than libcurl.
507 2005-02-05 David Shaw <dshaw@jabberwocky.com>
509 * gpgkeys_finger.c (main), gpgkeys_hkp.c (main): Fix --version
512 * gpgkeys_curl.c (main): Make sure the curl handle is cleaned up
515 2005-02-01 David Shaw <dshaw@jabberwocky.com>
517 * gpgkeys_hkp.c (get_key), gpgkeys_http.c (get_key): Fix missing
518 http_close() calls. Noted by Phil Pennock.
520 * ksutil.h: Up the default timeout to two minutes.
522 2005-01-24 David Shaw <dshaw@jabberwocky.com>
524 * gpgkeys_ldap.c (print_nocr): New.
525 (get_key): Call it here to canonicalize line endings.
527 * gpgkeys_curl.c (writer): Discard everything outside the BEGIN
528 and END lines when retrieving keys. Canonicalize line endings.
531 2005-01-21 David Shaw <dshaw@jabberwocky.com>
533 * gpgkeys_ldap.c (main): Add "check-cert" option to disable SSL
534 certificate checking (which is on by default).
536 * gpgkeys_curl.c (main): Add "debug" option to match the LDAP
537 helper. Add "check-cert" option to disable SSL certificate
538 checking (which is on by default).
540 2005-01-18 David Shaw <dshaw@jabberwocky.com>
542 * gpgkeys_curl.c: Fix typo.
544 2005-01-18 Werner Koch <wk@g10code.com>
546 * gpgkeys_curl.c: s/MAX_PATH/URLMAX_PATH/g to avoid a clash with
547 the W32 defined macro. Removed unneeded initialization of static
549 * gpgkeys_http.c: Ditto.
550 * ksutil.h: s/MAX_PATH/URLMAX_PATH/.
552 2005-01-17 David Shaw <dshaw@jabberwocky.com>
554 * gpgkeys_curl.c (main): Only allow specified protocols to use the
557 * Makefile.am: Use LIBCURL_CPPFLAGS instead of LIBCURL_INCLUDES.
559 2005-01-13 David Shaw <dshaw@jabberwocky.com>
561 * ksutil.h, gpgkeys_curl.c, gpgkeys_hkp.c, gpgkeys_ldap.c,
562 gpgkeys_finger.c, gpgkeys_http.c: Part 2 of the cleanup. Move all
563 the various defines to ksutil.h.
565 * gpgkeys_finger.c, gpgkeys_hkp.c, gpgkeys_http.c, gpgkeys_ldap.c:
566 Part 1 of a minor cleanup to use #defines instead of hard-coded
569 * gpgkeys_finger.c (connect_server): Use INADDR_NONE instead of
570 SOCKET_ERROR. Noted by Timo.
572 2005-01-09 David Shaw <dshaw@jabberwocky.com>
574 * gpgkeys_curl.c (get_key): Newer versions of libcurl don't define
577 2004-12-24 David Shaw <dshaw@jabberwocky.com>
579 * gpgkeys_curl.c (main): Use new defines for opting out of certain
580 transfer protocols. Allow setting HTTP proxy via "http-proxy=foo"
581 option (there is natural support in libcurl for the http_proxy
582 environment variable).
584 * Makefile.am: Remove the conditional since this is all handled in
587 2004-12-22 David Shaw <dshaw@jabberwocky.com>
589 * gpgkeys_curl.c (main): New "follow-redirects" option. Takes an
590 optional numeric value for the maximum number of redirects to
591 allow. Defaults to 5.
593 * gpgkeys_curl.c (main), gpgkeys_finger.c (main), gpgkeys_hkp.c
594 (main), gpgkeys_http.c (main), gpgkeys_ldap.c (main): Make sure
595 that a "timeout" option passed with no arguments is properly
598 * gpgkeys_curl.c (get_key, writer): New function to wrap around
599 fwrite to avoid DLL access problem on win32.
601 * gpgkeys_http.c (main, get_key): Properly pass authentication
602 info through to the http library.
604 * Makefile.am: Build gpgkeys_http or gpgkeys_curl as needed.
606 * gpgkeys_curl.c (main, get_key): Minor tweaks to work with either
609 * gpgkeys_ftp.c: renamed to gpgkeys_curl.c.
611 * gpgkeys_ftp.c (main, get_key): Use auth data as passed by gpg.
612 Use CURLOPT_FILE instead of CURLOPT_WRITEDATA (same option, but
613 backwards compatible).
615 2004-12-21 David Shaw <dshaw@jabberwocky.com>
617 * gpgkeys_ftp.c: New.
619 * Makefile.am: Build it if requested.
621 2004-12-14 Werner Koch <wk@g10code.com>
623 * Makefile.am (install-exec-hook, uninstall-hook): Removed. For
624 Windows reasons we can't use the symlink trick.
626 2004-12-03 David Shaw <dshaw@jabberwocky.com>
628 * Makefile.am: The harmless "ignored error" on gpgkeys_ldap
629 install on top of an existing install is bound to confuse people.
630 Use ln -s -f to force the overwrite.
632 2004-10-28 David Shaw <dshaw@jabberwocky.com>
634 * gpgkeys_finger.c [_WIN32] (connect_server): Fix typo.
636 2004-10-28 Werner Koch <wk@g10code.com>
638 * Makefile.am (other_libs): New. Also include LIBICONV. Noted by
641 2004-10-28 Werner Koch <wk@g10code.com>
643 * Makefile.am (other_libs):
645 2004-10-18 David Shaw <dshaw@jabberwocky.com>
647 * gpgkeys_hkp.c (send_key, get_key, search_key): Use "hkp" instead
648 of "x-hkp" so it can be used as a SRV tag.
650 2004-10-16 David Shaw <dshaw@jabberwocky.com>
652 * gpgkeys_finger.c [_WIN32] (connect_server): Fix typo.
654 2004-10-15 Werner Koch <wk@g10code.com>
656 * gpgkeys_ldap.c (main, show_help): Kludge to implement standard
657 GNU options. Factored help printing out.
658 * gpgkeys_finger.c (main, show_help): Ditto.
659 * gpgkeys_hkp.c (main, show_help): Ditto.
660 * gpgkeys_http.c (main, show_help): Ditto.
661 * gpgkeys_test.in, gpgkeys_mailto.in: Implement --version and --help.
663 * Makefile.am: Add ksutil.h.
665 2004-10-14 David Shaw <dshaw@jabberwocky.com>
667 * gpgkeys_finger.c (main): We do not support relay fingering
668 (i.e. "finger://relayhost/user@example.com"), but finger URLs are
669 occasionally miswritten that way. Give an error in this case.
671 2004-10-14 Werner Koch <wk@g10code.com>
673 * gpgkeys_finger.c (get_key): s/unsigned char/byte/ due
674 to a strange typedef for RISC OS. Noted by Stefan.
676 2004-10-13 David Shaw <dshaw@jabberwocky.com>
678 * gpgkeys_ldap.c (main), gpgkeys_hkp.c (main), gpgkeys_http.c
679 (main), gpgkeys_finger.c (main): Call timeout functions before
680 performing an action that could block for a long time.
682 * ksutil.h, ksutil.c: New. Right now just contains timeout
685 2004-10-11 David Shaw <dshaw@jabberwocky.com>
687 * gpgkeys_finger.c, gpgkeys_hkp.c, gpgkeys_http.c, gpgkeys_ldap.c:
688 Fix a few occurances of "filename" to `filename'.
690 2004-10-11 Werner Koch <wk@g10code.com>
692 * gpgkeys_finger.c: New.
694 2004-08-27 Stefan Bellon <sbellon@sbellon.de>
696 * gpgkeys_hkp.c (search_key): Fix the prior faulty fix by
697 introducing a cast but leaving skey unsigned.
699 * gpgkeys_hkp.c (search_key): Change type of variable skey from
700 unsigned char* to char* to fix type incompatibility.
702 2004-08-23 David Shaw <dshaw@jabberwocky.com>
704 * gpgkeys_ldap.c (get_key, search_key), gpgkeys_hkp.c (get_key,
705 search_key), gpgkeys_http.c (get_key): Do not give informational
706 logs since this is now done inside gpg.
708 * gpgkeys_hkp.c (dehtmlize): Understand the quote character
709 (i.e. """) in HTML responses.
710 (search_key): Search key must be unsigned for url encoder to work
711 properly for 8-bit values.
713 * gpgkeys_ldap.c (get_key): Factor out informational display into
714 new function build_info().
716 * gpgkeys_ldap.c (build_attrs): Properly terminate user ID strings
717 that got shrunk due to encoding.
719 2004-08-22 David Shaw <dshaw@jabberwocky.com>
721 * gpgkeys_ldap.c (find_basekeyspacedn): Use LDAP_SCOPE_BASE along
722 with a full DN rather than LDAP_SCOPE_ONELEVEL plus a filter to
723 find the pgpServerInfo object. Some LDAP setups don't like the
725 (main): Stop binding to the server since it seems no server really
726 requires it, and some require it not be there.
728 2004-07-29 David Shaw <dshaw@jabberwocky.com>
730 * gpgkeys_ldap.c (main): Add "debug" option. This is only really
731 useful with OpenLDAP, but it's practically vital to debug SSL and
732 TLS setups. Add "basedn" option. This allows users to override
733 the autodetection for base DN. SSL overrides TLS, so TLS will not
734 be started on SSL connections (starting an already started car).
736 2004-07-28 David Shaw <dshaw@jabberwocky.com>
738 * gpgkeys_ldap.c (build_attrs): Add "pgpKeySize" and "pgpSubKeyID"
739 attributes so we can do subkey searches.
741 * gpgkeys_ldap.c (main): Under certain error conditions, we might
742 try and unbind twice. Don't.
744 * gpgkeys_ldap.c (join_two_modlists): New.
745 (send_key): Use new function so we can try a modify operation
746 first, and fail over to an add if that fails. Add cannot cope
747 with the NULLs at the head of the modify request, so we jump into
748 the list in the middle.
750 2004-07-27 David Shaw <dshaw@jabberwocky.com>
752 * gpgkeys_ldap.c (main): Don't try and error out before making a
753 ldaps connection to the NAI keyserver since we cannot tell if it
754 is a NAI keyserver until we connect. Fail if we cannot find a
755 base keyspace DN. Fix a false success message for TLS being
758 2004-07-20 Werner Koch <wk@gnupg.org>
760 * gpgkeys_ldap.c [_WIN32]: Include Windows specific header files.
761 Suggested by Brian Gladman.
763 2004-05-26 David Shaw <dshaw@jabberwocky.com>
765 * gpgkeys_http.c: General polish and removal of leftover stuff
768 2004-05-21 David Shaw <dshaw@jabberwocky.com>
770 * gpgkeys_http.c (get_key): Cosmetic fix - make sure that URLs
771 with no path use a path of "/".
773 * gpgkeys_ldap.c (ldap2epochtime): We can always rely on timegm()
774 being available now, since it's a replacement function.
776 2004-05-20 David Shaw <dshaw@jabberwocky.com>
778 * gpgkeys_http.c: New program to do a simple HTTP file fetch using
779 the keyserver interface.
781 * Makefile.am: Build it.
783 2004-02-28 David Shaw <dshaw@jabberwocky.com>
785 * Makefile.am: Don't split LDADD across two lines since some make
786 programs can't handle blank lines after a \ continuation. Noted
787 by Christoph Moench-Tegeder.
789 2004-02-25 David Shaw <dshaw@jabberwocky.com>
791 * gpgkeys_ldap.c (send_key): List pgpCertID as one of the deleted
792 attributes. This guarantees that if something goes wrong, we
793 won't be able to complete the transaction, thus leaving any key
794 already existing on the server intact.
796 2004-02-23 David Shaw <dshaw@jabberwocky.com>
798 * gpgkeys_ldap.c (delete_one_attr): Removed.
799 (make_one_attr): Delete functionality added. Optional deduping
800 functionality added (currently only used for pgpSignerID).
801 (build_attrs): Translate sig entries into pgpSignerID. Properly
802 build the timestamp for pgpKeyCreateTime and pgpKeyExpireTime.
804 2004-02-22 David Shaw <dshaw@jabberwocky.com>
806 * gpgkeys_ldap.c (delete_one_attr): New function to replace
807 attributes with NULL (a "delete" that works even for nonexistant
809 (send_key): Use it here to remove attributes so a modify operation
810 starts with a clean playing field. Bias sends to modify before
811 add, since (I suspect) people update their existing keys more
812 often than they make and send new keys to the server.
814 2004-02-21 David Shaw <dshaw@jabberwocky.com>
816 * gpgkeys_ldap.c (epoch2ldaptime): New. Converse of
818 (make_one_attr): New. Build a modification list in memory to send
820 (build_attrs): New. Parse INFO lines sent over by gpg.
821 (free_mod_values): New. Unwinds a modification list.
822 (send_key_keyserver): Renamed from old send_key().
823 (send_key): New function to send a key to a LDAP server.
824 (main): Use send_key() for real LDAP servers, send_key_keyserver()
827 2004-02-20 David Shaw <dshaw@jabberwocky.com>
829 * gpgkeys_ldap.c: Replacement prototypes for setenv and unsetenv.
830 (search_key): Catch a SIZELIMIT_EXCEEDED error and show the user
831 whatever the server did give us.
832 (find_basekeyspacedn): There is no guarantee that namingContexts
835 * Makefile.am: Link gpgkeys_ldap with libutil.a to get the
836 replacement functions (and eventually translations, etc).
838 2004-02-19 David Shaw <dshaw@jabberwocky.com>
840 * gpgkeys_ldap.c (ldap2epochtime): LDAP timestamps are UTC, so do
841 not correct for timezones.
842 (main): Find the basekeyspacedn before we try to start TLS, so we
843 can give a better error message when a user tries to use TLS with
846 * Makefile.am: Add automake conditionals to symlink gpgkeys_ldaps
847 to gpgkeys_ldap when needed.
849 * gpgkeys_ldap.c (main): Add support for LDAPS and TLS
850 connections. These are only useful and usable when talking to
851 real LDAP keyservers. Add new "tls" option to tune TLS use from
852 off, to try quietly, to try loudly, or to require TLS.
854 * gpgkeys_ldap.c (find_basekeyspacedn): New function to figure out
855 what kind of LDAP server we're talking to (either real LDAP or the
856 LDAP keyserver), and return the baseKeySpaceDN to find keys under.
857 (main): Call it from here, and remove the old code that only
858 handled the LDAP keyserver.
860 2004-02-18 David Shaw <dshaw@jabberwocky.com>
862 * gpgkeys_ldap.c (ldap_to_gpg_err): Make sure that
863 LDAP_OPT_ERROR_NUMBER is defined before we use it.
865 * gpgkeys_mailto.in: Fix VERSION number.
867 2004-01-13 Werner Koch <wk@gnupg.org>
869 * gpgkeys_hkp.c (send_key): Add a content type.
871 2004-01-11 David Shaw <dshaw@jabberwocky.com>
873 * gpgkeys_hkp.c (search_key): Catch a mangled input file (useful
874 if something other than GnuPG is calling the program).
875 (main): Avoid possible pre-string write. Noted by Christian
878 * gpgkeys_ldap.c (main): Avoid possible pre-string write.
880 2003-12-28 David Shaw <dshaw@jabberwocky.com>
882 * gpgkeys_hkp.c (send_key, get_key, main): Work with new HTTP code
883 that passes the proxy in from the outside. If the command file
884 sends a proxy, use it. If it sends "http-proxy" with no
885 arguments, use $http_proxy from the environment. Suggested by
888 2003-12-28 Stefan Bellon <sbellon@sbellon.de>
890 * gpgkeys_hkp.c, gpgkeys_ldap.c [__riscos__]: Removal of
891 unnecessary #ifdef __riscos__ sections.
893 2003-11-27 Werner Koch <wk@gnupg.org>
895 * gpgkeys_hkp.c (get_key): Fixed invalid use of fprintf without
898 2003-10-25 Werner Koch <wk@gnupg.org>
900 * Makefile.am (gpgkeys_hkp_LDADD): Replaced INTLLIBS by LIBINTL.
902 2003-07-10 David Shaw <dshaw@jabberwocky.com>
904 * Makefile.am: Use W32LIBS where appropriate.
906 2003-05-30 David Shaw <dshaw@jabberwocky.com>
908 * gpgkeys_hkp.c, gpgkeys_ldap.c: #include <getopt.h> if it is
909 available. Also include extern references for optarg and optind
910 since there is no guarantee that any header file will include
911 them. Standards? We don't need no stinkin' standards.
913 * Makefile.am: Use @GETOPT@ to pull in libiberty on those
914 platforms that need it.
916 2003-04-08 David Shaw <dshaw@jabberwocky.com>
918 * gpgkeys_hkp.c (dehtmlize, parse_hkp_index): Fix memory
919 corruption bug on some platforms.
921 2003-03-11 David Shaw <dshaw@jabberwocky.com>
923 * gpgkeys_hkp.c (get_key): Properly handle CRLF line endings in
925 (main): Accept "try-dns-srv" option.
927 * Makefile.am: Use @CAPLIBS@ to link in -lcap if we are using
928 capabilities. Use @SRVLIBS@ to link in the resolver if we are
931 2003-02-11 David Shaw <dshaw@jabberwocky.com>
933 * Makefile.am: Use a local copy of libexecdir along with @PACKAGE@
934 so it can be easily overridden at make time.
936 2003-01-29 David Shaw <dshaw@jabberwocky.com>
938 * gpgkeys_mailto.in: Fix regexp to work properly if the "keyid" is
939 not a keyid, but rather a text string from the user ID.
941 2003-01-06 David Shaw <dshaw@jabberwocky.com>
943 * gpgkeys_hkp.c (get_key): Use options=mr when getting a key so
944 keyserver doesn't attach the HTML header which we will just have
947 2002-11-17 David Shaw <dshaw@jabberwocky.com>
949 * gpgkeys_ldap.c (main), gpgkeys_hkp.c (main): Use new keyserver
952 2002-11-14 David Shaw <dshaw@jabberwocky.com>
954 * gpgkeys_ldap.c (get_key): The deduping code requires
955 "pgpcertid", but that was not available when running without
956 verbose on. Noted by Stefan.
958 2002-11-10 David Shaw <dshaw@jabberwocky.com>
960 * gpgkeys_ldap.c (get_key): Fix typo in deduping code.
962 2002-11-05 David Shaw <dshaw@jabberwocky.com>
964 * gpgkeys_ldap.c (key_in_keylist, add_key_to_keylist,
965 free_keylist, get_key, search_key): The LDAP keyserver doesn't
966 remove duplicates, so remove them locally. Do not include the key
967 modification time in the search response.
969 2002-11-04 David Shaw <dshaw@jabberwocky.com>
971 * gpgkeys_hkp.c (send_key), gpgkeys_ldap.c (send_key): Properly
972 handle an input file that does not include any key data at all.
974 2002-10-24 David Shaw <dshaw@jabberwocky.com>
976 * gpgkeys_hkp.c (main), gpgkeys_ldap.c (main): Add -V flag to
977 output protocol and program version.
979 2002-10-21 David Shaw <dshaw@jabberwocky.com>
981 * Makefile.am: Anything linking with libutil.a needs INTLLIBS as
982 well on platforms where INTLLIBS is set.
984 2002-10-14 David Shaw <dshaw@jabberwocky.com>
986 * gpgkeys_hkp.c (write_quoted): Use %-encoding instead of
988 (parse_hkp_index): Use new keyserver key listing format, and add
989 support for disabled keys via include-disabled.
991 * gpgkeys_ldap.c (get_key): Don't print keysize unless it's >0.
992 (printquoted): Use %-encoding instead of \-encoding.
993 (search_key): Use new keyserver key listing format.
995 2002-10-08 David Shaw <dshaw@jabberwocky.com>
997 * gpgkeys_ldap.c (search_key, main): Make sure LDAP values are
998 freed in case of error.
1000 * gpgkeys_ldap.c (fail_all): New function to unwind a keylist and
1002 (main): Call fail_all from here, as needed. Also add a NO_MEMORY
1003 error in an appropriate place and fix error return code.
1004 (ldap_err_to_gpg_err): Add KEYSERVER_UNREACHABLE.
1006 * gpgkeys_hkp.c (fail_all): New function to unwind a keylist and
1008 (main): Call fail_all from here. Also add a NO_MEMORY error in an
1010 (get_key): Use new UNREACHABLE error for network errors.
1012 2002-09-26 Werner Koch <wk@gnupg.org>
1014 * gpgkeys_ldap.c (send_key): Removed non-constant initializers.
1016 2002-09-24 David Shaw <dshaw@jabberwocky.com>
1018 * gpgkeys_ldap.c (ldap_err_to_gpg_err, ldap_to_gpg_err, send_key,
1019 get_key, search_key, main): Some minor error reporting
1020 enhancements for use with GPA (show reasons for KEY FAILED).
1022 * gpgkeys_hkp.c (send_key, get_key, search_key, main): Some minor
1023 error reporting enhancements for use with GPA (show reasons for
1026 2002-09-20 Werner Koch <wk@gnupg.org>
1028 * gpgkeys_hkp.c (handle_old_hkp_index): s/input/inp/ to avoid
1031 2002-09-19 David Shaw <dshaw@jabberwocky.com>
1033 * gpgkeys_hkp.c (get_key, handle_old_hkp_index, search_key):
1034 Properly handle line truncation.
1036 2002-09-16 David Shaw <dshaw@jabberwocky.com>
1038 * gpgkeys_mailto.in: Add quasi-RFC-2368 mailto:email@addr?from=
1039 syntax so people can set their own email address to respond to.
1041 * gpgkeys_hkp.c (get_key): Properly respond with KEY FAILED (to
1042 gpg) and "key not found" (to user) on failure.
1044 2002-09-13 David Shaw <dshaw@jabberwocky.com>
1046 * gpgkeys_hkp.c: (search_key, handle_old_hkp_index): Try and
1047 request a machine-readable key index. If the server supports
1048 this, pass it through. If the server does not support it, parse
1051 2002-09-12 Stefan Bellon <sbellon@sbellon.de>
1053 * gpgkeys_hkp.c: Tidied up RISC OS initializations.
1055 2002-09-12 David Shaw <dshaw@jabberwocky.com>
1057 * gpgkeys_hkp.c (main): Remove warning - this is no longer
1060 2002-09-09 Werner Koch <wk@gnupg.org>
1062 * gpgkeys_hkp.c (send_key, get_key, search_key): Check return
1064 (dehtmlize): Use ascii_tolower to protect against weird locales.
1065 Cast the argument for isspace for the sake of broken HP/UXes.
1066 (search_key): Check return value of realloc.
1068 2002-09-09 David Shaw <dshaw@jabberwocky.com>
1070 * gpgkeys_ldap.c (get_key): Some compilers (RISC OS, HPUX c89)
1071 don't like using variables as array initializers.
1073 * gpgkeys_hkp.c (send_key): Use CRLF in headers.
1075 2002-08-28 David Shaw <dshaw@jabberwocky.com>
1077 * gpgkeys_hkp.c (parse_hkp_index): Use same types on all
1078 platforms. This was probably leftover from earlier code where the
1081 * gpgkeys_hkp.c: Overall cleanup from iobuf conversion. Be
1082 consistent in m_alloc and malloc usage. Remove include-disabled
1083 (meaningless on HKP). RISC OS tweak.
1085 2002-08-27 David Shaw <dshaw@jabberwocky.com>
1087 * gpgkeys_hkp.c, Makefile.am: Convert over to using iobufs.
1089 * gpgkeys_hkp.c (http_get, http_post): Use CRLF for line endings.
1091 * gpgkeys_hkp.c: Include util.h on RISC OS as per Stefan. Include
1092 a replacement for hstrerror() for those platforms (such as RISC
1093 OS) that don't have it.
1095 2002-08-26 David Shaw <dshaw@jabberwocky.com>
1097 * Makefile.am: May as well include gpgkeys_hkp.c in the
1098 distribution now. It works well enough without proxies, and isn't
1099 built by default. It would be good to get some test experience
1102 * gpgkeys_hkp.c (main): Don't warn about include-subkeys - it
1103 isn't unsupported, it's actually non-meaningful in the context of
1106 * gpgkeys_hkp.c (parse_hkp_index, dehtmlize): Move HTML
1107 functionality into new "dehtmlize" function. Remove HTML before
1108 trying to parse each line from the keyserver. If the keyserver
1109 provides key type information in the listing, use it. (Copy over
1112 2002-08-19 David Shaw <dshaw@jabberwocky.com>
1114 * gpgkeys_hkp.c (get_key, parse_hkp_index): Bring over latest code
1117 * gpgkeys_ldap.c (get_key): Fix cosmetic URL display problem
1118 (extra ":" at the end).
1120 2002-08-03 Stefan Bellon <sbellon@sbellon.de>
1122 * gpgkeys_ldap.c: Tidied up RISC OS initializations.
1124 2002-07-25 David Shaw <dshaw@jabberwocky.com>
1126 * gpgkeys_hkp.c: "Warning" -> "WARNING"
1128 2002-07-24 David Shaw <dshaw@jabberwocky.com>
1130 * Makefile.am: Install keyserver helpers in @GNUPG_LIBEXECDIR@
1132 2002-07-15 David Shaw <dshaw@jabberwocky.com>
1134 * gpgkeys_ldap.c (send_key, get_key, main): Consult the server
1135 version string to determine whether to use pgpKey or pgpKeyV2.
1137 2002-07-09 David Shaw <dshaw@jabberwocky.com>
1139 * gpgkeys_mailto.in: Use new OPAQUE tag for non net-path URIs.
1140 Fail more elegantly if there is no email address to send to. Show
1141 the GnuPG version in the message body.
1143 2002-07-04 David Shaw <dshaw@jabberwocky.com>
1145 * gpgkeys_ldap.c (get_key), gpgkeys_hkp.c (get_key): Display
1146 keyserver URI as a URI, but only if verbose.
1148 2002-07-01 David Shaw <dshaw@jabberwocky.com>
1150 * gpgkeys_hkp.c (parse_hkp_index): Error if the keyserver returns
1151 an unparseable HKP response.
1153 * gpgkeys_hkp.c (main): Warn on honor-http-proxy,
1154 broken-http-proxy, and include-subkeys (not supported yet).
1156 * gpgkeys_ldap.c (main), gpgkeys_hkp.c (http_connect, main): Fix
1157 some shadowing warnings.
1159 2002-06-11 David Shaw <dshaw@jabberwocky.com>
1161 * Makefile.am: Don't hard-code the LDAP libraries - get them from
1162 LDAPLIBS via configure. Also, gpgkeys_hkp is a program, not a
1165 2002-06-10 David Shaw <dshaw@jabberwocky.com>
1167 * gpgkeys_ldap.c (include_subkeys): Default "include-subkeys" to
1168 off, since GnuPG now defaults it to on.
1170 2002-06-06 David Shaw <dshaw@jabberwocky.com>
1172 * gpgkeys_hkp.c (parse_hkp_index): Type tweaks.
1174 * gpgkeys_hkp.c (main): Add experimental code warning.
1176 2002-06-05 David Shaw <dshaw@jabberwocky.com>
1178 * Makefile.am, gpgkeys_hkp.c (new): Experimental HKP keyserver
1181 2002-05-08 David Shaw <dshaw@jabberwocky.com>
1183 * gpgkeys_ldap.c: Include <lber.h> if we absolutely must. This
1184 helps when compiling against a very old OpenLDAP.
1186 2002-04-29 David Shaw <dshaw@jabberwocky.com>
1188 * gpgkeys_mailto.in: Properly handle key requests in full
1191 2002-03-29 David Shaw <dshaw@jabberwocky.com>
1193 * gpgkeys_ldap.c (printquoted): Quote backslashes within keyserver
1196 2002-02-25 David Shaw <dshaw@jabberwocky.com>
1198 * gpgkeys_ldap (get_key): LDAP keyservers do not support v3
1199 fingerprints, so error out if someone tries. Actually, they don't
1200 support any fingerprints, but at least we can calculate a keyid
1201 from a v4 fingerprint.
1203 2002-02-23 David Shaw <dshaw@jabberwocky.com>
1205 * gpgkeys_ldap: Clarify the notion of a partial failure. This is
1206 possible if more than one key is being handled in a batch, and one
1207 fails while the other succeeds. Note that a search that comes up
1208 with no results is not a failure - that is a valid response of "no
1211 * gpgkeys_ldap.c (get_key): Allow GnuPG to send us full v4
1212 fingerprints, long key ids, or short key ids while fetching.
1213 Since the LDAP server doesn't actually handle fingerprints, chop
1214 them down to long key ids for actual use.
1216 * gpgkeys_ldap.c (main, get_key): When searching for a keyid,
1217 search for subkeys as well as primary keys. This is mostly
1218 significant when automatically fetching the key based on the id in
1219 a header (i.e. "signature made by...."). "no-include-subkeys"
1222 2002-02-14 David Shaw <dshaw@jabberwocky.com>
1224 * gpgkeys_ldap.c: Fix compiler warning.
1226 * gpgkeys_ldap.c: Be much more robust with mangled input files.
1228 2001-12-28 David Shaw <dshaw@jabberwocky.com>
1230 * gpgkeys_mailto.in: Use the new OUTOFBAND indicator so gpg knows
1231 not to try and import anything. Also turn on perl -w for
1234 * gpgkeys_ldap.c (main): If we're using temp files (rather than
1235 stdin/stdout), make sure the file is closed when we're done.
1237 2001-12-20 David Shaw <dshaw@jabberwocky.com>
1239 * Properly free the LDAP response when we're done with it.
1241 * Now that we handle multiple keys, we must remove duplicates as
1242 the LDAP keyserver returns keys with multiple user IDs multiple
1245 * Properly handle multiple keys with the same key ID (it's really
1246 rare, so fetch "0xDEADBEEF" to test this).
1248 2001-12-17 David Shaw <dshaw@jabberwocky.com>
1250 * gpgkeys_ldap.c, gpgkeys_mailto.in: Fix GNU capitalization
1251 issues. Prefix log messages with "gpgkeys" to clarify which
1252 program is generating them.
1254 2001-12-14 David Shaw <dshaw@jabberwocky.com>
1256 * gpgkeys_ldap.c (search_key): Use unsigned int rather than uint
1259 2001-12-04 David Shaw <dshaw@jabberwocky.com>
1261 * Initial version of gpgkeys_ldap (LDAP keyserver helper) and
1262 gpgkeys_mailto (email keyserver helper)
1265 Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
1266 2007 Free Software Foundation, Inc.
1268 This file is free software; as a special exception the author gives
1269 unlimited permission to copy and/or distribute it, with or without
1270 modifications, as long as this notice is preserved.
1272 This file is distributed in the hope that it will be useful, but
1273 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1274 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.