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