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