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