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