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