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