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