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