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