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