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