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