* gpgkeys_hkp.c, gpgkeys_oldhkp.c: Add support for HKP servers that
[gnupg.git] / keyserver / ChangeLog
1 2005-06-04  David Shaw  <dshaw@jabberwocky.com>
2
3         * gpgkeys_hkp.c, gpgkeys_oldhkp.c: Add support for HKP servers
4         that aren't at the root path.  Suggested by Jack Bates.
5
6 2005-06-01  David Shaw  <dshaw@jabberwocky.com>
7
8         * ksutil.c [HAVE_DOSISH_SYSTEM]: Fix warnings on mingw32.  Noted
9         by Joe Vender.
10
11 2005-05-04  David Shaw  <dshaw@jabberwocky.com>
12
13         * ksutil.h, ksutil.c: #ifdef so we can build without libcurl or
14         fake-curl.
15
16 2005-05-03  David Shaw  <dshaw@jabberwocky.com>
17
18         * gpgkeys_http.c: Need GET defined.
19
20 2005-05-01  David Shaw  <dshaw@jabberwocky.com>
21
22         * gpgkeys_hkp.c, gpgkeys_oldhkp.c, ksutil.h: Some minor cleanup
23         and comments as to the size of MAX_LINE and MAX_URL.
24
25 2005-04-16  David Shaw  <dshaw@jabberwocky.com>
26
27         * gpgkeys_hkp.c: New hkp handler that uses curl or curl-shim.
28
29         * Makefile.am: Build new gpgkeys_hkp.
30
31         * curl-shim.c (curl_easy_perform): Cleanup.
32
33         * ksutil.h, ksutil.c (curl_writer), gpgkeys_curl.c (get_key): Pass
34         a context to curl_writer so we can support multiple fetches in a
35         single session.
36
37         * curl-shim.h, curl-shim.c (handle_error, curl_easy_setopt,
38         curl_easy_perform): Add POST functionality to the curl shim.
39
40         * curl-shim.h, curl-shim.c (curl_escape, curl_free): Emulate
41         curl_escape and curl_free.
42
43         * gpgkeys_curl.c (main): If the http-proxy option is given without
44         any arguments, try to get the proxy from the environment.
45
46         * ksutil.h, ksutil.c (curl_err_to_gpg_err, curl_writer): Copy from
47         gpgkeys_curl.c.
48
49         * gpgkeys_oldhkp.c: Copy from gpgkeys_hkp.c.
50
51 2005-03-22  David Shaw  <dshaw@jabberwocky.com>
52
53         * gpgkeys_ldap.c, ksutil.h, ksutil.c (print_nocr): Moved from
54         gpgkeys_ldap.c.  Print a string, but strip out any CRs.
55
56         * gpgkeys_finger.c (get_key), gpgkeys_hkp.c (get_key),
57         gpgkeys_http.c (get_key): Use it here when outputting key material
58         to canonicalize line endings.
59
60 2005-03-19  David Shaw  <dshaw@jabberwocky.com>
61
62         * gpgkeys_ldap.c (main): Fix three wrong calls to fail_all().
63         Noted by Stefan Bellon.
64
65 2005-03-17  David Shaw  <dshaw@jabberwocky.com>
66
67         * ksutil.c (parse_ks_options): Handle verbose=nnn.
68
69         * Makefile.am: Calculate GNUPG_LIBEXECDIR directly.  Do not
70         redefine $libexecdir.
71
72         * gpgkeys_curl.c, gpgkeys_finger.c, gpgkeys_ldap.c: Start using
73         parse_ks_options and remove a lot of common code.
74
75         * ksutil.h, ksutil.c (parse_ks_options): Parse OPAQUE, and default
76         debug with no arguments to 1.
77
78 2005-03-16  David Shaw  <dshaw@jabberwocky.com>
79
80         * gpgkeys_ldap.c: Include lber.h if configure determines we need
81         it.
82
83         * ksutil.h, ksutil.c (ks_action_to_string): New.
84         (free_ks_options): Only free if options exist.
85
86         * ksutil.h, ksutil.c (init_ks_options, free_ks_options,
87         parse_ks_options): Pull a lot of duplicated code into a single
88         options parser for all keyserver helpers.
89
90 2005-02-11  David Shaw  <dshaw@jabberwocky.com>
91
92         * curl-shim.c (curl_easy_perform): Fix compile warning.
93
94         * curl-shim.h, gpgkeys_curl.c (main), gpgkeys_ldap.c (main): Add
95         ca-cert-file option, to pass in the SSL cert.
96
97         * curl-shim.h, curl-shim.c: New.  This is code to fake the curl
98         API in terms of the current HTTP iobuf API.
99
100         * gpgkeys_curl.c [FAKE_CURL], Makefile.am: If FAKE_CURL is set,
101         link with the iobuf code rather than libcurl.
102
103 2005-02-05  David Shaw  <dshaw@jabberwocky.com>
104
105         * gpgkeys_finger.c (main), gpgkeys_hkp.c (main): Fix --version
106         output.
107
108         * gpgkeys_curl.c (main): Make sure the curl handle is cleaned up
109         on failure.
110
111 2005-02-01  David Shaw  <dshaw@jabberwocky.com>
112
113         * gpgkeys_hkp.c (get_key), gpgkeys_http.c (get_key): Fix missing
114         http_close() calls.  Noted by Phil Pennock.
115
116         * ksutil.h: Up the default timeout to two minutes.
117
118 2005-01-24  David Shaw  <dshaw@jabberwocky.com>
119
120         * gpgkeys_ldap.c (print_nocr): New.
121         (get_key): Call it here to canonicalize line endings.
122
123         * gpgkeys_curl.c (writer): Discard everything outside the BEGIN
124         and END lines when retrieving keys.  Canonicalize line endings.
125         (main): Accept FTPS.
126
127 2005-01-21  David Shaw  <dshaw@jabberwocky.com>
128
129         * gpgkeys_ldap.c (main): Add "check-cert" option to disable SSL
130         certificate checking (which is on by default).
131
132         * gpgkeys_curl.c (main): Add "debug" option to match the LDAP
133         helper.  Add "check-cert" option to disable SSL certificate
134         checking (which is on by default).
135
136 2005-01-18  David Shaw  <dshaw@jabberwocky.com>
137
138         * gpgkeys_curl.c: Fix typo.
139
140 2005-01-18  Werner Koch  <wk@g10code.com>
141
142         * gpgkeys_curl.c: s/MAX_PATH/URLMAX_PATH/g to avoid a clash with
143         the W32 defined macro.  Removed unneeded initialization of static
144         variables.
145         * gpgkeys_http.c: Ditto.
146         * ksutil.h: s/MAX_PATH/URLMAX_PATH/.
147
148 2005-01-17  David Shaw  <dshaw@jabberwocky.com>
149
150         * gpgkeys_curl.c (main): Only allow specified protocols to use the
151         curl handler.
152
153         * Makefile.am: Use LIBCURL_CPPFLAGS instead of LIBCURL_INCLUDES.
154
155 2005-01-13  David Shaw  <dshaw@jabberwocky.com>
156
157         * ksutil.h, gpgkeys_curl.c, gpgkeys_hkp.c, gpgkeys_ldap.c,
158         gpgkeys_finger.c, gpgkeys_http.c: Part 2 of the cleanup.  Move all
159         the various defines to ksutil.h.
160
161         * gpgkeys_finger.c, gpgkeys_hkp.c, gpgkeys_http.c, gpgkeys_ldap.c:
162         Part 1 of a minor cleanup to use #defines instead of hard-coded
163         sizes.
164
165         * gpgkeys_finger.c (connect_server): Use INADDR_NONE instead of
166         SOCKET_ERROR.  Noted by Timo.
167
168 2005-01-09  David Shaw  <dshaw@jabberwocky.com>
169
170         * gpgkeys_curl.c (get_key): Newer versions of libcurl don't define
171         TRUE.
172
173 2004-12-24  David Shaw  <dshaw@jabberwocky.com>
174
175         * gpgkeys_curl.c (main): Use new defines for opting out of certain
176         transfer protocols.  Allow setting HTTP proxy via "http-proxy=foo"
177         option (there is natural support in libcurl for the http_proxy
178         environment variable).
179
180         * Makefile.am: Remove the conditional since this is all handled in
181         autoconf now.
182
183 2004-12-22  David Shaw  <dshaw@jabberwocky.com>
184
185         * gpgkeys_curl.c (main): New "follow-redirects" option.  Takes an
186         optional numeric value for the maximum number of redirects to
187         allow.  Defaults to 5.
188
189         * gpgkeys_curl.c (main), gpgkeys_finger.c (main), gpgkeys_hkp.c
190         (main), gpgkeys_http.c (main), gpgkeys_ldap.c (main): Make sure
191         that a "timeout" option passed with no arguments is properly
192         handled.
193
194         * gpgkeys_curl.c (get_key, writer): New function to wrap around
195         fwrite to avoid DLL access problem on win32.
196
197         * gpgkeys_http.c (main, get_key): Properly pass authentication
198         info through to the http library.
199
200         * Makefile.am: Build gpgkeys_http or gpgkeys_curl as needed.
201
202         * gpgkeys_curl.c (main, get_key): Minor tweaks to work with either
203         FTP or HTTP.
204
205         * gpgkeys_ftp.c: renamed to gpgkeys_curl.c.
206
207         * gpgkeys_ftp.c (main, get_key): Use auth data as passed by gpg.
208         Use CURLOPT_FILE instead of CURLOPT_WRITEDATA (same option, but
209         backwards compatible).
210
211 2004-12-21  David Shaw  <dshaw@jabberwocky.com>
212
213         * gpgkeys_ftp.c: New.
214
215         * Makefile.am: Build it if requested.
216
217 2004-12-14  Werner Koch  <wk@g10code.com>
218
219         * Makefile.am (install-exec-hook, uninstall-hook): Removed.  For
220         Windows reasons we can't use the symlink trick.
221
222 2004-12-03  David Shaw  <dshaw@jabberwocky.com>
223
224         * Makefile.am: The harmless "ignored error" on gpgkeys_ldap
225         install on top of an existing install is bound to confuse people.
226         Use ln -s -f to force the overwrite.
227
228 2004-10-28  David Shaw  <dshaw@jabberwocky.com>
229
230         * gpgkeys_finger.c [_WIN32] (connect_server): Fix typo.
231
232 2004-10-28  Werner Koch  <wk@g10code.com>
233
234         * Makefile.am (other_libs): New.  Also include LIBICONV.  Noted by
235         Tim Mooney.
236
237 2004-10-28  Werner Koch  <wk@g10code.com>
238
239         * Makefile.am (other_libs): 
240
241 2004-10-18  David Shaw  <dshaw@jabberwocky.com>
242
243         * gpgkeys_hkp.c (send_key, get_key, search_key): Use "hkp" instead
244         of "x-hkp" so it can be used as a SRV tag.
245
246 2004-10-16  David Shaw  <dshaw@jabberwocky.com>
247
248         * gpgkeys_finger.c [_WIN32] (connect_server): Fix typo.
249
250 2004-10-15  Werner Koch  <wk@g10code.com>
251
252         * gpgkeys_ldap.c (main, show_help): Kludge to implement standard
253         GNU options. Factored help printing out.
254         * gpgkeys_finger.c (main, show_help): Ditto.
255         * gpgkeys_hkp.c (main, show_help): Ditto.
256         * gpgkeys_http.c (main, show_help): Ditto.
257         * gpgkeys_test.in, gpgkeys_mailto.in: Implement --version and --help.
258
259         * Makefile.am: Add ksutil.h.
260
261 2004-10-14  David Shaw  <dshaw@jabberwocky.com>
262
263         * gpgkeys_finger.c (main): We do not support relay fingering
264         (i.e. "finger://relayhost/user@example.com"), but finger URLs are
265         occasionally miswritten that way.  Give an error in this case.
266
267 2004-10-14  Werner Koch  <wk@g10code.com>
268
269         * gpgkeys_finger.c (get_key): s/unsigned char/byte/ due
270         to a strange typedef for RISC OS.  Noted by Stefan.
271
272 2004-10-13  David Shaw  <dshaw@jabberwocky.com>
273
274         * gpgkeys_ldap.c (main), gpgkeys_hkp.c (main), gpgkeys_http.c
275         (main), gpgkeys_finger.c (main): Call timeout functions before
276         performing an action that could block for a long time.
277
278         * ksutil.h, ksutil.c: New.  Right now just contains timeout
279         functions.
280
281 2004-10-11  David Shaw  <dshaw@jabberwocky.com>
282
283         * gpgkeys_finger.c, gpgkeys_hkp.c, gpgkeys_http.c, gpgkeys_ldap.c:
284         Fix a few occurances of "filename" to `filename'.
285
286 2004-10-11  Werner Koch  <wk@g10code.com>
287
288         * gpgkeys_finger.c: New.
289
290 2004-08-27  Stefan Bellon  <sbellon@sbellon.de>
291
292         * gpgkeys_hkp.c (search_key): Fix the prior faulty fix by
293         introducing a cast but leaving skey unsigned.
294
295         * gpgkeys_hkp.c (search_key): Change type of variable skey from
296         unsigned char* to char* to fix type incompatibility.
297
298 2004-08-23  David Shaw  <dshaw@jabberwocky.com>
299
300         * gpgkeys_ldap.c (get_key, search_key), gpgkeys_hkp.c (get_key,
301         search_key), gpgkeys_http.c (get_key): Do not give informational
302         logs since this is now done inside gpg.
303
304         * gpgkeys_hkp.c (dehtmlize): Understand the quote character
305         (i.e. "&quot;") in HTML responses.
306         (search_key): Search key must be unsigned for url encoder to work
307         properly for 8-bit values.
308
309         * gpgkeys_ldap.c (get_key): Factor out informational display into
310         new function build_info().
311
312         * gpgkeys_ldap.c (build_attrs): Properly terminate user ID strings
313         that got shrunk due to encoding.
314
315 2004-08-22  David Shaw  <dshaw@jabberwocky.com>
316
317         * gpgkeys_ldap.c (find_basekeyspacedn): Use LDAP_SCOPE_BASE along
318         with a full DN rather than LDAP_SCOPE_ONELEVEL plus a filter to
319         find the pgpServerInfo object.  Some LDAP setups don't like the
320         search.
321         (main): Stop binding to the server since it seems no server really
322         requires it, and some require it not be there.
323
324 2004-07-29  David Shaw  <dshaw@jabberwocky.com>
325
326         * gpgkeys_ldap.c (main): Add "debug" option.  This is only really
327         useful with OpenLDAP, but it's practically vital to debug SSL and
328         TLS setups.  Add "basedn" option.  This allows users to override
329         the autodetection for base DN.  SSL overrides TLS, so TLS will not
330         be started on SSL connections (starting an already started car).
331
332 2004-07-28  David Shaw  <dshaw@jabberwocky.com>
333
334         * gpgkeys_ldap.c (build_attrs): Add "pgpKeySize" and "pgpSubKeyID"
335         attributes so we can do subkey searches.
336
337         * gpgkeys_ldap.c (main): Under certain error conditions, we might
338         try and unbind twice.  Don't.
339
340         * gpgkeys_ldap.c (join_two_modlists): New.
341         (send_key): Use new function so we can try a modify operation
342         first, and fail over to an add if that fails.  Add cannot cope
343         with the NULLs at the head of the modify request, so we jump into
344         the list in the middle.
345
346 2004-07-27  David Shaw  <dshaw@jabberwocky.com>
347
348         * gpgkeys_ldap.c (main): Don't try and error out before making a
349         ldaps connection to the NAI keyserver since we cannot tell if it
350         is a NAI keyserver until we connect.  Fail if we cannot find a
351         base keyspace DN.  Fix a false success message for TLS being
352         enabled.
353
354 2004-07-20  Werner Koch  <wk@gnupg.org>
355
356         * gpgkeys_ldap.c [_WIN32]: Include Windows specific header files.
357         Suggested by Brian Gladman.
358
359 2004-05-26  David Shaw  <dshaw@jabberwocky.com>
360
361         * gpgkeys_http.c: General polish and removal of leftover stuff
362         from gpgkeys_hkp.c.
363
364 2004-05-21  David Shaw  <dshaw@jabberwocky.com>
365
366         * gpgkeys_http.c (get_key): Cosmetic fix - make sure that URLs
367         with no path use a path of "/".
368
369         * gpgkeys_ldap.c (ldap2epochtime): We can always rely on timegm()
370         being available now, since it's a replacement function.
371
372 2004-05-20  David Shaw  <dshaw@jabberwocky.com>
373
374         * gpgkeys_http.c: New program to do a simple HTTP file fetch using
375         the keyserver interface.
376
377         * Makefile.am: Build it.
378
379 2004-02-28  David Shaw  <dshaw@jabberwocky.com>
380
381         * Makefile.am: Don't split LDADD across two lines since some make
382         programs can't handle blank lines after a \ continuation.  Noted
383         by Christoph Moench-Tegeder.
384
385 2004-02-25  David Shaw  <dshaw@jabberwocky.com>
386
387         * gpgkeys_ldap.c (send_key): List pgpCertID as one of the deleted
388         attributes.  This guarantees that if something goes wrong, we
389         won't be able to complete the transaction, thus leaving any key
390         already existing on the server intact.
391
392 2004-02-23  David Shaw  <dshaw@jabberwocky.com>
393
394         * gpgkeys_ldap.c (delete_one_attr): Removed.
395         (make_one_attr): Delete functionality added.  Optional deduping
396         functionality added (currently only used for pgpSignerID).
397         (build_attrs): Translate sig entries into pgpSignerID.  Properly
398         build the timestamp for pgpKeyCreateTime and pgpKeyExpireTime.
399
400 2004-02-22  David Shaw  <dshaw@jabberwocky.com>
401
402         * gpgkeys_ldap.c (delete_one_attr): New function to replace
403         attributes with NULL (a "delete" that works even for nonexistant
404         attributes).
405         (send_key): Use it here to remove attributes so a modify operation
406         starts with a clean playing field.  Bias sends to modify before
407         add, since (I suspect) people update their existing keys more
408         often than they make and send new keys to the server.
409
410 2004-02-21  David Shaw  <dshaw@jabberwocky.com>
411
412         * gpgkeys_ldap.c (epoch2ldaptime): New.  Converse of
413         ldap2epochtime.
414         (make_one_attr): New. Build a modification list in memory to send
415         to the LDAP server.
416         (build_attrs): New. Parse INFO lines sent over by gpg.
417         (free_mod_values): New.  Unwinds a modification list.
418         (send_key_keyserver): Renamed from old send_key().
419         (send_key): New function to send a key to a LDAP server.
420         (main): Use send_key() for real LDAP servers, send_key_keyserver()
421         otherwise.
422
423 2004-02-20  David Shaw  <dshaw@jabberwocky.com>
424
425         * gpgkeys_ldap.c: Replacement prototypes for setenv and unsetenv.
426         (search_key): Catch a SIZELIMIT_EXCEEDED error and show the user
427         whatever the server did give us.
428         (find_basekeyspacedn): There is no guarantee that namingContexts
429         will be readable.
430
431         * Makefile.am: Link gpgkeys_ldap with libutil.a to get the
432         replacement functions (and eventually translations, etc).
433
434 2004-02-19  David Shaw  <dshaw@jabberwocky.com>
435
436         * gpgkeys_ldap.c (ldap2epochtime): LDAP timestamps are UTC, so do
437         not correct for timezones.
438         (main): Find the basekeyspacedn before we try to start TLS, so we
439         can give a better error message when a user tries to use TLS with
440         a LDAP keyserver.
441
442         * Makefile.am: Add automake conditionals to symlink gpgkeys_ldaps
443         to gpgkeys_ldap when needed.
444
445         * gpgkeys_ldap.c (main): Add support for LDAPS and TLS
446         connections.  These are only useful and usable when talking to
447         real LDAP keyservers.  Add new "tls" option to tune TLS use from
448         off, to try quietly, to try loudly, or to require TLS.
449
450         * gpgkeys_ldap.c (find_basekeyspacedn): New function to figure out
451         what kind of LDAP server we're talking to (either real LDAP or the
452         LDAP keyserver), and return the baseKeySpaceDN to find keys under.
453         (main): Call it from here, and remove the old code that only
454         handled the LDAP keyserver.
455
456 2004-02-18  David Shaw  <dshaw@jabberwocky.com>
457
458         * gpgkeys_ldap.c (ldap_to_gpg_err): Make sure that
459         LDAP_OPT_ERROR_NUMBER is defined before we use it.
460
461         * gpgkeys_mailto.in: Fix VERSION number.
462
463 2004-01-13  Werner Koch  <wk@gnupg.org>
464
465         * gpgkeys_hkp.c (send_key): Add a content type.
466
467 2004-01-11  David Shaw  <dshaw@jabberwocky.com>
468
469         * gpgkeys_hkp.c (search_key): Catch a mangled input file (useful
470         if something other than GnuPG is calling the program).
471         (main): Avoid possible pre-string write.  Noted by Christian
472         Biere.
473
474         * gpgkeys_ldap.c (main): Avoid possible pre-string write.
475
476 2003-12-28  David Shaw  <dshaw@jabberwocky.com>
477
478         * gpgkeys_hkp.c (send_key, get_key, main): Work with new HTTP code
479         that passes the proxy in from the outside.  If the command file
480         sends a proxy, use it.  If it sends "http-proxy" with no
481         arguments, use $http_proxy from the environment.  Suggested by
482         Christian Biere.
483
484 2003-12-28  Stefan Bellon  <sbellon@sbellon.de>
485
486         * gpgkeys_hkp.c, gpgkeys_ldap.c [__riscos__]: Removal of
487         unnecessary #ifdef __riscos__ sections.
488
489 2003-11-27  Werner Koch  <wk@gnupg.org>
490
491         * gpgkeys_hkp.c (get_key): Fixed invalid use of fprintf without
492         format string.
493
494 2003-10-25  Werner Koch  <wk@gnupg.org>
495
496         * Makefile.am (gpgkeys_hkp_LDADD): Replaced INTLLIBS by LIBINTL.
497
498 2003-07-10  David Shaw  <dshaw@jabberwocky.com>
499
500         * Makefile.am: Use W32LIBS where appropriate.
501
502 2003-05-30  David Shaw  <dshaw@jabberwocky.com>
503
504         * gpgkeys_hkp.c, gpgkeys_ldap.c: #include <getopt.h> if it is
505         available.  Also include extern references for optarg and optind
506         since there is no guarantee that any header file will include
507         them.  Standards?  We don't need no stinkin' standards.
508
509         * Makefile.am: Use @GETOPT@ to pull in libiberty on those
510         platforms that need it.
511
512 2003-04-08  David Shaw  <dshaw@jabberwocky.com>
513
514         * gpgkeys_hkp.c (dehtmlize, parse_hkp_index): Fix memory
515         corruption bug on some platforms.
516
517 2003-03-11  David Shaw  <dshaw@jabberwocky.com>
518
519         * gpgkeys_hkp.c (get_key): Properly handle CRLF line endings in
520         the armored key.
521         (main): Accept "try-dns-srv" option.
522
523         * Makefile.am: Use @CAPLIBS@ to link in -lcap if we are using
524         capabilities.  Use @SRVLIBS@ to link in the resolver if we are
525         using DNS SRV.
526
527 2003-02-11  David Shaw  <dshaw@jabberwocky.com>
528
529         * Makefile.am: Use a local copy of libexecdir along with @PACKAGE@
530         so it can be easily overridden at make time.
531
532 2003-01-29  David Shaw  <dshaw@jabberwocky.com>
533
534         * gpgkeys_mailto.in: Fix regexp to work properly if the "keyid" is
535         not a keyid, but rather a text string from the user ID.
536
537 2003-01-06  David Shaw  <dshaw@jabberwocky.com>
538
539         * gpgkeys_hkp.c (get_key): Use options=mr when getting a key so
540         keyserver doesn't attach the HTML header which we will just have
541         to discard.
542
543 2002-11-17  David Shaw  <dshaw@jabberwocky.com>
544
545         * gpgkeys_ldap.c (main), gpgkeys_hkp.c (main): Use new keyserver
546         protocol version.
547
548 2002-11-14  David Shaw  <dshaw@jabberwocky.com>
549
550         * gpgkeys_ldap.c (get_key): The deduping code requires
551         "pgpcertid", but that was not available when running without
552         verbose on.  Noted by Stefan.
553
554 2002-11-10  David Shaw  <dshaw@jabberwocky.com>
555
556         * gpgkeys_ldap.c (get_key): Fix typo in deduping code.
557
558 2002-11-05  David Shaw  <dshaw@jabberwocky.com>
559
560         * gpgkeys_ldap.c (key_in_keylist, add_key_to_keylist,
561         free_keylist, get_key, search_key): The LDAP keyserver doesn't
562         remove duplicates, so remove them locally.  Do not include the key
563         modification time in the search response.
564
565 2002-11-04  David Shaw  <dshaw@jabberwocky.com>
566
567         * gpgkeys_hkp.c (send_key), gpgkeys_ldap.c (send_key): Properly
568         handle an input file that does not include any key data at all.
569
570 2002-10-24  David Shaw  <dshaw@jabberwocky.com>
571
572         * gpgkeys_hkp.c (main), gpgkeys_ldap.c (main): Add -V flag to
573         output protocol and program version.
574
575 2002-10-21  David Shaw  <dshaw@jabberwocky.com>
576
577         * Makefile.am: Anything linking with libutil.a needs INTLLIBS as
578         well on platforms where INTLLIBS is set.
579
580 2002-10-14  David Shaw  <dshaw@jabberwocky.com>
581
582         * gpgkeys_hkp.c (write_quoted): Use %-encoding instead of
583         \-encoding.
584         (parse_hkp_index): Use new keyserver key listing format, and add
585         support for disabled keys via include-disabled.
586
587         * gpgkeys_ldap.c (get_key): Don't print keysize unless it's >0.
588         (printquoted): Use %-encoding instead of \-encoding.
589         (search_key): Use new keyserver key listing format.
590
591 2002-10-08  David Shaw  <dshaw@jabberwocky.com>
592
593         * gpgkeys_ldap.c (search_key, main): Make sure LDAP values are
594         freed in case of error.
595
596         * gpgkeys_ldap.c (fail_all): New function to unwind a keylist and
597         error each item.
598         (main): Call fail_all from here, as needed.  Also add a NO_MEMORY
599         error in an appropriate place and fix error return code.
600         (ldap_err_to_gpg_err): Add KEYSERVER_UNREACHABLE.
601
602         * gpgkeys_hkp.c (fail_all): New function to unwind a keylist and
603         error each item.
604         (main): Call fail_all from here.  Also add a NO_MEMORY error in an
605         appropriate place.
606         (get_key): Use new UNREACHABLE error for network errors.
607
608 2002-09-26  Werner Koch  <wk@gnupg.org>
609
610         * gpgkeys_ldap.c (send_key): Removed non-constant initializers.
611
612 2002-09-24  David Shaw  <dshaw@jabberwocky.com>
613
614         * gpgkeys_ldap.c (ldap_err_to_gpg_err, ldap_to_gpg_err, send_key,
615         get_key, search_key, main): Some minor error reporting
616         enhancements for use with GPA (show reasons for KEY FAILED).
617
618         * gpgkeys_hkp.c (send_key, get_key, search_key, main): Some minor
619         error reporting enhancements for use with GPA (show reasons for
620         KEY FAILED).
621
622 2002-09-20  Werner Koch  <wk@gnupg.org>
623
624         * gpgkeys_hkp.c (handle_old_hkp_index): s/input/inp/ to avoid
625         shadowing warning.
626
627 2002-09-19  David Shaw  <dshaw@jabberwocky.com>
628
629         * gpgkeys_hkp.c (get_key, handle_old_hkp_index, search_key):
630         Properly handle line truncation.
631
632 2002-09-16  David Shaw  <dshaw@jabberwocky.com>
633
634         * gpgkeys_mailto.in: Add quasi-RFC-2368 mailto:email@addr?from=
635         syntax so people can set their own email address to respond to.
636
637         * gpgkeys_hkp.c (get_key): Properly respond with KEY FAILED (to
638         gpg) and "key not found" (to user) on failure.
639
640 2002-09-13  David Shaw  <dshaw@jabberwocky.com>
641
642         * gpgkeys_hkp.c: (search_key, handle_old_hkp_index): Try and
643         request a machine-readable key index.  If the server supports
644         this, pass it through.  If the server does not support it, parse
645         the "index" page.
646
647 2002-09-12  Stefan Bellon  <sbellon@sbellon.de>
648
649         * gpgkeys_hkp.c: Tidied up RISC OS initializations.
650
651 2002-09-12  David Shaw  <dshaw@jabberwocky.com>
652
653         * gpgkeys_hkp.c (main): Remove warning - this is no longer
654         experimental code.
655
656 2002-09-09  Werner Koch  <wk@gnupg.org>
657
658         * gpgkeys_hkp.c (send_key, get_key, search_key): Check return
659         value of malloc.
660         (dehtmlize): Use ascii_tolower to protect against weird locales.
661         Cast the argument for isspace for the sake of broken HP/UXes.
662         (search_key): Check return value of realloc.
663
664 2002-09-09  David Shaw  <dshaw@jabberwocky.com>
665
666         * gpgkeys_ldap.c (get_key): Some compilers (RISC OS, HPUX c89)
667         don't like using variables as array initializers.
668
669         * gpgkeys_hkp.c (send_key): Use CRLF in headers.
670
671 2002-08-28  David Shaw  <dshaw@jabberwocky.com>
672
673         * gpgkeys_hkp.c (parse_hkp_index): Use same types on all
674         platforms.  This was probably leftover from earlier code where the
675         typing mattered.
676
677         * gpgkeys_hkp.c: Overall cleanup from iobuf conversion.  Be
678         consistent in m_alloc and malloc usage.  Remove include-disabled
679         (meaningless on HKP).  RISC OS tweak.
680
681 2002-08-27  David Shaw  <dshaw@jabberwocky.com>
682
683         * gpgkeys_hkp.c, Makefile.am: Convert over to using iobufs.
684
685         * gpgkeys_hkp.c (http_get, http_post): Use CRLF for line endings.
686
687         * gpgkeys_hkp.c: Include util.h on RISC OS as per Stefan.  Include
688         a replacement for hstrerror() for those platforms (such as RISC
689         OS) that don't have it.
690
691 2002-08-26  David Shaw  <dshaw@jabberwocky.com>
692
693         * Makefile.am: May as well include gpgkeys_hkp.c in the
694         distribution now.  It works well enough without proxies, and isn't
695         built by default.  It would be good to get some test experience
696         with it.
697
698         * gpgkeys_hkp.c (main): Don't warn about include-subkeys - it
699         isn't unsupported, it's actually non-meaningful in the context of
700         HKP (yet).
701
702         * gpgkeys_hkp.c (parse_hkp_index, dehtmlize): Move HTML
703         functionality into new "dehtmlize" function.  Remove HTML before
704         trying to parse each line from the keyserver.  If the keyserver
705         provides key type information in the listing, use it.  (Copy over
706         from g10/hkp.c).
707
708 2002-08-19  David Shaw  <dshaw@jabberwocky.com>
709
710         * gpgkeys_hkp.c (get_key, parse_hkp_index): Bring over latest code
711         from g10/hkp.c.
712
713         * gpgkeys_ldap.c (get_key): Fix cosmetic URL display problem
714         (extra ":" at the end).
715
716 2002-08-03  Stefan Bellon  <sbellon@sbellon.de>
717
718         * gpgkeys_ldap.c: Tidied up RISC OS initializations.
719
720 2002-07-25  David Shaw  <dshaw@jabberwocky.com>
721
722         * gpgkeys_hkp.c: "Warning" -> "WARNING"
723
724 2002-07-24  David Shaw  <dshaw@jabberwocky.com>
725
726         * Makefile.am: Install keyserver helpers in @GNUPG_LIBEXECDIR@
727
728 2002-07-15  David Shaw  <dshaw@jabberwocky.com>
729
730         * gpgkeys_ldap.c (send_key, get_key, main): Consult the server
731         version string to determine whether to use pgpKey or pgpKeyV2.
732
733 2002-07-09  David Shaw  <dshaw@jabberwocky.com>
734
735         * gpgkeys_mailto.in: Use new OPAQUE tag for non net-path URIs.
736         Fail more elegantly if there is no email address to send to.  Show
737         the GnuPG version in the message body.
738
739 2002-07-04  David Shaw  <dshaw@jabberwocky.com>
740
741         * gpgkeys_ldap.c (get_key), gpgkeys_hkp.c (get_key): Display
742         keyserver URI as a URI, but only if verbose.
743
744 2002-07-01  David Shaw  <dshaw@jabberwocky.com>
745
746         * gpgkeys_hkp.c (parse_hkp_index): Error if the keyserver returns
747         an unparseable HKP response.
748
749         * gpgkeys_hkp.c (main): Warn on honor-http-proxy,
750         broken-http-proxy, and include-subkeys (not supported yet).
751
752         * gpgkeys_ldap.c (main), gpgkeys_hkp.c (http_connect, main): Fix
753         some shadowing warnings.
754
755 2002-06-11  David Shaw  <dshaw@jabberwocky.com>
756
757         * Makefile.am: Don't hard-code the LDAP libraries - get them from
758         LDAPLIBS via configure.  Also, gpgkeys_hkp is a program, not a
759         script.
760
761 2002-06-10  David Shaw  <dshaw@jabberwocky.com>
762
763         * gpgkeys_ldap.c (include_subkeys): Default "include-subkeys" to
764         off, since GnuPG now defaults it to on.
765
766 2002-06-06  David Shaw  <dshaw@jabberwocky.com>
767
768         * gpgkeys_hkp.c (parse_hkp_index): Type tweaks.
769
770         * gpgkeys_hkp.c (main): Add experimental code warning.
771
772 2002-06-05  David Shaw  <dshaw@jabberwocky.com>
773
774         * Makefile.am, gpgkeys_hkp.c (new): Experimental HKP keyserver
775         interface.
776
777 2002-05-08  David Shaw  <dshaw@jabberwocky.com>
778
779         * gpgkeys_ldap.c: Include <lber.h> if we absolutely must.  This
780         helps when compiling against a very old OpenLDAP.
781
782 2002-04-29  David Shaw  <dshaw@jabberwocky.com>
783
784         * gpgkeys_mailto.in: Properly handle key requests in full
785         fingerprint form.
786
787 2002-03-29  David Shaw  <dshaw@jabberwocky.com>
788
789         * gpgkeys_ldap.c (printquoted): Quote backslashes within keyserver
790         search responses.
791
792 2002-02-25  David Shaw  <dshaw@jabberwocky.com>
793
794         * gpgkeys_ldap (get_key): LDAP keyservers do not support v3
795         fingerprints, so error out if someone tries.  Actually, they don't
796         support any fingerprints, but at least we can calculate a keyid
797         from a v4 fingerprint.
798
799 2002-02-23  David Shaw  <dshaw@jabberwocky.com>
800
801         * gpgkeys_ldap: Clarify the notion of a partial failure.  This is
802         possible if more than one key is being handled in a batch, and one
803         fails while the other succeeds.  Note that a search that comes up
804         with no results is not a failure - that is a valid response of "no
805         answer".
806
807         * gpgkeys_ldap.c (get_key): Allow GnuPG to send us full v4
808         fingerprints, long key ids, or short key ids while fetching.
809         Since the LDAP server doesn't actually handle fingerprints, chop
810         them down to long key ids for actual use.
811
812         * gpgkeys_ldap.c (main, get_key): When searching for a keyid,
813         search for subkeys as well as primary keys.  This is mostly
814         significant when automatically fetching the key based on the id in
815         a header (i.e. "signature made by....").  "no-include-subkeys"
816         disables.
817
818 2002-02-14  David Shaw  <dshaw@jabberwocky.com>
819
820         * gpgkeys_ldap.c: Fix compiler warning.
821
822         * gpgkeys_ldap.c: Be much more robust with mangled input files.
823
824 2001-12-28  David Shaw  <dshaw@jabberwocky.com>
825
826         * gpgkeys_mailto.in: Use the new OUTOFBAND indicator so gpg knows
827         not to try and import anything.  Also turn on perl -w for
828         warnings.
829
830         * gpgkeys_ldap.c (main): If we're using temp files (rather than
831         stdin/stdout), make sure the file is closed when we're done.
832
833 2001-12-20  David Shaw  <dshaw@jabberwocky.com>
834
835         * Properly free the LDAP response when we're done with it.
836
837         * Now that we handle multiple keys, we must remove duplicates as
838         the LDAP keyserver returns keys with multiple user IDs multiple
839         times.
840
841         * Properly handle multiple keys with the same key ID (it's really
842         rare, so fetch "0xDEADBEEF" to test this).
843
844 2001-12-17  David Shaw  <dshaw@jabberwocky.com>
845
846         * gpgkeys_ldap.c, gpgkeys_mailto.in: Fix GNU capitalization
847         issues.  Prefix log messages with "gpgkeys" to clarify which
848         program is generating them.
849
850 2001-12-14  David Shaw  <dshaw@jabberwocky.com>
851
852         * gpgkeys_ldap.c (search_key): Use unsigned int rather than uint
853         for portability.
854
855 2001-12-04  David Shaw  <dshaw@jabberwocky.com>
856
857         * Initial version of gpgkeys_ldap (LDAP keyserver helper) and
858         gpgkeys_mailto (email keyserver helper)
859
860
861  Copyright 1998, 1999, 2000, 2001, 2002, 2003,
862            2004 Free Software Foundation, Inc.
863
864  This file is free software; as a special exception the author gives
865  unlimited permission to copy and/or distribute it, with or without
866  modifications, as long as this notice is preserved.
867
868  This file is distributed in the hope that it will be useful, but
869  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
870  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.