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