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