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