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