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