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