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