* gpgkeys_ldap.c (main), gpgkeys_hkp.c (main), gpgkeys_http.c (main),
[gnupg.git] / keyserver / ChangeLog
1 2004-10-13  David Shaw  <dshaw@jabberwocky.com>
2
3         * gpgkeys_ldap.c (main), gpgkeys_hkp.c (main), gpgkeys_http.c
4         (main), gpgkeys_finger.c (main): Call timeout functions before
5         performing an action that could block for a long time.
6
7         * ksutil.h, ksutil.c: New.  Right now just contains timeout
8         functions.
9
10 2004-10-11  David Shaw  <dshaw@jabberwocky.com>
11
12         * gpgkeys_finger.c, gpgkeys_hkp.c, gpgkeys_http.c, gpgkeys_ldap.c:
13         Fix a few occurances of "filename" to `filename'.
14
15 2004-10-11  Werner Koch  <wk@g10code.com>
16
17         * gpgkeys_finger.c: New.
18
19 2004-08-27  Stefan Bellon  <sbellon@sbellon.de>
20
21         * gpgkeys_hkp.c (search_key): Fix the prior faulty fix by
22         introducing a cast but leaving skey unsigned.
23
24         * gpgkeys_hkp.c (search_key): Change type of variable skey from
25         unsigned char* to char* to fix type incompatibility.
26
27 2004-08-23  David Shaw  <dshaw@jabberwocky.com>
28
29         * gpgkeys_ldap.c (get_key, search_key), gpgkeys_hkp.c (get_key,
30         search_key), gpgkeys_http.c (get_key): Do not give informational
31         logs since this is now done inside gpg.
32
33         * gpgkeys_hkp.c (dehtmlize): Understand the quote character
34         (i.e. "&quot;") in HTML responses.
35         (search_key): Search key must be unsigned for url encoder to work
36         properly for 8-bit values.
37
38         * gpgkeys_ldap.c (get_key): Factor out informational display into
39         new function build_info().
40
41         * gpgkeys_ldap.c (build_attrs): Properly terminate user ID strings
42         that got shrunk due to encoding.
43
44 2004-08-22  David Shaw  <dshaw@jabberwocky.com>
45
46         * gpgkeys_ldap.c (find_basekeyspacedn): Use LDAP_SCOPE_BASE along
47         with a full DN rather than LDAP_SCOPE_ONELEVEL plus a filter to
48         find the pgpServerInfo object.  Some LDAP setups don't like the
49         search.
50         (main): Stop binding to the server since it seems no server really
51         requires it, and some require it not be there.
52
53 2004-07-29  David Shaw  <dshaw@jabberwocky.com>
54
55         * gpgkeys_ldap.c (main): Add "debug" option.  This is only really
56         useful with OpenLDAP, but it's practically vital to debug SSL and
57         TLS setups.  Add "basedn" option.  This allows users to override
58         the autodetection for base DN.  SSL overrides TLS, so TLS will not
59         be started on SSL connections (starting an already started car).
60
61 2004-07-28  David Shaw  <dshaw@jabberwocky.com>
62
63         * gpgkeys_ldap.c (build_attrs): Add "pgpKeySize" and "pgpSubKeyID"
64         attributes so we can do subkey searches.
65
66         * gpgkeys_ldap.c (main): Under certain error conditions, we might
67         try and unbind twice.  Don't.
68
69         * gpgkeys_ldap.c (join_two_modlists): New.
70         (send_key): Use new function so we can try a modify operation
71         first, and fail over to an add if that fails.  Add cannot cope
72         with the NULLs at the head of the modify request, so we jump into
73         the list in the middle.
74
75 2004-07-27  David Shaw  <dshaw@jabberwocky.com>
76
77         * gpgkeys_ldap.c (main): Don't try and error out before making a
78         ldaps connection to the NAI keyserver since we cannot tell if it
79         is a NAI keyserver until we connect.  Fail if we cannot find a
80         base keyspace DN.  Fix a false success message for TLS being
81         enabled.
82
83 2004-07-20  Werner Koch  <wk@gnupg.org>
84
85         * gpgkeys_ldap.c [_WIN32]: Include Windows specific header files.
86         Suggested by Brian Gladman.
87
88 2004-05-26  David Shaw  <dshaw@jabberwocky.com>
89
90         * gpgkeys_http.c: General polish and removal of leftover stuff
91         from gpgkeys_hkp.c.
92
93 2004-05-21  David Shaw  <dshaw@jabberwocky.com>
94
95         * gpgkeys_http.c (get_key): Cosmetic fix - make sure that URLs
96         with no path use a path of "/".
97
98         * gpgkeys_ldap.c (ldap2epochtime): We can always rely on timegm()
99         being available now, since it's a replacement function.
100
101 2004-05-20  David Shaw  <dshaw@jabberwocky.com>
102
103         * gpgkeys_http.c: New program to do a simple HTTP file fetch using
104         the keyserver interface.
105
106         * Makefile.am: Build it.
107
108 2004-02-28  David Shaw  <dshaw@jabberwocky.com>
109
110         * Makefile.am: Don't split LDADD across two lines since some make
111         programs can't handle blank lines after a \ continuation.  Noted
112         by Christoph Moench-Tegeder.
113
114 2004-02-25  David Shaw  <dshaw@jabberwocky.com>
115
116         * gpgkeys_ldap.c (send_key): List pgpCertID as one of the deleted
117         attributes.  This guarantees that if something goes wrong, we
118         won't be able to complete the transaction, thus leaving any key
119         already existing on the server intact.
120
121 2004-02-23  David Shaw  <dshaw@jabberwocky.com>
122
123         * gpgkeys_ldap.c (delete_one_attr): Removed.
124         (make_one_attr): Delete functionality added.  Optional deduping
125         functionality added (currently only used for pgpSignerID).
126         (build_attrs): Translate sig entries into pgpSignerID.  Properly
127         build the timestamp for pgpKeyCreateTime and pgpKeyExpireTime.
128
129 2004-02-22  David Shaw  <dshaw@jabberwocky.com>
130
131         * gpgkeys_ldap.c (delete_one_attr): New function to replace
132         attributes with NULL (a "delete" that works even for nonexistant
133         attributes).
134         (send_key): Use it here to remove attributes so a modify operation
135         starts with a clean playing field.  Bias sends to modify before
136         add, since (I suspect) people update their existing keys more
137         often than they make and send new keys to the server.
138
139 2004-02-21  David Shaw  <dshaw@jabberwocky.com>
140
141         * gpgkeys_ldap.c (epoch2ldaptime): New.  Converse of
142         ldap2epochtime.
143         (make_one_attr): New. Build a modification list in memory to send
144         to the LDAP server.
145         (build_attrs): New. Parse INFO lines sent over by gpg.
146         (free_mod_values): New.  Unwinds a modification list.
147         (send_key_keyserver): Renamed from old send_key().
148         (send_key): New function to send a key to a LDAP server.
149         (main): Use send_key() for real LDAP servers, send_key_keyserver()
150         otherwise.
151
152 2004-02-20  David Shaw  <dshaw@jabberwocky.com>
153
154         * gpgkeys_ldap.c: Replacement prototypes for setenv and unsetenv.
155         (search_key): Catch a SIZELIMIT_EXCEEDED error and show the user
156         whatever the server did give us.
157         (find_basekeyspacedn): There is no guarantee that namingContexts
158         will be readable.
159
160         * Makefile.am: Link gpgkeys_ldap with libutil.a to get the
161         replacement functions (and eventually translations, etc).
162
163 2004-02-19  David Shaw  <dshaw@jabberwocky.com>
164
165         * gpgkeys_ldap.c (ldap2epochtime): LDAP timestamps are UTC, so do
166         not correct for timezones.
167         (main): Find the basekeyspacedn before we try to start TLS, so we
168         can give a better error message when a user tries to use TLS with
169         a LDAP keyserver.
170
171         * Makefile.am: Add automake conditionals to symlink gpgkeys_ldaps
172         to gpgkeys_ldap when needed.
173
174         * gpgkeys_ldap.c (main): Add support for LDAPS and TLS
175         connections.  These are only useful and usable when talking to
176         real LDAP keyservers.  Add new "tls" option to tune TLS use from
177         off, to try quietly, to try loudly, or to require TLS.
178
179         * gpgkeys_ldap.c (find_basekeyspacedn): New function to figure out
180         what kind of LDAP server we're talking to (either real LDAP or the
181         LDAP keyserver), and return the baseKeySpaceDN to find keys under.
182         (main): Call it from here, and remove the old code that only
183         handled the LDAP keyserver.
184
185 2004-02-18  David Shaw  <dshaw@jabberwocky.com>
186
187         * gpgkeys_ldap.c (ldap_to_gpg_err): Make sure that
188         LDAP_OPT_ERROR_NUMBER is defined before we use it.
189
190         * gpgkeys_mailto.in: Fix VERSION number.
191
192 2004-01-13  Werner Koch  <wk@gnupg.org>
193
194         * gpgkeys_hkp.c (send_key): Add a content type.
195
196 2004-01-11  David Shaw  <dshaw@jabberwocky.com>
197
198         * gpgkeys_hkp.c (search_key): Catch a mangled input file (useful
199         if something other than GnuPG is calling the program).
200         (main): Avoid possible pre-string write.  Noted by Christian
201         Biere.
202
203         * gpgkeys_ldap.c (main): Avoid possible pre-string write.
204
205 2003-12-28  David Shaw  <dshaw@jabberwocky.com>
206
207         * gpgkeys_hkp.c (send_key, get_key, main): Work with new HTTP code
208         that passes the proxy in from the outside.  If the command file
209         sends a proxy, use it.  If it sends "http-proxy" with no
210         arguments, use $http_proxy from the environment.  Suggested by
211         Christian Biere.
212
213 2003-12-28  Stefan Bellon  <sbellon@sbellon.de>
214
215         * gpgkeys_hkp.c, gpgkeys_ldap.c [__riscos__]: Removal of
216         unnecessary #ifdef __riscos__ sections.
217
218 2003-11-27  Werner Koch  <wk@gnupg.org>
219
220         * gpgkeys_hkp.c (get_key): Fixed invalid use of fprintf without
221         format string.
222
223 2003-10-25  Werner Koch  <wk@gnupg.org>
224
225         * Makefile.am (gpgkeys_hkp_LDADD): Replaced INTLLIBS by LIBINTL.
226
227 2003-07-10  David Shaw  <dshaw@jabberwocky.com>
228
229         * Makefile.am: Use W32LIBS where appropriate.
230
231 2003-05-30  David Shaw  <dshaw@jabberwocky.com>
232
233         * gpgkeys_hkp.c, gpgkeys_ldap.c: #include <getopt.h> if it is
234         available.  Also include extern references for optarg and optind
235         since there is no guarantee that any header file will include
236         them.  Standards?  We don't need no stinkin' standards.
237
238         * Makefile.am: Use @GETOPT@ to pull in libiberty on those
239         platforms that need it.
240
241 2003-04-08  David Shaw  <dshaw@jabberwocky.com>
242
243         * gpgkeys_hkp.c (dehtmlize, parse_hkp_index): Fix memory
244         corruption bug on some platforms.
245
246 2003-03-11  David Shaw  <dshaw@jabberwocky.com>
247
248         * gpgkeys_hkp.c (get_key): Properly handle CRLF line endings in
249         the armored key.
250         (main): Accept "try-dns-srv" option.
251
252         * Makefile.am: Use @CAPLIBS@ to link in -lcap if we are using
253         capabilities.  Use @SRVLIBS@ to link in the resolver if we are
254         using DNS SRV.
255
256 2003-02-11  David Shaw  <dshaw@jabberwocky.com>
257
258         * Makefile.am: Use a local copy of libexecdir along with @PACKAGE@
259         so it can be easily overridden at make time.
260
261 2003-01-29  David Shaw  <dshaw@jabberwocky.com>
262
263         * gpgkeys_mailto.in: Fix regexp to work properly if the "keyid" is
264         not a keyid, but rather a text string from the user ID.
265
266 2003-01-06  David Shaw  <dshaw@jabberwocky.com>
267
268         * gpgkeys_hkp.c (get_key): Use options=mr when getting a key so
269         keyserver doesn't attach the HTML header which we will just have
270         to discard.
271
272 2002-11-17  David Shaw  <dshaw@jabberwocky.com>
273
274         * gpgkeys_ldap.c (main), gpgkeys_hkp.c (main): Use new keyserver
275         protocol version.
276
277 2002-11-14  David Shaw  <dshaw@jabberwocky.com>
278
279         * gpgkeys_ldap.c (get_key): The deduping code requires
280         "pgpcertid", but that was not available when running without
281         verbose on.  Noted by Stefan.
282
283 2002-11-10  David Shaw  <dshaw@jabberwocky.com>
284
285         * gpgkeys_ldap.c (get_key): Fix typo in deduping code.
286
287 2002-11-05  David Shaw  <dshaw@jabberwocky.com>
288
289         * gpgkeys_ldap.c (key_in_keylist, add_key_to_keylist,
290         free_keylist, get_key, search_key): The LDAP keyserver doesn't
291         remove duplicates, so remove them locally.  Do not include the key
292         modification time in the search response.
293
294 2002-11-04  David Shaw  <dshaw@jabberwocky.com>
295
296         * gpgkeys_hkp.c (send_key), gpgkeys_ldap.c (send_key): Properly
297         handle an input file that does not include any key data at all.
298
299 2002-10-24  David Shaw  <dshaw@jabberwocky.com>
300
301         * gpgkeys_hkp.c (main), gpgkeys_ldap.c (main): Add -V flag to
302         output protocol and program version.
303
304 2002-10-21  David Shaw  <dshaw@jabberwocky.com>
305
306         * Makefile.am: Anything linking with libutil.a needs INTLLIBS as
307         well on platforms where INTLLIBS is set.
308
309 2002-10-14  David Shaw  <dshaw@jabberwocky.com>
310
311         * gpgkeys_hkp.c (write_quoted): Use %-encoding instead of
312         \-encoding.
313         (parse_hkp_index): Use new keyserver key listing format, and add
314         support for disabled keys via include-disabled.
315
316         * gpgkeys_ldap.c (get_key): Don't print keysize unless it's >0.
317         (printquoted): Use %-encoding instead of \-encoding.
318         (search_key): Use new keyserver key listing format.
319
320 2002-10-08  David Shaw  <dshaw@jabberwocky.com>
321
322         * gpgkeys_ldap.c (search_key, main): Make sure LDAP values are
323         freed in case of error.
324
325         * gpgkeys_ldap.c (fail_all): New function to unwind a keylist and
326         error each item.
327         (main): Call fail_all from here, as needed.  Also add a NO_MEMORY
328         error in an appropriate place and fix error return code.
329         (ldap_err_to_gpg_err): Add KEYSERVER_UNREACHABLE.
330
331         * gpgkeys_hkp.c (fail_all): New function to unwind a keylist and
332         error each item.
333         (main): Call fail_all from here.  Also add a NO_MEMORY error in an
334         appropriate place.
335         (get_key): Use new UNREACHABLE error for network errors.
336
337 2002-09-26  Werner Koch  <wk@gnupg.org>
338
339         * gpgkeys_ldap.c (send_key): Removed non-constant initializers.
340
341 2002-09-24  David Shaw  <dshaw@jabberwocky.com>
342
343         * gpgkeys_ldap.c (ldap_err_to_gpg_err, ldap_to_gpg_err, send_key,
344         get_key, search_key, main): Some minor error reporting
345         enhancements for use with GPA (show reasons for KEY FAILED).
346
347         * gpgkeys_hkp.c (send_key, get_key, search_key, main): Some minor
348         error reporting enhancements for use with GPA (show reasons for
349         KEY FAILED).
350
351 2002-09-20  Werner Koch  <wk@gnupg.org>
352
353         * gpgkeys_hkp.c (handle_old_hkp_index): s/input/inp/ to avoid
354         shadowing warning.
355
356 2002-09-19  David Shaw  <dshaw@jabberwocky.com>
357
358         * gpgkeys_hkp.c (get_key, handle_old_hkp_index, search_key):
359         Properly handle line truncation.
360
361 2002-09-16  David Shaw  <dshaw@jabberwocky.com>
362
363         * gpgkeys_mailto.in: Add quasi-RFC-2368 mailto:email@addr?from=
364         syntax so people can set their own email address to respond to.
365
366         * gpgkeys_hkp.c (get_key): Properly respond with KEY FAILED (to
367         gpg) and "key not found" (to user) on failure.
368
369 2002-09-13  David Shaw  <dshaw@jabberwocky.com>
370
371         * gpgkeys_hkp.c: (search_key, handle_old_hkp_index): Try and
372         request a machine-readable key index.  If the server supports
373         this, pass it through.  If the server does not support it, parse
374         the "index" page.
375
376 2002-09-12  Stefan Bellon  <sbellon@sbellon.de>
377
378         * gpgkeys_hkp.c: Tidied up RISC OS initializations.
379
380 2002-09-12  David Shaw  <dshaw@jabberwocky.com>
381
382         * gpgkeys_hkp.c (main): Remove warning - this is no longer
383         experimental code.
384
385 2002-09-09  Werner Koch  <wk@gnupg.org>
386
387         * gpgkeys_hkp.c (send_key, get_key, search_key): Check return
388         value of malloc.
389         (dehtmlize): Use ascii_tolower to protect against weird locales.
390         Cast the argument for isspace for the sake of broken HP/UXes.
391         (search_key): Check return value of realloc.
392
393 2002-09-09  David Shaw  <dshaw@jabberwocky.com>
394
395         * gpgkeys_ldap.c (get_key): Some compilers (RISC OS, HPUX c89)
396         don't like using variables as array initializers.
397
398         * gpgkeys_hkp.c (send_key): Use CRLF in headers.
399
400 2002-08-28  David Shaw  <dshaw@jabberwocky.com>
401
402         * gpgkeys_hkp.c (parse_hkp_index): Use same types on all
403         platforms.  This was probably leftover from earlier code where the
404         typing mattered.
405
406         * gpgkeys_hkp.c: Overall cleanup from iobuf conversion.  Be
407         consistent in m_alloc and malloc usage.  Remove include-disabled
408         (meaningless on HKP).  RISC OS tweak.
409
410 2002-08-27  David Shaw  <dshaw@jabberwocky.com>
411
412         * gpgkeys_hkp.c, Makefile.am: Convert over to using iobufs.
413
414         * gpgkeys_hkp.c (http_get, http_post): Use CRLF for line endings.
415
416         * gpgkeys_hkp.c: Include util.h on RISC OS as per Stefan.  Include
417         a replacement for hstrerror() for those platforms (such as RISC
418         OS) that don't have it.
419
420 2002-08-26  David Shaw  <dshaw@jabberwocky.com>
421
422         * Makefile.am: May as well include gpgkeys_hkp.c in the
423         distribution now.  It works well enough without proxies, and isn't
424         built by default.  It would be good to get some test experience
425         with it.
426
427         * gpgkeys_hkp.c (main): Don't warn about include-subkeys - it
428         isn't unsupported, it's actually non-meaningful in the context of
429         HKP (yet).
430
431         * gpgkeys_hkp.c (parse_hkp_index, dehtmlize): Move HTML
432         functionality into new "dehtmlize" function.  Remove HTML before
433         trying to parse each line from the keyserver.  If the keyserver
434         provides key type information in the listing, use it.  (Copy over
435         from g10/hkp.c).
436
437 2002-08-19  David Shaw  <dshaw@jabberwocky.com>
438
439         * gpgkeys_hkp.c (get_key, parse_hkp_index): Bring over latest code
440         from g10/hkp.c.
441
442         * gpgkeys_ldap.c (get_key): Fix cosmetic URL display problem
443         (extra ":" at the end).
444
445 2002-08-03  Stefan Bellon  <sbellon@sbellon.de>
446
447         * gpgkeys_ldap.c: Tidied up RISC OS initializations.
448
449 2002-07-25  David Shaw  <dshaw@jabberwocky.com>
450
451         * gpgkeys_hkp.c: "Warning" -> "WARNING"
452
453 2002-07-24  David Shaw  <dshaw@jabberwocky.com>
454
455         * Makefile.am: Install keyserver helpers in @GNUPG_LIBEXECDIR@
456
457 2002-07-15  David Shaw  <dshaw@jabberwocky.com>
458
459         * gpgkeys_ldap.c (send_key, get_key, main): Consult the server
460         version string to determine whether to use pgpKey or pgpKeyV2.
461
462 2002-07-09  David Shaw  <dshaw@jabberwocky.com>
463
464         * gpgkeys_mailto.in: Use new OPAQUE tag for non net-path URIs.
465         Fail more elegantly if there is no email address to send to.  Show
466         the GnuPG version in the message body.
467
468 2002-07-04  David Shaw  <dshaw@jabberwocky.com>
469
470         * gpgkeys_ldap.c (get_key), gpgkeys_hkp.c (get_key): Display
471         keyserver URI as a URI, but only if verbose.
472
473 2002-07-01  David Shaw  <dshaw@jabberwocky.com>
474
475         * gpgkeys_hkp.c (parse_hkp_index): Error if the keyserver returns
476         an unparseable HKP response.
477
478         * gpgkeys_hkp.c (main): Warn on honor-http-proxy,
479         broken-http-proxy, and include-subkeys (not supported yet).
480
481         * gpgkeys_ldap.c (main), gpgkeys_hkp.c (http_connect, main): Fix
482         some shadowing warnings.
483
484 2002-06-11  David Shaw  <dshaw@jabberwocky.com>
485
486         * Makefile.am: Don't hard-code the LDAP libraries - get them from
487         LDAPLIBS via configure.  Also, gpgkeys_hkp is a program, not a
488         script.
489
490 2002-06-10  David Shaw  <dshaw@jabberwocky.com>
491
492         * gpgkeys_ldap.c (include_subkeys): Default "include-subkeys" to
493         off, since GnuPG now defaults it to on.
494
495 2002-06-06  David Shaw  <dshaw@jabberwocky.com>
496
497         * gpgkeys_hkp.c (parse_hkp_index): Type tweaks.
498
499         * gpgkeys_hkp.c (main): Add experimental code warning.
500
501 2002-06-05  David Shaw  <dshaw@jabberwocky.com>
502
503         * Makefile.am, gpgkeys_hkp.c (new): Experimental HKP keyserver
504         interface.
505
506 2002-05-08  David Shaw  <dshaw@jabberwocky.com>
507
508         * gpgkeys_ldap.c: Include <lber.h> if we absolutely must.  This
509         helps when compiling against a very old OpenLDAP.
510
511 2002-04-29  David Shaw  <dshaw@jabberwocky.com>
512
513         * gpgkeys_mailto.in: Properly handle key requests in full
514         fingerprint form.
515
516 2002-03-29  David Shaw  <dshaw@jabberwocky.com>
517
518         * gpgkeys_ldap.c (printquoted): Quote backslashes within keyserver
519         search responses.
520
521 2002-02-25  David Shaw  <dshaw@jabberwocky.com>
522
523         * gpgkeys_ldap (get_key): LDAP keyservers do not support v3
524         fingerprints, so error out if someone tries.  Actually, they don't
525         support any fingerprints, but at least we can calculate a keyid
526         from a v4 fingerprint.
527
528 2002-02-23  David Shaw  <dshaw@jabberwocky.com>
529
530         * gpgkeys_ldap: Clarify the notion of a partial failure.  This is
531         possible if more than one key is being handled in a batch, and one
532         fails while the other succeeds.  Note that a search that comes up
533         with no results is not a failure - that is a valid response of "no
534         answer".
535
536         * gpgkeys_ldap.c (get_key): Allow GnuPG to send us full v4
537         fingerprints, long key ids, or short key ids while fetching.
538         Since the LDAP server doesn't actually handle fingerprints, chop
539         them down to long key ids for actual use.
540
541         * gpgkeys_ldap.c (main, get_key): When searching for a keyid,
542         search for subkeys as well as primary keys.  This is mostly
543         significant when automatically fetching the key based on the id in
544         a header (i.e. "signature made by....").  "no-include-subkeys"
545         disables.
546
547 2002-02-14  David Shaw  <dshaw@jabberwocky.com>
548
549         * gpgkeys_ldap.c: Fix compiler warning.
550
551         * gpgkeys_ldap.c: Be much more robust with mangled input files.
552
553 2001-12-28  David Shaw  <dshaw@jabberwocky.com>
554
555         * gpgkeys_mailto.in: Use the new OUTOFBAND indicator so gpg knows
556         not to try and import anything.  Also turn on perl -w for
557         warnings.
558
559         * gpgkeys_ldap.c (main): If we're using temp files (rather than
560         stdin/stdout), make sure the file is closed when we're done.
561
562 2001-12-20  David Shaw  <dshaw@jabberwocky.com>
563
564         * Properly free the LDAP response when we're done with it.
565
566         * Now that we handle multiple keys, we must remove duplicates as
567         the LDAP keyserver returns keys with multiple user IDs multiple
568         times.
569
570         * Properly handle multiple keys with the same key ID (it's really
571         rare, so fetch "0xDEADBEEF" to test this).
572
573 2001-12-17  David Shaw  <dshaw@jabberwocky.com>
574
575         * gpgkeys_ldap.c, gpgkeys_mailto.in: Fix GNU capitalization
576         issues.  Prefix log messages with "gpgkeys" to clarify which
577         program is generating them.
578
579 2001-12-14  David Shaw  <dshaw@jabberwocky.com>
580
581         * gpgkeys_ldap.c (search_key): Use unsigned int rather than uint
582         for portability.
583
584 2001-12-04  David Shaw  <dshaw@jabberwocky.com>
585
586         * Initial version of gpgkeys_ldap (LDAP keyserver helper) and
587         gpgkeys_mailto (email keyserver helper)
588
589
590  Copyright 1998, 1999, 2000, 2001, 2002, 2003,
591            2004 Free Software Foundation, Inc.
592
593  This file is free software; as a special exception the author gives
594  unlimited permission to copy and/or distribute it, with or without
595  modifications, as long as this notice is preserved.
596
597  This file is distributed in the hope that it will be useful, but
598  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
599  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.