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