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