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