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