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