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