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