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