* gpgkeys_ldap.c: Replacement prototypes for setenv and unsetenv.
[gnupg.git] / keyserver / ChangeLog
1 2004-02-20  David Shaw  <dshaw@jabberwocky.com>
2
3         * gpgkeys_ldap.c: Replacement prototypes for setenv and unsetenv.
4         (search_key): Catch a SIZELIMIT_EXCEEDED error and show the user
5         whatever the server did give us.
6         (find_basekeyspacedn): There is no guarantee that namingContexts
7         will be readable.
8
9         * Makefile.am: Link gpgkeys_ldap with libutil.a to get the
10         replacement functions (and eventually translations, etc).
11
12 2004-02-19  David Shaw  <dshaw@jabberwocky.com>
13
14         * gpgkeys_ldap.c (ldap2epochtime): LDAP timestamps are UTC, so do
15         not correct for timezones.
16         (main): Find the basekeyspacedn before we try to start TLS, so we
17         can give a better error message when a user tries to use TLS with
18         a LDAP keyserver.
19
20         * Makefile.am: Add automake conditionals to symlink gpgkeys_ldaps
21         to gpgkeys_ldap when needed.
22
23         * gpgkeys_ldap.c (main): Add support for LDAPS and TLS
24         connections.  These are only useful and usable when talking to
25         real LDAP keyservers.  Add new "tls" option to tune TLS use from
26         off, to try quietly, to try loudly, or to require TLS.
27
28         * gpgkeys_ldap.c (find_basekeyspacedn): New function to figure out
29         what kind of LDAP server we're talking to (either real LDAP or the
30         LDAP keyserver), and return the baseKeySpaceDN to find keys under.
31         (main): Call it from here, and remove the old code that only
32         handled the LDAP keyserver.
33
34 2004-02-18  David Shaw  <dshaw@jabberwocky.com>
35
36         * gpgkeys_ldap.c (ldap_to_gpg_err): Make sure that
37         LDAP_OPT_ERROR_NUMBER is defined before we use it.
38
39         * gpgkeys_mailto.in: Fix VERSION number.
40
41 2004-01-13  Werner Koch  <wk@gnupg.org>
42
43         * gpgkeys_hkp.c (send_key): Add a content type.
44
45 2004-01-11  David Shaw  <dshaw@jabberwocky.com>
46
47         * gpgkeys_hkp.c (search_key): Catch a mangled input file (useful
48         if something other than GnuPG is calling the program).
49         (main): Avoid possible pre-string write.  Noted by Christian
50         Biere.
51
52         * gpgkeys_ldap.c (main): Avoid possible pre-string write.
53
54 2003-12-28  David Shaw  <dshaw@jabberwocky.com>
55
56         * gpgkeys_hkp.c (send_key, get_key, main): Work with new HTTP code
57         that passes the proxy in from the outside.  If the command file
58         sends a proxy, use it.  If it sends "http-proxy" with no
59         arguments, use $http_proxy from the environment.  Suggested by
60         Christian Biere.
61
62 2003-12-28  Stefan Bellon  <sbellon@sbellon.de>
63
64         * gpgkeys_hkp.c, gpgkeys_ldap.c [__riscos__]: Removal of
65         unnecessary #ifdef __riscos__ sections.
66
67 2003-11-27  Werner Koch  <wk@gnupg.org>
68
69         * gpgkeys_hkp.c (get_key): Fixed invalid use of fprintf without
70         format string.
71
72 2003-10-25  Werner Koch  <wk@gnupg.org>
73
74         * Makefile.am (gpgkeys_hkp_LDADD): Replaced INTLLIBS by LIBINTL.
75
76 2003-07-10  David Shaw  <dshaw@jabberwocky.com>
77
78         * Makefile.am: Use W32LIBS where appropriate.
79
80 2003-05-30  David Shaw  <dshaw@jabberwocky.com>
81
82         * gpgkeys_hkp.c, gpgkeys_ldap.c: #include <getopt.h> if it is
83         available.  Also include extern references for optarg and optind
84         since there is no guarantee that any header file will include
85         them.  Standards?  We don't need no stinkin' standards.
86
87         * Makefile.am: Use @GETOPT@ to pull in libiberty on those
88         platforms that need it.
89
90 2003-04-08  David Shaw  <dshaw@jabberwocky.com>
91
92         * gpgkeys_hkp.c (dehtmlize, parse_hkp_index): Fix memory
93         corruption bug on some platforms.
94
95 2003-03-11  David Shaw  <dshaw@jabberwocky.com>
96
97         * gpgkeys_hkp.c (get_key): Properly handle CRLF line endings in
98         the armored key.
99         (main): Accept "try-dns-srv" option.
100
101         * Makefile.am: Use @CAPLIBS@ to link in -lcap if we are using
102         capabilities.  Use @SRVLIBS@ to link in the resolver if we are
103         using DNS SRV.
104
105 2003-02-11  David Shaw  <dshaw@jabberwocky.com>
106
107         * Makefile.am: Use a local copy of libexecdir along with @PACKAGE@
108         so it can be easily overridden at make time.
109
110 2003-01-29  David Shaw  <dshaw@jabberwocky.com>
111
112         * gpgkeys_mailto.in: Fix regexp to work properly if the "keyid" is
113         not a keyid, but rather a text string from the user ID.
114
115 2003-01-06  David Shaw  <dshaw@jabberwocky.com>
116
117         * gpgkeys_hkp.c (get_key): Use options=mr when getting a key so
118         keyserver doesn't attach the HTML header which we will just have
119         to discard.
120
121 2002-11-17  David Shaw  <dshaw@jabberwocky.com>
122
123         * gpgkeys_ldap.c (main), gpgkeys_hkp.c (main): Use new keyserver
124         protocol version.
125
126 2002-11-14  David Shaw  <dshaw@jabberwocky.com>
127
128         * gpgkeys_ldap.c (get_key): The deduping code requires
129         "pgpcertid", but that was not available when running without
130         verbose on.  Noted by Stefan.
131
132 2002-11-10  David Shaw  <dshaw@jabberwocky.com>
133
134         * gpgkeys_ldap.c (get_key): Fix typo in deduping code.
135
136 2002-11-05  David Shaw  <dshaw@jabberwocky.com>
137
138         * gpgkeys_ldap.c (key_in_keylist, add_key_to_keylist,
139         free_keylist, get_key, search_key): The LDAP keyserver doesn't
140         remove duplicates, so remove them locally.  Do not include the key
141         modification time in the search response.
142
143 2002-11-04  David Shaw  <dshaw@jabberwocky.com>
144
145         * gpgkeys_hkp.c (send_key), gpgkeys_ldap.c (send_key): Properly
146         handle an input file that does not include any key data at all.
147
148 2002-10-24  David Shaw  <dshaw@jabberwocky.com>
149
150         * gpgkeys_hkp.c (main), gpgkeys_ldap.c (main): Add -V flag to
151         output protocol and program version.
152
153 2002-10-21  David Shaw  <dshaw@jabberwocky.com>
154
155         * Makefile.am: Anything linking with libutil.a needs INTLLIBS as
156         well on platforms where INTLLIBS is set.
157
158 2002-10-14  David Shaw  <dshaw@jabberwocky.com>
159
160         * gpgkeys_hkp.c (write_quoted): Use %-encoding instead of
161         \-encoding.
162         (parse_hkp_index): Use new keyserver key listing format, and add
163         support for disabled keys via include-disabled.
164
165         * gpgkeys_ldap.c (get_key): Don't print keysize unless it's >0.
166         (printquoted): Use %-encoding instead of \-encoding.
167         (search_key): Use new keyserver key listing format.
168
169 2002-10-08  David Shaw  <dshaw@jabberwocky.com>
170
171         * gpgkeys_ldap.c (search_key, main): Make sure LDAP values are
172         freed in case of error.
173
174         * gpgkeys_ldap.c (fail_all): New function to unwind a keylist and
175         error each item.
176         (main): Call fail_all from here, as needed.  Also add a NO_MEMORY
177         error in an appropriate place and fix error return code.
178         (ldap_err_to_gpg_err): Add KEYSERVER_UNREACHABLE.
179
180         * gpgkeys_hkp.c (fail_all): New function to unwind a keylist and
181         error each item.
182         (main): Call fail_all from here.  Also add a NO_MEMORY error in an
183         appropriate place.
184         (get_key): Use new UNREACHABLE error for network errors.
185
186 2002-09-26  Werner Koch  <wk@gnupg.org>
187
188         * gpgkeys_ldap.c (send_key): Removed non-constant initializers.
189
190 2002-09-24  David Shaw  <dshaw@jabberwocky.com>
191
192         * gpgkeys_ldap.c (ldap_err_to_gpg_err, ldap_to_gpg_err, send_key,
193         get_key, search_key, main): Some minor error reporting
194         enhancements for use with GPA (show reasons for KEY FAILED).
195
196         * gpgkeys_hkp.c (send_key, get_key, search_key, main): Some minor
197         error reporting enhancements for use with GPA (show reasons for
198         KEY FAILED).
199
200 2002-09-20  Werner Koch  <wk@gnupg.org>
201
202         * gpgkeys_hkp.c (handle_old_hkp_index): s/input/inp/ to avoid
203         shadowing warning.
204
205 2002-09-19  David Shaw  <dshaw@jabberwocky.com>
206
207         * gpgkeys_hkp.c (get_key, handle_old_hkp_index, search_key):
208         Properly handle line truncation.
209
210 2002-09-16  David Shaw  <dshaw@jabberwocky.com>
211
212         * gpgkeys_mailto.in: Add quasi-RFC-2368 mailto:email@addr?from=
213         syntax so people can set their own email address to respond to.
214
215         * gpgkeys_hkp.c (get_key): Properly respond with KEY FAILED (to
216         gpg) and "key not found" (to user) on failure.
217         
218 2002-09-13  David Shaw  <dshaw@jabberwocky.com>
219
220         * gpgkeys_hkp.c: (search_key, handle_old_hkp_index): Try and
221         request a machine-readable key index.  If the server supports
222         this, pass it through.  If the server does not support it, parse
223         the "index" page.
224
225 2002-09-12  Stefan Bellon  <sbellon@sbellon.de>
226
227         * gpgkeys_hkp.c: Tidied up RISC OS initializations.
228
229 2002-09-12  David Shaw  <dshaw@jabberwocky.com>
230
231         * gpgkeys_hkp.c (main): Remove warning - this is no longer
232         experimental code.
233
234 2002-09-09  Werner Koch  <wk@gnupg.org>
235
236         * gpgkeys_hkp.c (send_key, get_key, search_key): Check return
237         value of malloc.
238         (dehtmlize): Use ascii_tolower to protect against weird locales.
239         Cast the argument for isspace for the sake of broken HP/UXes.
240         (search_key): Check return value of realloc.
241
242 2002-09-09  David Shaw  <dshaw@jabberwocky.com>
243
244         * gpgkeys_ldap.c (get_key): Some compilers (RISC OS, HPUX c89)
245         don't like using variables as array initializers.
246
247         * gpgkeys_hkp.c (send_key): Use CRLF in headers.
248
249 2002-08-28  David Shaw  <dshaw@jabberwocky.com>
250
251         * gpgkeys_hkp.c (parse_hkp_index): Use same types on all
252         platforms.  This was probably leftover from earlier code where the
253         typing mattered.
254
255         * gpgkeys_hkp.c: Overall cleanup from iobuf conversion.  Be
256         consistent in m_alloc and malloc usage.  Remove include-disabled
257         (meaningless on HKP).  RISC OS tweak.
258
259 2002-08-27  David Shaw  <dshaw@jabberwocky.com>
260
261         * gpgkeys_hkp.c, Makefile.am: Convert over to using iobufs.
262
263         * gpgkeys_hkp.c (http_get, http_post): Use CRLF for line endings.
264
265         * gpgkeys_hkp.c: Include util.h on RISC OS as per Stefan.  Include
266         a replacement for hstrerror() for those platforms (such as RISC
267         OS) that don't have it.
268
269 2002-08-26  David Shaw  <dshaw@jabberwocky.com>
270
271         * Makefile.am: May as well include gpgkeys_hkp.c in the
272         distribution now.  It works well enough without proxies, and isn't
273         built by default.  It would be good to get some test experience
274         with it.
275
276         * gpgkeys_hkp.c (main): Don't warn about include-subkeys - it
277         isn't unsupported, it's actually non-meaningful in the context of
278         HKP (yet).
279         
280         * gpgkeys_hkp.c (parse_hkp_index, dehtmlize): Move HTML
281         functionality into new "dehtmlize" function.  Remove HTML before
282         trying to parse each line from the keyserver.  If the keyserver
283         provides key type information in the listing, use it.  (Copy over
284         from g10/hkp.c).
285
286 2002-08-19  David Shaw  <dshaw@jabberwocky.com>
287
288         * gpgkeys_hkp.c (get_key, parse_hkp_index): Bring over latest code
289         from g10/hkp.c.
290
291         * gpgkeys_ldap.c (get_key): Fix cosmetic URL display problem
292         (extra ":" at the end).
293
294 2002-08-03  Stefan Bellon  <sbellon@sbellon.de>
295
296         * gpgkeys_ldap.c: Tidied up RISC OS initializations.
297
298 2002-07-25  David Shaw  <dshaw@jabberwocky.com>
299
300         * gpgkeys_hkp.c: "Warning" -> "WARNING"
301
302 2002-07-24  David Shaw  <dshaw@jabberwocky.com>
303
304         * Makefile.am: Install keyserver helpers in @GNUPG_LIBEXECDIR@
305
306 2002-07-15  David Shaw  <dshaw@jabberwocky.com>
307
308         * gpgkeys_ldap.c (send_key, get_key, main): Consult the server
309         version string to determine whether to use pgpKey or pgpKeyV2.
310
311 2002-07-09  David Shaw  <dshaw@jabberwocky.com>
312
313         * gpgkeys_mailto.in: Use new OPAQUE tag for non net-path URIs.
314         Fail more elegantly if there is no email address to send to.  Show
315         the GnuPG version in the message body.
316
317 2002-07-04  David Shaw  <dshaw@jabberwocky.com>
318
319         * gpgkeys_ldap.c (get_key), gpgkeys_hkp.c (get_key): Display
320         keyserver URI as a URI, but only if verbose.
321
322 2002-07-01  David Shaw  <dshaw@jabberwocky.com>
323
324         * gpgkeys_hkp.c (parse_hkp_index): Error if the keyserver returns
325         an unparseable HKP response.
326
327         * gpgkeys_hkp.c (main): Warn on honor-http-proxy,
328         broken-http-proxy, and include-subkeys (not supported yet).
329
330         * gpgkeys_ldap.c (main), gpgkeys_hkp.c (http_connect, main): Fix
331         some shadowing warnings.
332
333 2002-06-11  David Shaw  <dshaw@jabberwocky.com>
334
335         * Makefile.am: Don't hard-code the LDAP libraries - get them from
336         LDAPLIBS via configure.  Also, gpgkeys_hkp is a program, not a
337         script.
338
339 2002-06-10  David Shaw  <dshaw@jabberwocky.com>
340
341         * gpgkeys_ldap.c (include_subkeys): Default "include-subkeys" to
342         off, since GnuPG now defaults it to on.
343
344 2002-06-06  David Shaw  <dshaw@jabberwocky.com>
345
346         * gpgkeys_hkp.c (parse_hkp_index): Type tweaks.
347
348         * gpgkeys_hkp.c (main): Add experimental code warning.
349
350 2002-06-05  David Shaw  <dshaw@jabberwocky.com>
351
352         * Makefile.am, gpgkeys_hkp.c (new): Experimental HKP keyserver
353         interface.
354
355 2002-05-08  David Shaw  <dshaw@jabberwocky.com>
356
357         * gpgkeys_ldap.c: Include <lber.h> if we absolutely must.  This
358         helps when compiling against a very old OpenLDAP.
359
360 2002-04-29  David Shaw  <dshaw@jabberwocky.com>
361
362         * gpgkeys_mailto.in: Properly handle key requests in full
363         fingerprint form.
364
365 2002-03-29  David Shaw  <dshaw@jabberwocky.com>
366
367         * gpgkeys_ldap.c (printquoted): Quote backslashes within keyserver
368         search responses.
369
370 2002-02-25  David Shaw  <dshaw@jabberwocky.com>
371
372         * gpgkeys_ldap (get_key): LDAP keyservers do not support v3
373         fingerprints, so error out if someone tries.  Actually, they don't
374         support any fingerprints, but at least we can calculate a keyid
375         from a v4 fingerprint.
376
377 2002-02-23  David Shaw  <dshaw@jabberwocky.com>
378
379         * gpgkeys_ldap: Clarify the notion of a partial failure.  This is
380         possible if more than one key is being handled in a batch, and one
381         fails while the other succeeds.  Note that a search that comes up
382         with no results is not a failure - that is a valid response of "no
383         answer".
384
385         * gpgkeys_ldap.c (get_key): Allow GnuPG to send us full v4
386         fingerprints, long key ids, or short key ids while fetching.
387         Since the LDAP server doesn't actually handle fingerprints, chop
388         them down to long key ids for actual use.
389
390         * gpgkeys_ldap.c (main, get_key): When searching for a keyid,
391         search for subkeys as well as primary keys.  This is mostly
392         significant when automatically fetching the key based on the id in
393         a header (i.e. "signature made by....").  "no-include-subkeys"
394         disables.
395
396 2002-02-14  David Shaw  <dshaw@jabberwocky.com>
397
398         * gpgkeys_ldap.c: Fix compiler warning.
399
400         * gpgkeys_ldap.c: Be much more robust with mangled input files.
401
402 2001-12-28  David Shaw  <dshaw@jabberwocky.com>
403
404         * gpgkeys_mailto.in: Use the new OUTOFBAND indicator so gpg knows
405         not to try and import anything.  Also turn on perl -w for
406         warnings.
407
408         * gpgkeys_ldap.c (main): If we're using temp files (rather than
409         stdin/stdout), make sure the file is closed when we're done.
410
411 2001-12-20  David Shaw  <dshaw@jabberwocky.com>
412
413         * Properly free the LDAP response when we're done with it.
414
415         * Now that we handle multiple keys, we must remove duplicates as
416         the LDAP keyserver returns keys with multiple user IDs multiple
417         times.
418
419         * Properly handle multiple keys with the same key ID (it's really
420         rare, so fetch "0xDEADBEEF" to test this).
421
422 2001-12-17  David Shaw  <dshaw@jabberwocky.com>
423
424         * gpgkeys_ldap.c, gpgkeys_mailto.in: Fix GNU capitalization
425         issues.  Prefix log messages with "gpgkeys" to clarify which
426         program is generating them.
427
428 2001-12-14  David Shaw  <dshaw@jabberwocky.com>
429
430         * gpgkeys_ldap.c (search_key): Use unsigned int rather than uint
431         for portability.
432
433 2001-12-04  David Shaw  <dshaw@jabberwocky.com>
434
435         * Initial version of gpgkeys_ldap (LDAP keyserver helper) and
436         gpgkeys_mailto (email keyserver helper)
437
438         
439  Copyright 1998, 1999, 2000, 2001, 2002, 2003,
440            2004 Free Software Foundation, Inc.
441
442  This file is free software; as a special exception the author gives
443  unlimited permission to copy and/or distribute it, with or without
444  modifications, as long as this notice is preserved.
445
446  This file is distributed in the hope that it will be useful, but
447  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
448  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.