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