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