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