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