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