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