Make HKP keyserver engine work again.
[gnupg.git] / dirmngr / ChangeLog
1 2011-11-24  Werner Koch  <wk@g10code.com>
2
3         * ks-engine-http.c (ks_http_help): Do not print help for hkp.
4         * ks-engine-hkp.c (ks_hkp_help): Print help only for hkp.
5         (send_request): Remove test code.
6         (map_host): Use xtrymalloc.
7
8         * certcache.c (classify_pattern): Remove unused variable and make
9         explicit substring search work.
10
11 2011-06-01  Marcus Brinkmann  <mb@g10code.com>
12
13         * Makefile.am (dirmngr_ldap_CFLAGS): Add $(LIBGCRYPT_CFLAGS),
14         which is needed by common/util.h.
15
16 2011-04-25  Werner Koch  <wk@g10code.com>
17
18         * ks-engine-hkp.c (ks_hkp_search): Mark classify_user_id for use
19         with OpenPGP.
20         (ks_hkp_get): Ditto.
21
22 2011-04-12  Werner Koch  <wk@g10code.com>
23
24         * ks-engine-hkp.c (ks_hkp_search, ks_hkp_get, ks_hkp_put): Factor
25         code out to ..
26         (make_host_part): new.
27         (hostinfo_s): New.
28         (create_new_hostinfo, find_hostinfo, sort_hostpool)
29         (select_random_host, map_host, mark_host_dead)
30         (ks_hkp_print_hosttable): New.
31
32 2011-02-23  Werner Koch  <wk@g10code.com>
33
34         * certcache.c (get_cert_bysubject): Take care of a NULL argument.
35         (find_cert_bysubject): Ditto.  Fixes bug#1300.
36
37 2011-02-09  Werner Koch  <wk@g10code.com>
38
39         * ks-engine-kdns.c: New but only the framework.
40
41         * server.c (cmd_keyserver): Add option --help.
42         (dirmngr_status_help): New.
43         * ks-action.c (ks_print_help): New.
44         (ks_action_help): New.
45         * ks-engine-finger.c (ks_finger_help): New.
46         * ks-engine-http.c (ks_http_help): New.
47         * ks-engine-hkp.c (ks_hkp_help): New.
48
49         * ks-action.c (ks_action_fetch): Support http URLs.
50         * ks-engine-http.c: New.
51
52         * ks-engine-finger.c (ks_finger_get): Rename to ks_finger_fetch.
53         Change caller.
54
55 2011-02-08  Werner Koch  <wk@g10code.com>
56
57         * server.c (cmd_ks_fetch): New.
58         * ks-action.c (ks_action_fetch): New.
59         * ks-engine-finger.c: New.
60
61 2011-02-03  Werner Koch  <wk@g10code.com>
62
63         * Makefile.am (dirmngr_LDADD): Remove -llber.
64
65 2011-01-25  Werner Koch  <wk@g10code.com>
66
67         * dirmngr.c (handle_connections): Rewrite loop to use pth-select
68         so to sync timeouts to the full second.
69         (pth_thread_id): New.
70         (main) [W32CE]: Fix setting of default homedir.
71
72         * ldap-wrapper.c (ldap_wrapper_thread): Sync to the full second.
73         Increate pth_wait timeout from 1 to 2 seconds.
74
75 2011-01-20  Werner Koch  <wk@g10code.com>
76
77         * server.c (release_ctrl_keyservers): New.
78         (cmd_keyserver, cmd_ks_seach, cmd_ks_get, cmd_ks_put): New.
79         * dirmngr.h (uri_item_t): New.
80         (struct server_control_s): Add field KEYSERVERS.
81         * ks-engine-hkp.c: New.
82         * ks-engine.h: New.
83         * ks-action.c, ks-action.h: New.
84         * server.c: Include ks-action.h.
85         (cmd_ks_search): New.
86         * Makefile.am (dirmngr_SOURCES): Add new files.
87
88 2011-01-19  Werner Koch  <wk@g10code.com>
89
90         * dirmngr.c (main): Use es_printf for --gpgconf-list.
91
92 2010-12-14  Werner Koch  <wk@g10code.com>
93
94         * cdb.h (struct cdb) [W32]: Add field CDB_MAPPING.
95         * cdblib.c (cdb_init) [W32]: Save mapping handle.
96         (cdb_free) [W32]: Don't leak the mapping handle from cdb_init by
97         using the saved one.
98
99         * crlcache.c (crl_cache_insert): Close unused matching files.
100
101         * dirmngr.c (main) [W32CE]: Change homedir in daemon mode to /gnupg.
102
103 2010-12-07  Werner Koch  <wk@g10code.com>
104
105         * dirmngr.c (TIMERTICK_INTERVAL) [W32CE]: Change to 60s.
106
107 2010-11-23  Werner Koch  <wk@g10code.com>
108
109         * Makefile.am (dirmngr_LDFLAGS): Add extra_bin_ldflags.
110         (dirmngr_client_LDFLAGS): Ditto.
111
112 2010-10-21  Werner Koch  <wk@g10code.com>
113
114         * dirmngr.c (main): Changed faked system time warning
115
116 2010-10-15  Werner Koch  <wk@g10code.com>
117
118         * Makefile.am (CLEANFILES): Add no-libgcrypt.c.
119
120 2010-09-16  Werner Koch  <wk@g10code.com>
121
122         * validate.c (validate_cert_chain): Use GPG_ERR_MISSING_ISSUER_CERT.
123
124 2010-08-13  Werner Koch  <wk@g10code.com>
125
126         * Makefile.am (dirmngr_SOURCES): Add w32-ldap-help.h.
127
128         * dirmngr_ldap.c (fetch_ldap): Call ldap_unbind.
129
130         * w32-ldap-help.h: New.
131         * dirmngr_ldap.c [W32CE]: Include w32-ldap-help.h and use the
132         mapped ldap functions.
133
134 2010-08-12  Werner Koch  <wk@g10code.com>
135
136         * crlcache.c (update_dir, crl_cache_insert): s/unlink/gnupg_remove/.
137
138         * dirmngr.c (dirmngr_sighup_action): New.
139
140         * server.c (cmd_killdirmngr, cmd_reloaddirmngr): New.
141         (struct server_local_s): Add field STOPME.
142         (start_command_handler): Act on STOPME.
143
144 2010-08-06  Werner Koch  <wk@g10code.com>
145
146         * dirmngr.c (JNLIB_NEED_AFLOCAL): Define macro.
147         (main): Use SUN_LEN macro.
148         (main) [W32]: Allow EEXIST in addition to EADDRINUSE.
149
150 2010-08-05  Werner Koch  <wk@g10code.com>
151
152         * server.c (set_error, leave_cmd): New.
153         (cmd_validate, cmd_ldapserver, cmd_isvalid, cmd_checkcrl)
154         (cmd_checkocsp, cmd_lookup, cmd_listcrls, cmd_cachecert): Use
155         leave_cmd.
156         (cmd_getinfo): New.
157         (data_line_cookie_write, data_line_cookie_close): New.
158         (cmd_listcrls): Replace assuan_get_data_fp by es_fopencookie.
159
160         * misc.c (create_estream_ksba_reader, my_estream_ksba_reader_cb): New.
161         * certcache.c (load_certs_from_dir): Use create_estream_ksba_reader.
162         * crlcache.c (crl_cache_load): Ditto.
163
164 2010-08-03  Werner Koch  <wk@g10code.com>
165
166         * dirmngr_ldap.c (pth_enter, pth_leave) [USE_LDAPWRAPPER]: Turn
167         into functions for use in a 'for' control stmt.
168
169 2010-07-26  Werner Koch  <wk@g10code.com>
170
171         * dirmngr_ldap.c (print_ldap_entries): Remove special fwrite case
172         for W32 because that is now handles by estream.
173
174 2010-07-25  Werner Koch  <wk@g10code.com>
175
176         * Makefile.am (dirmngr_SOURCES) [!USE_LDAPWRAPPER]: Build
177         ldap-wrapper-ce.
178         * ldap-wrapper-ce.c: New.
179
180         * dirmngr_ldap.c (opt): Remove global variable ...
181         (my_opt_t): ... and declare a type instead.
182         (main): Define a MY_OPT variable and change all references to OPT
183         to this.
184         (set_timeout, print_ldap_entries, fetch_ldap, process_url): Pass
185         MYOPT arg.
186
187 2010-07-24  Werner Koch  <wk@g10code.com>
188
189         * dirmngr_ldap.c (main): Init common subsystems.  Call
190         es_set_binary.
191
192 2010-07-19  Werner Koch  <wk@g10code.com>
193
194         * dirmngr.c: Include ldap-wrapper.h.
195         (launch_reaper_thread): Move code to ...
196         * ldap-wrapper.c (ldap_wrapper_launch_thread): .. here.  Change
197         callers.
198         (ldap_wrapper_thread): Rename to ...
199         (wrapper_thread): this and make local.
200
201         * ldap.c (destroy_wrapper, print_log_line)
202         (read_log_data, ldap_wrapper_thread)
203         (ldap_wrapper_wait_connections, ldap_wrapper_release_context)
204         (ldap_wrapper_connection_cleanup, reader_callback, ldap_wrapper):
205         Factor code out to ...
206         * ldap-wrapper.c: new.
207         (ldap_wrapper): Make public.
208         (read_buffer): Copy from ldap.c.
209         * ldap-wrapper.h: New.
210         * Makefile.am (dirmngr_SOURCES): Add new files.
211
212 2010-07-16  Werner Koch  <wk@g10code.com>
213
214         * http.c, http.h: Remove.
215
216         * dirmngr-err.h: New.
217         * dirmngr.h: Include dirmngr-err.h instead of gpg-error.h
218
219         * cdblib.c: Replace assignments to ERRNO by a call to
220         gpg_err_set_errno.  Include dirmngr-err.h.
221         (cdb_free) [__MINGW32CE__]: Do not use get_osfhandle.
222
223         * dirmngr.c [!HAVE_SIGNAL_H]: Don't include signal.h.
224         (USE_W32_SERVICE): New.  Use this to control the use of the W32
225         service system.
226
227 2010-07-06  Werner Koch  <wk@g10code.com>
228
229         * dirmngr.c (main): Print note on directory name changes.
230
231         Replace almost all uses of stdio by estream.
232
233         * b64dec.c, b64enc.c: Remove.  They are duplicated in ../common/.
234
235 2010-06-28  Werner Koch  <wk@g10code.com>
236
237         * dirmngr_ldap.c (my_i18n_init): Remove.
238         (main): Call i18n_init instead of above function.
239
240         * dirmngr-client.c (my_i18n_init): Remove.
241         (main): Call i18n_init instead of above function.
242
243         * Makefile.am (dirmngr_LDADD): Add ../gl/libgnu.
244         (dirmngr_ldap_LDADD, dirmngr_client_LDADD): Ditto.
245
246 2010-06-09  Werner Koch  <wk@g10code.com>
247
248         * i18n.h: Remove.
249
250         * Makefile.am (no-libgcrypt.c): New rule.
251
252         * exechelp.h: Remove.
253         * exechelp.c: Remove.
254         (dirmngr_release_process): Change callers to use the gnupg func.
255         (dirmngr_wait_process): Likewise.
256         (dirmngr_kill_process): Likewise.  This actually implements it for
257         W32.
258         * ldap.c (ldap_wrapper): s/get_dirmngr_ldap_path/gnupg_module_name/.
259         (ldap_wrapper_thread): Use gnupg_wait_process and adjust for
260         changed semantics.
261         (ldap_wrapper): Replace xcalloc by xtrycalloc.  Replace spawn
262         mechanism.
263
264         * server.c (start_command_handler): Remove assuan_set_log_stream.
265
266         * validate.c: Remove gcrypt.h and ksba.h.
267
268         * ldapserver.c: s/util.h/dirmngr.h/.
269
270         * dirmngr.c (sleep) [W32]: Remove macro.
271         (main): s/sleep/gnupg_sleep/.
272         (pid_suffix_callback): Change arg type.
273         (my_gcry_logger): Remove.
274         (fixed_gcry_pth_init): New.
275         (main): Use it.
276         (FD2INT): Remove.
277
278 2010-06-08  Werner Koch  <wk@g10code.com>
279
280         * misc.h (copy_time): Remove and replace by gnupg_copy_time which
281         allows to set a null date.
282         * misc.c (dump_isotime, get_time, get_isotime, set_time)
283         (check_isotime, add_isotime): Remove and replace all calls by the
284         versions from common/gettime.c.
285
286         * crlcache.c, misc.c, misc.h: s/dirmngr_isotime_t/gnupg_isotime_t/.
287         * server.c, ldap.c: Reorder include directives.
288         * crlcache.h, misc.h: Remove all include directives.
289
290         * certcache.c (cmp_simple_canon_sexp): Remove.
291         (compare_serialno): Rewrite using cmp_simple_canon_sexp from
292         common/sexputil.c
293
294         * error.h: Remove.
295
296         * dirmngr.c: Remove transitional option "--ignore-ocsp-servic-url".
297         (opts): Use ARGPARSE macros.
298         (i18n_init): Remove.
299         (main): Use GnuPG init functions.
300
301         * dirmngr.h: Remove duplicated stuff now taken from ../common.
302
303         * get-path.c, util.h: Remove.
304
305         * Makefile.am: Adjust to GnuPG system.
306         * estream.c, estream.h, estream-printf.c, estream-printf.h: Remove.
307
308 2010-06-07  Werner Koch  <wk@g10code.com>
309
310         * OAUTHORS, ONEWS, ChangeLog.1: New.
311
312         * ChangeLog, Makefile.am, b64dec.c, b64enc.c, cdb.h, cdblib.c
313         * certcache.c, certcache.h, crlcache.c, crlcache.h, crlfetch.c
314         * crlfetch.h, dirmngr-client.c, dirmngr.c, dirmngr.h
315         * dirmngr_ldap.c, error.h, estream-printf.c, estream-printf.h
316         * estream.c, estream.h, exechelp.c, exechelp.h, get-path.c, http.c
317         * http.h, i18n.h, ldap-url.c, ldap-url.h, ldap.c, ldapserver.c
318         * ldapserver.h, misc.c, misc.h, ocsp.c, ocsp.h, server.c, util.h
319         * validate.c, validate.h: Imported from the current SVN of the
320         dirmngr package (only src/).
321
322 2010-03-13  Werner Koch  <wk@g10code.com>
323
324         * dirmngr.c (int_and_ptr_u): New.
325         (pid_suffix_callback): Trick out compiler.
326         (start_connection_thread): Ditto.
327         (handle_connections): Ditto.
328
329 2010-03-09  Werner Koch  <wk@g10code.com>
330
331         * dirmngr.c (set_debug): Allow numerical values.
332
333 2009-12-15  Werner Koch  <wk@g10code.com>
334
335         * dirmngr.c: Add option --ignore-cert-extension.
336         (parse_rereadable_options): Implement.
337         * dirmngr.h (opt): Add IGNORED_CERT_EXTENSIONS.
338         * validate.c (unknown_criticals): Handle ignored extensions.
339
340 2009-12-08  Marcus Brinkmann  <marcus@g10code.de>
341
342         * dirmngr-client.c (start_dirmngr): Convert posix FDs to assuan fds.
343
344 2009-11-25  Marcus Brinkmann  <marcus@g10code.de>
345
346         * server.c (start_command_handler): Use assuan_fd_t and
347         assuan_fdopen on fds.
348
349 2009-11-05  Marcus Brinkmann  <marcus@g10code.de>
350
351         * server.c (start_command_handler): Update use of
352         assuan_init_socket_server.
353         * dirmngr-client.c (start_dirmngr): Update use of
354         assuan_pipe_connect and assuan_socket_connect.
355
356 2009-11-04  Werner Koch  <wk@g10code.com>
357
358         * server.c (register_commands): Add help arg to
359         assuan_register_command.  Change all command comments to strings.
360
361 2009-11-02  Marcus Brinkmann  <marcus@g10code.de>
362
363         * server.c (reset_notify): Take LINE argument, return gpg_error_t.
364
365 2009-10-16  Marcus Brinkmann  <marcus@g10code.com>
366
367         * Makefile.am: (dirmngr_LDADD): Link to $(LIBASSUAN_LIBS) instead
368         of $(LIBASSUAN_PTH_LIBS).
369         * dirmngr.c: Invoke ASSUAN_SYSTEM_PTH_IMPL.
370         (main): Call assuan_set_system_hooks and assuan_sock_init.
371
372 2009-09-22  Marcus Brinkmann  <marcus@g10code.de>
373
374         * dirmngr.c (main): Update to new Assuan interface.
375         * server.c (option_handler, cmd_ldapserver, cmd_isvalid)
376         (cmd_checkcrl, cmd_checkocsp, cmd_lookup, cmd_loadcrl)
377         (cmd_listcrls, cmd_cachecert, cmd_validate): Return gpg_error_t
378         instead int.
379         (register_commands): Likewise for member HANDLER.
380         (start_command_handler): Allocate context with assuan_new before
381         starting server.  Release on error.
382         * dirmngr-client.c (main): Update to new Assuan interface.
383         (start_dirmngr): Allocate context with assuan_new before
384         connecting to server.  Release on error.
385
386 2009-08-12  Werner Koch  <wk@g10code.com>
387
388         * dirmngr-client.c (squid_loop_body): Flush stdout.  Suggested by
389         Philip Shin.
390
391 2009-08-07  Werner Koch  <wk@g10code.com>
392
393         * crlfetch.c (my_es_read): Add explicit check for EOF.
394
395         * http.c (struct http_context_s): Turn IN_DATA and IS_HTTP_0_9 to
396         bit fields.
397         (struct cookie_s): Add CONTENT_LENGTH_VALID and CONTENT_LENGTH.
398         (parse_response): Parse the Content-Length header.
399         (cookie_read): Handle content length.
400         (http_open): Make NEED_HEADER the semi-default.
401
402         * http.h (HTTP_FLAG_IGNORE_CL): New.
403
404 2009-08-04  Werner Koch  <wk@g10code.com>
405
406         * ldap.c (ldap_wrapper_thread): Factor some code out to ...
407         (read_log_data): ... new.  Close the log fd on error.
408         (ldap_wrapper_thread): Delay cleanup until the log fd is closed.
409         (SAFE_PTH_CLOSE): New.  Use it instead of pth_close.
410
411 2009-07-31  Werner Koch  <wk@g10code.com>
412
413         * server.c (cmd_loadcrl): Add option --url.
414         * dirmngr-client.c (do_loadcrl): Make use of --url.
415
416         * crlfetch.c (crl_fetch): Remove HTTP_FLAG_NO_SHUTDOWN.  Add
417         flag HTTP_FLAG_LOG_RESP with active DBG_LOOKUP.
418
419         * http.c: Require estream.  Remove P_ES macro.
420         (write_server): Remove.
421         (my_read_line): Remove.  Replace all callers by es_read_line.
422         (send_request): Use es_asprintf.  Always store the cookie.
423         (http_wait_response): Remove the need to dup the socket.  USe new
424         shutdown flag.
425         * http.h (HTTP_FLAG_NO_SHUTDOWN): Rename to HTTP_FLAG_SHUTDOWN.
426
427         * estream.c, estream.h, estream-printf.c, estream-printf.h: Update
428         from current libestream.  This is provide es_asprintf.
429
430 2009-07-20  Werner Koch  <wk@g10code.com>
431
432         * dirmngr.c (pid_suffix_callback): New.
433         (main): Use log_set_pid_suffix_cb.
434         (start_connection_thread): Put the fd into the tls.
435
436         * ldap.c (ldap_wrapper_thread): Print ldap worker stati.
437         (ldap_wrapper_release_context): Print a debug info.
438         (end_cert_fetch_ldap): Release the reader.  Might fix bug#999.
439
440 2009-06-17  Werner Koch  <wk@g10code.com>
441
442         * util.h: Remove unused dotlock.h.
443
444 2009-05-26  Werner Koch  <wk@g10code.com>
445
446         * ldap.c (ldap_wrapper): Show reader object in diagnostics.
447         * crlcache.c (crl_cache_reload_crl): Ditto.  Change debug messages
448         to regular diagnostics.
449         * dirmngr_ldap.c (print_ldap_entries): Add extra diagnostics.
450
451 2009-04-03  Werner Koch  <wk@g10code.com>
452
453         * dirmngr.h (struct server_local_s): Move back to ...
454         * server.c (struct server_local_s): ... here.
455         (get_ldapservers_from_ctrl): New.
456         * ldapserver.h (ldapserver_iter_begin): Use it.
457
458 2008-10-29  Marcus Brinkmann  <marcus@g10code.de>
459
460         * estream.c (es_getline): Add explicit cast to silence gcc -W
461         warning.
462         * crlcache.c (finish_sig_check): Likewise.
463
464         * dirmngr.c (opts): Add missing initializer to silence gcc
465         -W warning.
466         * server.c (register_commands): Likewise.
467         * dirmngr-client.c (opts): Likewise.
468         * dirmngr_ldap.c (opts): Likewise.
469
470         * dirmngr-client.c (status_cb, inq_cert, data_cb): Change return
471         type to gpg_error_t to silence gcc warning.
472
473 2008-10-21  Werner Koch  <wk@g10code.com>
474
475         * certcache.c (load_certs_from_dir): Accept ".der" files.
476
477         * server.c (get_istrusted_from_client): New.
478         * validate.c (validate_cert_chain): Add new optional arg
479         R_TRUST_ANCHOR.  Adjust all callers
480         * crlcache.c (crl_cache_entry_s): Add fields USER_TRUST_REQ
481         and CHECK_TRUST_ANCHOR.
482         (release_one_cache_entry): Release CHECK_TRUST_ANCHOR.
483         (list_one_crl_entry): Print info about the new fields.
484         (open_dir, write_dir_line_crl): Support the new U-flag.
485         (crl_parse_insert): Add arg R_TRUST_ANCHOR and set it accordingly.
486         (crl_cache_insert): Store trust anchor in entry object.
487         (cache_isvalid): Ask client for trust is needed.
488
489         * crlcache.c (open_dir): Replace xcalloc by xtrycalloc.
490         (next_line_from_file): Ditt.  Add arg to return the gpg error.
491         Change all callers.
492         (update_dir): Replace sprintf and malloc by estream_asprintf.
493         (crl_cache_insert): Ditto.
494         (crl_cache_isvalid): Replace xmalloc by xtrymalloc.
495         (get_auth_key_id): Ditto.
496         (crl_cache_insert): Ditto.
497
498         * crlcache.c (start_sig_check): Remove HAVE_GCRY_MD_DEBUG test.
499         * validate.c (check_cert_sig): Ditto.  Remove workaround for bug
500         in libgcrypt 1.2.
501
502         * estream.c, estream.h, estream-printf.c, estream-printf.h: Update
503         from current libestream (svn rev 61).
504
505 2008-09-30  Marcus Brinkmann  <marcus@g10code.com>
506
507         * get-path.c (get_dirmngr_ldap_path): Revert last change.
508         Instead, use dirmngr_libexecdir().
509         (find_program_at_standard_place): Don't define for now.
510
511 2008-09-30  Marcus Brinkmann  <marcus@g10code.com>
512
513         * get-path.c (dirmngr_cachedir): Make COMP a pointer to const to
514         silence gcc warning.
515         (get_dirmngr_ldap_path): Look for dirmngr_ldap in the installation
516         directory.
517
518 2008-08-06  Marcus Brinkmann  <marcus@g10code.com>
519
520         * dirmngr.c (main): Mark the ldapserverlist-file option as
521         read-only.
522
523 2008-07-31  Werner Koch  <wk@g10code.com>
524
525         * crlcache.c (start_sig_check) [!HAVE_GCRY_MD_DEBUG]: Use
526         gcry_md_start_debug
527
528 2008-06-16  Werner Koch  <wk@g10code.com>
529
530         * get-path.c (w32_commondir): New.
531         (dirmngr_sysconfdir): Use it here.
532         (dirmngr_datadir): Ditto.
533
534 2008-06-12  Marcus Brinkmann  <marcus@g10code.de>
535
536         * Makefile.am (dirmngr_SOURCES): Add ldapserver.h and ldapserver.c.
537         * ldapserver.h, ldapserver.c: New files.
538         * ldap.c: Include "ldapserver.h".
539         (url_fetch_ldap): Use iterator to get session servers as well.
540         (attr_fetch_ldap, start_default_fetch_ldap): Likewise.
541         * dirmngr.c: Include "ldapserver.h".
542         (free_ldapservers_list): Removed.  Change callers to
543         ldapserver_list_free.
544         (parse_ldapserver_file): Use ldapserver_parse_one.
545         * server.c: Include "ldapserver.h".
546         (cmd_ldapserver): New command.
547         (register_commands): Add new command LDAPSERVER.
548         (reset_notify): New function.
549         (start_command_handler): Register reset notify handler.
550         Deallocate session server list.
551         (lookup_cert_by_pattern): Use iterator to get session servers as well.
552         (struct server_local_s): Move to ...
553         * dirmngr.h (struct server_local_s): ... here.  Add new member
554         ldapservers.
555
556 2008-06-10  Werner Koch  <wk@g10code.com>
557
558         Support PEM encoded CRLs.  Fixes bug#927.
559
560         * crlfetch.c (struct reader_cb_context_s): New.
561         (struct file_reader_map_s): Replace FP by new context.
562         (register_file_reader, get_file_reader): Adjust accordingly.
563         (my_es_read): Detect Base64 encoded CRL and decode if needed.
564         (crl_fetch): Pass new context to the callback.
565         (crl_close_reader): Cleanup the new context.
566         * b64dec.c: New.  Taken from GnuPG.
567         * util.h (struct b64state): Add new fields STOP_SEEN and
568         INVALID_ENCODING.
569
570 2008-05-26  Marcus Brinkmann  <marcus@g10code.com>
571
572         * dirmngr.c (main) [HAVE_W32_SYSTEM]: Switch to system
573         configuration on gpgconf related commands, and make all options
574         unchangeable.
575
576 2008-03-25  Marcus Brinkmann  <marcus@g10code.de>
577
578         * dirmngr_ldap.c (print_ldap_entries): Add code alternative for
579         W32 console stdout (unused at this point).
580
581 2008-03-21  Marcus Brinkmann  <marcus@g10code.de>
582
583         * estream.c (ESTREAM_MUTEX_DESTROY): New macro.
584         (es_create, es_destroy): Use it.
585
586 2008-02-21  Werner Koch  <wk@g10code.com>
587
588         * validate.c (check_cert_sig) [HAVE_GCRY_MD_DEBUG]: Use new debug
589         function if available.
590
591         * crlcache.c (abort_sig_check): Mark unused arg.
592
593         * exechelp.c (dirmngr_release_process) [!W32]: Mark unsed arg.
594
595         * validate.c (is_root_cert): New.  Taken from GnuPG.
596         (validate_cert_chain): Use it in place of the simple DN compare.
597
598 2008-02-15  Marcus Brinkmann  <marcus@g10code.de>
599
600         * dirmngr.c (main): Reinitialize assuan log stream if necessary.
601
602         * crlcache.c (update_dir) [HAVE_W32_SYSTEM]: Remove destination
603         file before rename.
604         (crl_cache_insert) [HAVE_W32_SYSTEM]: Remove destination file
605         before rename.
606
607 2008-02-14  Marcus Brinkmann  <marcus@g10code.de>
608
609         * validate.c (check_cert_policy): Use ksba_free instead of xfree.
610         (validate_cert_chain): Likewise.  Free SUBJECT on error.
611         (cert_usage_p): Likewise.
612
613         * crlcache.c (finish_sig_check): Undo last change.
614         (finish_sig_check): Close md.
615         (abort_sig_check): New function.
616         (crl_parse_insert): Use abort_sig_check to clean up.
617
618         * crlcache.c (crl_cache_insert): Clean up CDB on error.
619
620 2008-02-13  Marcus Brinkmann  <marcus@g10code.de>
621
622         * crlcache.c (finish_sig_check): Call gcry_md_stop_debug.
623         * exechelp.h (dirmngr_release_process): New prototype.
624         * exechelp.c (dirmngr_release_process): New function.
625         * ldap.c (ldap_wrapper_thread): Release pid.
626         (destroy_wrapper): Likewise.
627
628         * dirmngr.c (launch_reaper_thread): Destroy tattr.
629         (handle_connections): Likewise.
630
631 2008-02-12  Marcus Brinkmann  <marcus@g10code.de>
632
633         * ldap.c (pth_close) [! HAVE_W32_SYSTEM]: New macro.
634         (struct wrapper_context_s): New member log_ev.
635         (destroy_wrapper): Check FDs for != -1 rather than != 0.  Use
636         pth_close instead of close.  Free CTX->log_ev.
637         (ldap_wrapper_thread): Rewritten to use pth_wait instead of
638         select.  Also use pth_read instead of read and pth_close instead
639         of close.
640         (ldap_wrapper): Initialize CTX->log_ev.
641         (reader_callback): Use pth_close instead of close.
642         * exechelp.c (create_inheritable_pipe) [HAVE_W32_SYSTEM]: Removed.
643         (dirmngr_spawn_process) [HAVE_W32_SYSTEM]: Use pth_pipe instead.
644         * dirmngr_ldap.c [HAVE_W32_SYSTEM]: Include <fcntl.h>.
645         (main) [HAVE_W32_SYSTEM]: Set mode of stdout to binary.
646
647 2008-02-01  Werner Koch  <wk@g10code.com>
648
649         * ldap.c: Remove all ldap headers as they are unused.
650
651         * dirmngr_ldap.c (LDAP_DEPRECATED): New, to have OpenLDAP use the
652         old standard API.
653
654 2008-01-10  Werner Koch  <wk@g10code.com>
655
656         * dirmngr-client.c: New option --local.
657         (do_lookup): Use it.
658
659         * server.c (lookup_cert_by_pattern): Implement local lookup.
660         (return_one_cert): New.
661         * certcache.c (hexsn_to_sexp): New.
662         (classify_pattern, get_certs_bypattern): New.
663
664         * misc.c (unhexify): Allow passing NULL for RESULT.
665         (cert_log_subject): Do not call ksba_free on an unused variable.
666
667 2008-01-02  Marcus Brinkmann  <marcus@g10code.de>
668
669         * Makefile.am (dirmngr_LDADD, dirmngr_ldap_LDADD)
670         (dirmngr_client_LDADD): Add $(LIBICONV).  Reported by Michael
671         Nottebrock.
672
673 2007-12-11  Werner Koch  <wk@g10code.com>
674
675         * server.c (option_handler): New option audit-events.
676         * dirmngr.h (struct server_control_s): Add member AUDIT_EVENTS.
677
678 2007-11-26  Marcus Brinkmann  <marcus@g10code.de>
679
680         * get-path.c (dirmngr_cachedir): Create intermediate directories.
681         (default_socket_name): Use CSIDL_WINDOWS.
682
683 2007-11-21  Werner Koch  <wk@g10code.com>
684
685         * server.c (lookup_cert_by_pattern): Add args SINGLE and CACHE_ONLY.
686         (cmd_lookup): Add options --single and --cache-only.
687
688 2007-11-16  Werner Koch  <wk@g10code.com>
689
690         * certcache.c (load_certs_from_dir): Also log the subject DN.
691         * misc.c (cert_log_subject): New.
692
693 2007-11-14  Werner Koch  <wk@g10code.com>
694
695         * dirmngr-client.c: Replace --lookup-url by --url.
696         (main): Remove extra code for --lookup-url.
697         (do_lookup): Remove LOOKUP_URL arg and use the
698         global option OPT.URL.
699
700         * server.c (has_leading_option): New.
701         (cmd_lookup): Use it.
702
703         * crlfetch.c (fetch_cert_by_url): Use GPG_ERR_INV_CERT_OBJ.
704         (fetch_cert_by_url): Use gpg_error_from_syserror.
705
706 2007-11-14  Moritz  <moritz@gnu.org>  (wk)
707
708         * dirmngr-client.c: New command: --lookup-url <URL>.
709         (do_lookup): New parameter: lookup_url.  If TRUE, include "--url"
710         switch in LOOKUP transaction.
711         (enum): New entry: oLookupUrl.
712         (opts): Likewise.
713         (main): Handle oLookupUrl.  New variable: cmd_lookup_url, set
714         during option parsing, pass to do_lookup() and substitute some
715         occurences of "cmd_lookup" with "cmd_lookup OR cmd_lookup_url".
716         * crlfetch.c (fetch_cert_by_url): New function, uses
717         url_fetch_ldap() to create a reader object and libksba functions
718         to read a single cert from that reader.
719         * server.c (lookup_cert_by_url, lookup_cert_by_pattern): New
720         functions.
721         (cmd_lookup): Moved almost complete code ...
722         (lookup_cert_by_pattern): ... here.
723         (cmd_lookup): Support new optional argument: --url.  Depending on
724         the presence of that switch, call lookup_cert_by_url() or
725         lookup_cert_by_pattern().
726         (lookup_cert_by_url): Heavily stripped down version of
727         lookup_cert_by_pattern(), using fetch_cert_by_url.
728
729 2007-10-24  Marcus Brinkmann  <marcus@g10code.de>
730
731         * exechelp.c (dirmngr_spawn_process): Fix child handles.
732
733 2007-10-05  Marcus Brinkmann  <marcus@g10code.de>
734
735         * dirmngr.h: Include assuan.h.
736         (start_command_handler): Change type of FD to assuan_fd_t.
737         * dirmngr.c: Do not include w32-afunix.h.
738         (socket_nonce): New global variable.
739         (create_server_socket): Use assuan socket wrappers.  Remove W32
740         specific stuff.  Save the server nonce.
741         (check_nonce): New function.
742         (start_connection_thread): Call it.
743         (handle_connections): Change args to assuan_fd_t.
744         * server.c (start_command_handler): Change type of FD to assuan_fd_t.
745
746 2007-09-12  Marcus Brinkmann  <marcus@g10code.de>
747
748         * dirmngr.c (main): Percent escape pathnames in --gpgconf-list output.
749
750 2007-08-27  Moritz Schulte  <moritz@g10code.com>
751
752         * src/Makefile.am (AM_CPPFLAGS): Define DIRMNGR_SOCKETDIR based on
753         $(localstatedir).
754         * src/get-path.c (default_socket_name): Use DIRMNGR_SOCKETDIR
755         instead of hard-coded "/var/run/dirmngr".
756
757 2007-08-16  Werner Koch  <wk@g10code.com>
758
759         * get-path.c (get_dirmngr_ldap_path): Make PATHNAME const.
760
761         * dirmngr.c (my_ksba_hash_buffer): Mark unused arg.
762         (dirmngr_init_default_ctrl): Ditto.
763         (my_gcry_logger): Ditto.
764         * dirmngr-client.c (status_cb): Ditto.
765         * dirmngr_ldap.c (catch_alarm): Ditto.
766         * estream-printf.c (pr_bytes_so_far): Ditto.
767         * estream.c (es_func_fd_create): Ditto.
768         (es_func_fp_create): Ditto.
769         (es_write_hexstring): Ditto.
770         * server.c (cmd_listcrls): Ditto.
771         (cmd_cachecert): Ditto.
772         * crlcache.c (cache_isvalid): Ditto.
773         * ocsp.c (do_ocsp_request): Ditto.
774         * ldap.c (ldap_wrapper_thread): Ditto.
775         * http.c (http_register_tls_callback): Ditto.
776         (connect_server): Ditto.
777         (write_server) [!HTTP_USE_ESTREAM]: Don't build.
778
779 2007-08-14  Werner Koch  <wk@g10code.com>
780
781         * get-path.c (dirmngr_cachedir) [W32]: Use CSIDL_LOCAL_APPDATA.
782
783 2007-08-13  Werner Koch  <wk@g10code.com>
784
785         * dirmngr.c (handle_connections): Use a timeout in the accept
786         function.  Block signals while creating a new thread.
787         (shutdown_pending): Needs to be volatile as also accessed bt the
788         service function.
789         (w32_service_control): Do not use the regular log fucntions here.
790         (handle_tick): New.
791         (main): With system_service in effect use aDaemon as default
792         command.
793         (main) [W32]: Only temporary redefine main for the sake of Emacs's
794         "C-x 4 a".
795
796         * dirmngr-client.c (main) [W32]: Initialize sockets.
797         (start_dirmngr): Use default_socket_name instead of a constant.
798         * Makefile.am (dirmngr_client_SOURCES): Add get-path.c
799
800 2007-08-09  Werner Koch  <wk@g10code.com>
801
802         * dirmngr.c (parse_ocsp_signer): New.
803         (parse_rereadable_options): Set opt.ocsp_signer to this.
804         * dirmngr.h (fingerprint_list_t): New.
805         * ocsp.c (ocsp_isvalid, check_signature, validate_responder_cert):
806         Allow for several default ocscp signers.
807         (ocsp_isvalid): Return GPG_ERR_NO_DATA for an unknwon status.
808
809         * dirmngr-client.c: New option --force-default-responder.
810
811         * server.c (has_option, skip_options): New.
812         (cmd_checkocsp): Add option --force-default-responder.
813         (cmd_isvalid): Ditto.  Also add option --only-ocsp.
814
815         * ocsp.c (ocsp_isvalid): New arg FORCE_DEFAULT_RESPONDER.
816
817         * dirmngr.c: New option --ocsp-max-period.
818         * ocsp.c (ocsp_isvalid): Implement it and take care that a missing
819         next_update is to be ignored.
820
821         * crlfetch.c (my_es_read): New.  Use it instead of es_read.
822
823         * estream.h, estream.c, estream-printf.c: Updated from current
824         libestream SVN.
825
826 2007-08-08  Werner Koch  <wk@g10code.com>
827
828         * crlcache.c (crl_parse_insert): Hack to allow for a missing
829         nextUpdate.
830
831         * dirmngr_ldap.c (print_ldap_entries): Strip the extension from
832         the want_attr.
833
834         * exechelp.c (dirmngr_wait_process): Reworked for clear error
835         semantics.
836         * ldap.c (ldap_wrapper_thread): Adjust for new
837         dirmngr_wait_process semantics.
838
839 2007-08-07  Werner Koch  <wk@g10code.com>
840
841         * get-path.c (default_socket_name) [!W32]: Fixed syntax error.
842
843         * ldap.c (X509CACERT, make_url, fetch_next_cert_ldap): Support
844         x509caCert as used by the Bundesnetzagentur.
845         (ldap_wrapper): Do not pass the prgtram name as the first
846         argument.  dirmngr_spawn_process takes care of that.
847
848 2007-08-04  Marcus Brinkmann  <marcus@g10code.de>
849
850         * dirmngr.h (opt): Add member system_service.
851         * dirmngr.c (opts) [HAVE_W32_SYSTEM]: New entry for option
852         --service.
853         (DEFAULT_SOCKET_NAME): Removed.
854         (service_handle, service_status,
855         w32_service_control) [HAVE_W32_SYSTEM]: New symbols.
856         (main) [HAVE_W32_SYSTEM]: New entry point for --service.  Rename
857         old function to ...
858         (real_main) [HAVE_W32_SYSTEM]: ... this.  Use default_socket_name
859         instead of DEFAULT_SOCKET_NAME, and similar for other paths.
860         Allow colons in Windows socket path name, and implement --service
861         option.
862         * util.h (dirmngr_sysconfdir, dirmngr_libexecdir, dirmngr_datadir,
863         dirmngr_cachedir, default_socket_name): New prototypes.
864         * get-path.c (dirmngr_sysconfdir, dirmngr_libexecdir)
865         (dirmngr_datadir, dirmngr_cachedir, default_socket_name): New
866         functions.
867         (DIRSEP_C, DIRSEP_S): New macros.
868
869 2007-08-03  Marcus Brinkmann  <marcus@g10code.de>
870
871         * get-path.c: Really add the file this time.
872
873 2007-07-31  Marcus Brinkmann  <marcus@g10code.de>
874
875         * crlfetch.c: Include "estream.h".
876         (crl_fetch): Use es_read callback instead a file handle.
877         (crl_close_reader): Use es_fclose instead of fclose.
878         (struct file_reader_map_s): Change type of FP to estream_t.
879         (register_file_reader, crl_fetch, crl_close_reader): Likewise.
880         * ocsp.c: Include "estream.h".
881         (read_response): Change type of FP to estream_t.
882         (read_response, do_ocsp_request): Use es_* variants of I/O
883         functions.
884
885         * http.c: Include <pth.h>.
886         (http_wait_response) [HAVE_W32_SYSTEM]: Use DuplicateHandle.
887         (cookie_read): Use pth_read instead read.
888         (cookie_write): Use pth_write instead write.
889
890 2007-07-30  Marcus Brinkmann  <marcus@g10code.de>
891
892         * ldap-url.c (ldap_str2charray): Fix buglet in ldap_utf8_strchr
893         invocation.
894
895 2007-07-27  Marcus Brinkmann  <marcus@g10code.de>
896
897         * estream.h, estream.c: Update from recent GnuPG.
898
899         * get-path.c: New file.
900         * Makefile.am (dirmngr_SOURCES): Add get-path.c.
901         * util.h (default_homedir, get_dirmngr_ldap_path): New prototypes.
902         * dirmngr.c (main): Use default_homedir().
903         * ldap-url.h: Remove japanese white space (sorry!).
904
905 2007-07-26  Marcus Brinkmann  <marcus@g10code.de>
906
907         * ldap.c (pth_yield): Remove macro.
908
909         * ldap.c (pth_yield) [HAVE_W32_SYSTEM]: Define to Sleep(0).
910
911         * dirmngr_ldap.c [HAVE_W32_SYSTEM]: Do not include <ldap.h>, but
912         <winsock2.h>, <winldap.h> and "ldap-url.h".
913         * ldap.c [HAVE_W32_SYSTEM]: Do not include <ldap.h>, but
914         <winsock2.h> and <winldap.h>.
915
916         * ldap-url.c: Do not include <ldap.h>, but <winsock2.h>,
917         <winldap.h> and "ldap-url.h".
918         (LDAP_P): New macro.
919         * ldap-url.h: New file.
920         * Makefile.am (ldap_url): Add ldap-url.h.
921
922         * Makefile.am (ldap_url): New variable.
923         (dirmngr_ldap_SOURCES): Add $(ldap_url).
924         (dirmngr_ldap_LDADD): Add $(LIBOBJS).
925         * ldap-url.c: New file, excerpted from OpenLDAP.
926         * dirmngr.c (main) [HAVE_W32_SYSTEM]: Avoid the daemonization.
927         * dirmngr_ldap.c: Include "util.h".
928         (main) [HAVE_W32_SYSTEM]: Don't set up alarm.
929         (set_timeout) [HAVE_W32_SYSTEM]: Likewise.
930         * ldap.c [HAVE_W32_SYSTEM]: Add macros for setenv and pth_yield.
931         * no-libgcrypt.h (NO_LIBGCRYPT): Define.
932         * util.h [NO_LIBGCRYPT]: Don't include <gcrypt.h>.
933
934 2007-07-23  Marcus Brinkmann  <marcus@g10code.de>
935
936         * Makefile.am (dirmngr_SOURCES): Add exechelp.h and exechelp.c.
937         * exechelp.h, exechelp.c: New files.
938         * ldap.c: Don't include <sys/wait.h> but "exechelp.h".
939         (destroy_wrapper, ldap_wrapper_thread,
940         ldap_wrapper_connection_cleanup): Use dirmngr_kill_process instead
941         of kill.
942         (ldap_wrapper_thread): Use dirmngr_wait_process instead of
943         waitpid.
944         (ldap_wrapper): Use dirmngr_spawn_process.
945
946 2007-07-20  Marcus Brinkmann  <marcus@g10code.de>
947
948         * certcache.c (cert_cache_lock): Do not initialize statically.
949         (init_cache_lock): New function.
950         (cert_cache_init): Call init_cache_lock.
951
952         * estream.h, estream.c, estream-printf.h, estream-printf.c: New
953         files.
954         * Makefile.am (dirmngr_SOURCES): Add estream.c, estream.h,
955         estream-printf.c, estream-printf.h.
956
957         * http.c: Update to latest version from GnuPG.
958
959         * Makefile.am (cdb_sources)
960         * cdblib.c: Port to windows (backport from tinycdb 0.76).
961
962         * crlcache.c [HAVE_W32_SYSTEM]: Don't include sys/utsname.h.
963         [MKDIR_TAKES_ONE_ARG]: Define mkdir as a macro for such systems.
964         (update_dir, crl_cache_insert) [HAVE_W32_SYSTEM]: Don't get uname.
965         * server.c (start_command_handler) [HAVE_W32_SYSTEM]: Don't log
966         peer credentials.
967
968         * dirmngr.c [HAVE_W32_SYSTEM]: Do not include sys/socket.h or
969         sys/un.h, but ../jnlib/w32-afunix.h.
970         (sleep) [HAVE_W32_SYSTEM]: New macro.
971         (main) [HAVE_W32_SYSTEM]: Don't mess with SIGPIPE.  Use W32 socket
972         API.
973         (handle_signal) [HAVE_W32_SYSTEM]: Deactivate the bunch of the
974         code.
975         (handle_connections) [HAVE_W32_SYSTEM]: don't handle signals.
976
977 2006-11-29  Werner Koch  <wk@g10code.com>
978
979         * dirmngr.c (my_strusage): Use macro for the bug report address
980         and the copyright line.
981         * dirmngr-client.c (my_strusage): Ditto.
982         * dirmngr_ldap.c (my_strusage): Ditto.
983
984         * Makefile.am: Do not link against LIBICONV.
985
986 2006-11-19  Werner Koch  <wk@g10code.com>
987
988         * dirmngr.c: Include i18n.h.
989
990 2006-11-17  Werner Koch  <wk@g10code.com>
991
992         * Makefile.am (dirmngr_LDADD): Use LIBASSUAN_PTH_LIBS.
993
994 2006-11-16  Werner Koch  <wk@g10code.com>
995
996         * server.c (start_command_handler): Replaced
997         assuan_init_connected_socket_server by assuan_init_socket_server_ext.
998
999         * crlcache.c (update_dir): Put a diagnostic into DIR.txt.
1000         (open_dir): Detect invalid and duplicate entries.
1001         (update_dir): Fixed search for second field.
1002
1003 2006-10-23  Werner Koch  <wk@g10code.com>
1004
1005         * dirmngr.c (main): New command --gpgconf-test.
1006
1007 2006-09-14  Werner Koch  <wk@g10code.com>
1008
1009         * server.c (start_command_handler): In vebose mode print
1010         information about the peer.  This may later be used to restrict
1011         certain commands.
1012
1013 2006-09-12  Werner Koch  <wk@g10code.com>
1014
1015         * server.c (start_command_handler): Print a more informative hello
1016         line.
1017         * dirmngr.c: Moved config_filename into the opt struct.
1018
1019 2006-09-11  Werner Koch  <wk@g10code.com>
1020
1021         Changed everything to use Assuan with gpg-error codes.
1022         * maperror.c: Removed.
1023         * server.c (map_to_assuan_status): Removed.
1024         * dirmngr.c (main): Set assuan error source.
1025         * dirmngr-client.c (main): Ditto.
1026
1027 2006-09-04  Werner Koch  <wk@g10code.com>
1028
1029         * crlfetch.c (crl_fetch): Implement HTTP redirection.
1030         * ocsp.c (do_ocsp_request): Ditto.
1031
1032         New HTTP code version taken from gnupg svn release 4236.
1033         * http.c (http_get_header): New.
1034         (capitalize_header_name, store_header): New.
1035         (parse_response): Store headers away.
1036         (send_request): Return GPG_ERR_NOT_FOUND if connect_server failed.
1037         * http.h: New flag HTTP_FLAG_NEED_HEADER.
1038
1039 2006-09-01  Werner Koch  <wk@g10code.com>
1040
1041         * crlfetch.c (register_file_reader, get_file_reader): New.
1042         (crl_fetch): Register the file pointer for HTTP.
1043         (crl_close_reader): And release it.
1044
1045         * http.c, http.h: Updated from GnuPG SVN trunk.  Changed all users
1046         to adopt the new API.
1047         * dirmngr.h: Moved inclusion of jnlib header to ...
1048         * util.h: .. here.  This is required becuase http.c includes only
1049         a file util.h but makes use of log_foo. Include gcrypt.h so that
1050         gcry_malloc et al are declared.
1051
1052 2006-08-31  Werner Koch  <wk@g10code.com>
1053
1054         * ocsp.c (check_signature): Make use of the responder id.
1055
1056 2006-08-30  Werner Koch  <wk@g10code.com>
1057
1058         * validate.c (check_cert_sig): Workaround for rimemd160.
1059         (allowed_ca): Always allow trusted CAs.
1060
1061         * dirmngr.h (cert_ref_t): New.
1062         (struct server_control_s): Add field OCSP_CERTS.
1063         * server.c (start_command_handler): Release new field
1064         * ocsp.c (release_ctrl_ocsp_certs): New.
1065         (check_signature): Store certificates in OCSP_CERTS.
1066
1067         * certcache.c (find_issuing_cert): Reset error if cert was found
1068         by subject.
1069         (put_cert): Add new arg FPR_BUFFER.  Changed callers.
1070         (cache_cert_silent): New.
1071
1072         * dirmngr.c (parse_rereadable_options): New options
1073         --ocsp-max-clock-skew and --ocsp-current-period.
1074         * ocsp.c (ocsp_isvalid): Use them here.
1075
1076         * ocsp.c (validate_responder_cert): New optional arg signer_cert.
1077         (check_signature_core): Ditto.
1078         (check_signature): Use the default signer certificate here.
1079
1080 2006-06-27  Werner Koch  <wk@g10code.com>
1081
1082         * dirmngr-client.c (inq_cert): Take care of SENDCERT_SKI.
1083
1084 2006-06-26  Werner Koch  <wk@g10code.com>
1085
1086         * crlcache.c (lock_db_file): Count open files when needed.
1087         (find_entry): Fixed deleted case.
1088
1089 2006-06-23  Werner Koch  <wk@g10code.com>
1090
1091         * misc.c (cert_log_name): New.
1092
1093         * certcache.c (load_certs_from_dir): Also print certificate name.
1094         (find_cert_bysn): Release ISSDN.
1095
1096         * validate.h: New VALIDATE_MODE_CERT.
1097         * server.c (cmd_validate): Use it here so that no policy checks
1098         are done.  Try to validated a cached copy of the target.
1099
1100         * validate.c (validate_cert_chain): Implement a validation cache.
1101         (check_revocations): Print more diagnostics.  Actually use the
1102         loop variable and not the head of the list.
1103         (validate_cert_chain): Do not check revocations of CRL issuer
1104         certificates in plain CRL check mode.
1105         * ocsp.c (ocsp_isvalid): Make sure it is reset for a status of
1106         revoked.
1107
1108 2006-06-22  Werner Koch  <wk@g10code.com>
1109
1110         * validate.c (cert_use_crl_p): New.
1111         (cert_usage_p): Add a mode 6 for CRL signing.
1112         (validate_cert_chain): Check that the certificate may be used for
1113         CRL signing.  Print a note when not running as system daemon.
1114         (validate_cert_chain): Reduce the maximum depth from 50 to 10.
1115
1116         * certcache.c (find_cert_bysn): Minor restructuring
1117         (find_cert_bysubject): Ditto.  Use get_cert_local when called
1118         without KEYID.
1119         * crlcache.c (get_crlissuer_cert_bysn): Removed.
1120         (get_crlissuer_cert): Removed.
1121         (crl_parse_insert): Use find_cert_bysubject and find_cert_bysn
1122         instead of the removed functions.
1123
1124 2006-06-19  Werner Koch  <wk@g10code.com>
1125
1126         * certcache.c (compare_serialno): Silly me. Using 0 as true is
1127         that hard; tsss. Fixed call cases except for the only working one
1128         which are both numbers of the same length.
1129
1130 2006-05-15  Werner Koch  <wk@g10code.com>
1131
1132         * crlfetch.c (crl_fetch): Use no-shutdown flag for HTTP.  This
1133         seems to be required for "IBM_HTTP_Server/2.0.47.1 Apache/2.0.47
1134         (Unix)".
1135
1136         * http.c (parse_tuple): Set flag to to indicate no value.
1137         (build_rel_path): Take care of it.
1138
1139         * crlcache.c (crl_cache_reload_crl): Also iterate over all names
1140         within a DP.
1141
1142 2005-09-28  Marcus Brinkmann  <marcus@g10code.de>
1143
1144         * Makefile.am (dirmngr_LDADD): Add @LIBINTL@ and @LIBICONV@.
1145         (dirmngr_ldap_LDADD): Likewise.
1146         (dirmngr_client_LDADD): Likewise.
1147
1148 2005-09-12  Werner Koch  <wk@g10code.com>
1149
1150         * dirmngr.c: Fixed description to match the one in gpgconf.
1151
1152 2005-06-15  Werner Koch  <wk@g10code.com>
1153
1154         * server.c (cmd_lookup): Take care of NO_DATA which might get
1155         returned also by start_cert_fetch().
1156
1157 2005-04-20  Werner Koch  <wk@g10code.com>
1158
1159         * ldap.c (ldap_wrapper_wait_connections): Set a shutdown flag.
1160         (ldap_wrapper_thread): Handle shutdown in a special way.
1161
1162 2005-04-19  Werner Koch  <wk@g10code.com>
1163
1164         * server.c (get_cert_local, get_issuing_cert_local)
1165         (get_cert_local_ski): Bail out if called without a local context.
1166
1167 2005-04-18  Werner Koch  <wk@g10code.com>
1168
1169         * certcache.c (find_issuing_cert): Fixed last resort method which
1170         should be finding by subject and not by issuer. Try to locate it
1171         also using the keyIdentifier method.  Improve error reporting.
1172         (cmp_simple_canon_sexp): New.
1173         (find_cert_bysubject): New.
1174         (find_cert_bysn): Ask back to the caller before trying an extarnl
1175         lookup.
1176         * server.c (get_cert_local_ski): New.
1177         * crlcache.c (crl_parse_insert): Also try to locate issuer
1178         certificate using the keyIdentifier.  Improved error reporting.
1179
1180 2005-04-14  Werner Koch  <wk@g10code.com>
1181
1182         * ldap.c (start_cert_fetch_ldap): Really return ERR.
1183
1184 2005-03-17  Werner Koch  <wk@g10code.com>
1185
1186         * http.c (parse_response): Changed MAXLEN and LEN to size_t to
1187         match the requirement of read_line.
1188         * http.h (http_context_s): Ditto for BUFFER_SIZE.
1189
1190 2005-03-15  Werner Koch  <wk@g10code.com>
1191
1192         * ldap.c: Included time.h.  Reported by Bernhard Herzog.
1193
1194 2005-03-09  Werner Koch  <wk@g10code.com>
1195
1196         * dirmngr.c: Add a note to the help listing check the man page for
1197         other options.
1198
1199 2005-02-01  Werner Koch  <wk@g10code.com>
1200
1201         * crlcache.c (crl_parse_insert): Renamed a few variables and
1202         changed diagnostic strings for clarity.
1203         (get_issuer_cert): Renamed to get_crlissuer_cert. Try to locate
1204         the certificate from the cache using the subject name.  Use new
1205         fetch function.
1206         (get_crlissuer_cert_bysn): New.
1207         (crl_parse_insert): Use it here.
1208         * crlfetch.c (ca_cert_fetch): Changed interface.
1209         (fetch_next_ksba_cert): New.
1210         * ldap.c (run_ldap_wrapper): Add arg MULTI_MODE.  Changed all
1211         callers.
1212         (start_default_fetch_ldap): New
1213         * certcache.c (get_cert_bysubject): New.
1214         (clean_cache_slot, put_cert): Store the subject DN if available.
1215         (MAX_EXTRA_CACHED_CERTS): Increase limit of cachable certificates
1216         to 1000.
1217         (find_cert_bysn): Loop until a certificate with a matching S/N has
1218         been found.
1219
1220         * dirmngr.c (main): Add honor-http-proxy to the gpgconf list.
1221
1222 2005-01-31  Werner Koch  <wk@g10code.com>
1223
1224         * ldap.c: Started to work on support for userSMIMECertificates.
1225
1226         * dirmngr.c (main): Make sure to always pass a server control
1227         structure to the caching functions.  Reported by Neil Dunbar.
1228
1229 2005-01-05  Werner Koch  <wk@g10code.com>
1230
1231         * dirmngr-client.c (read_pem_certificate): Skip trailing percent
1232         escaped linefeeds.
1233
1234 2005-01-03  Werner Koch  <wk@g10code.com>
1235
1236         * dirmngr-client.c (read_pem_certificate): New.
1237         (read_certificate): Divert to it depending on pem option.
1238         (squid_loop_body): New.
1239         (main): New options --pem and --squid-mode.
1240
1241 2004-12-17  Werner Koch  <wk@g10code.com>
1242
1243         * dirmngr.c (launch_ripper_thread): Renamed to launch_reaper_thread.
1244         (shutdown_reaper): New.  Use it for --server and --daemon.
1245         * ldap.c (ldap_wrapper_wait_connections): New.
1246
1247 2004-12-17  Werner Koch  <wk@g10code.com>
1248
1249         * Makefile.am (dirmngr_ldap_LDADD): Adjusted for new LDAP checks.
1250
1251 2004-12-16  Werner Koch  <wk@g10code.com>
1252
1253         * ldap.c (ldap_wrapper): Peek on the output to detect empty output
1254         early.
1255
1256 2004-12-15  Werner Koch  <wk@g10code.com>
1257
1258         * ldap.c (ldap_wrapper): Print a diagnostic after forking for the
1259         ldap wrapper.
1260         * certcache.h (find_cert_bysn): Add this prototype.
1261         * crlcache.c (start_sig_check): Write CRL hash debug file.
1262         (finish_sig_check): Dump the signer's certificate.
1263         (crl_parse_insert): Try to get the issuing cert by authKeyId.
1264         Moved certificate retrieval after item processing.
1265
1266 2004-12-13  Werner Koch  <wk@g10code.com>
1267
1268         * dirmngr_ldap.c (catch_alarm, set_timeout): new.
1269         (main): Install alarm handler. Add new option --only-search-timeout.
1270         (print_ldap_entries, fetch_ldap): Use set_timeout ();
1271         * dirmngr.h: Make LDAPTIMEOUT a simple unsigned int.  Change all
1272         initializations.
1273         * ldap.c (start_cert_fetch_ldap, run_ldap_wrapper): Pass timeout
1274         option to the wrapper.
1275         (INACTIVITY_TIMEOUT): Depend on LDAPTIMEOUT.
1276         (run_ldap_wrapper): Add arg IGNORE_TIMEOUT.
1277         (ldap_wrapper_thread): Check for special timeout exit code.
1278
1279         * dirmngr.c: Workaround a typo in gpgconf for
1280         ignore-ocsp-service-url.
1281
1282 2004-12-10  Werner Koch  <wk@g10code.com>
1283
1284         * ldap.c (url_fetch_ldap): Use TMP and not a HOST which is always
1285         NULL.
1286         * misc.c (host_and_port_from_url): Fixed bad encoding detection.
1287
1288 2004-12-03  Werner Koch  <wk@g10code.com>
1289
1290         * crlcache.c (crl_cache_load): Re-implement it.
1291
1292         * dirmngr-client.c: New command --load-crl
1293         (do_loadcrl): New.
1294
1295         * dirmngr.c (parse_rereadable_options, main): Make --allow-ocsp,
1296         --ocsp-responder, --ocsp-signer and --max-replies re-readable.
1297
1298         * ocsp.c (check_signature): try to get the cert from the cache
1299         first.
1300         (ocsp_isvalid): Print the next and this update times on time
1301         conflict.
1302
1303         * certcache.c (load_certs_from_dir): Print the fingerprint for
1304         trusted certificates.
1305         (get_cert_byhexfpr): New.
1306         * misc.c (get_fingerprint_hexstring_colon): New.
1307
1308 2004-12-01  Werner Koch  <wk@g10code.com>
1309
1310         * Makefile.am (dirmngr_LDADD): Don't use LDAP_LIBS.
1311
1312         * validate.c (validate_cert_chain): Fixed test; as written in the
1313         comment we want to do this only in daemon mode.  For clarity
1314         reworked by using a linked list of certificates and include root
1315         and tragte certificate.
1316         (check_revocations): Likewise.  Introduced a recursion sentinel.
1317
1318 2004-11-30  Werner Koch  <wk@g10code.com>
1319
1320         * crlfetch.c (ca_cert_fetch, crl_fetch_default): Do not use the
1321         binary prefix as this will be handled in the driver.
1322
1323         * dirmngr_ldap.c: New option --log-with-pid.
1324         (fetch_ldap): Handle LDAP_NO_SUCH_OBJECT.
1325         * ldap.c (run_ldap_wrapper, start_cert_fetch_ldap): Use new log
1326         option.
1327
1328
1329 2004-11-25  Werner Koch  <wk@g10code.com>
1330
1331         * Makefile.am (dirmngr_ldap_CFLAGS): Added GPG_ERROR_CFLAGS.
1332         Noted by Bernhard Herzog.
1333
1334 2004-11-24  Werner Koch  <wk@g10code.com>
1335
1336         * ldap.c (ldap_wrapper): Fixed default name of the ldap wrapper.
1337
1338         * b64enc.c (b64enc_start, b64enc_finish): Use standard strdup/free
1339         to manage memory.
1340
1341         * dirmngr.c: New options --ignore-http-dp, --ignore-ldap-dp and
1342         --ignore-ocsp-service-url.
1343         * crlcache.c (crl_cache_reload_crl): Implement them.
1344         * ocsp.c (ocsp_isvalid): Ditto.
1345
1346 2004-11-23  Werner Koch  <wk@g10code.com>
1347
1348         * ldap.c (ldap_wrapper_thread, reader_callback, ldap_wrapper):
1349         Keep a timestamp and terminate the wrapper after some time of
1350         inactivity.
1351
1352         * dirmngr-client.c (do_lookup): New.
1353         (main): New option --lookup.
1354         (data_cb): New.
1355         * b64enc.c: New. Taken from GnuPG 1.9.
1356         * no-libgcrypt.c (gcry_strdup): Added.
1357
1358         * ocsp.c (ocsp_isvalid): New arg CERT and lookup the issuer
1359         certificate using the standard methods.
1360
1361         * server.c (cmd_lookup): Truncation is now also an indication for
1362         error.
1363         (cmd_checkocsp): Implemented.
1364
1365         * dirmngr_ldap.c (fetch_ldap): Write an error marker for a
1366         truncated search.
1367         * ldap.c (add_server_to_servers): Reactivated.
1368         (url_fetch_ldap): Call it here and try all configured servers in
1369         case of a a failed lookup.
1370         (fetch_next_cert_ldap): Detect the truncation error flag.
1371         * misc.c (host_and_port_from_url, remove_percent_escapes): New.
1372
1373 2004-11-22  Werner Koch  <wk@g10code.com>
1374
1375         * dirmngr_ldap.c (main): New option --proxy.
1376         * ocsp.c (do_ocsp_request): Take care of opt.disable_http.
1377         * crlfetch.c (crl_fetch): Honor the --honor-http-proxy variable.
1378         (crl_fetch): Take care of  opt.disable_http and disable_ldap.
1379         (crl_fetch_default, ca_cert_fetch, start_cert_fetch):
1380         * ldap.c (run_ldap_wrapper): New arg PROXY.
1381         (url_fetch_ldap, attr_fetch_ldap, start_cert_fetch_ldap): Pass it.
1382
1383         * http.c (http_open_document): Add arg PROXY.
1384         (http_open): Ditto.
1385         (send_request): Ditto and implement it as an override.
1386
1387         * ocsp.c (validate_responder_cert): Use validate_cert_chain.
1388
1389         * Makefile.am (AM_CPPFLAGS): Add macros for a few system
1390         directories.
1391         * dirmngr.h (opt): New members homedir_data, homedir_cache,
1392         ldap_wrapper_program, system_daemon, honor_http_proxy, http_proxy,
1393         ldap_proxy, only_ldap_proxy, disable_ldap, disable_http.
1394         * dirmngr.c (main): Initialize new opt members HOMEDIR_DATA and
1395         HOMEDIR_CACHE.
1396         (parse_rereadable_options): New options --ldap-wrapper-program,
1397         --http-wrapper-program, --disable-ldap, --disable-http,
1398         --honor-http-proxy, --http-proxy, --ldap-proxy, --only-ldap-proxy.
1399         (reread_configuration): New.
1400
1401         * ldap.c (ldap_wrapper): Use the correct name for the wrapper.
1402
1403         * crlcache.c (DBDIR_D): Make it depend on opt.SYSTEM_DAEMON.
1404         (cleanup_cache_dir, open_dir, update_dir, make_db_file_name)
1405         (crl_cache_insert, create_directory_if_needed): Use opt.HOMEDIR_CACHE
1406
1407         * validate.c (check_revocations): New.
1408         * crlcache.c (crl_cache_isvalid): Factored most code out to
1409         (cache_isvalid): .. new.
1410         (crl_cache_cert_isvalid): New.
1411         * server.c (cmd_checkcrl): Cleaned up by using this new function.
1412         (reload_crl): Moved to ..
1413         * crlcache.c (crl_cache_reload_crl): .. here and made global.
1414
1415         * certcache.c (cert_compute_fpr): Renamed from computer_fpr and
1416         made global.
1417         (find_cert_bysn): Try to lookup missing certs.
1418         (cert_cache_init): Intialize using opt.HOMEDIR_DATA.
1419
1420
1421 2004-11-19  Werner Koch  <wk@g10code.com>
1422
1423         * dirmngr-client.c (status_cb): New.  Use it in very verbose mode.
1424
1425         * server.c (start_command_handler): Malloc the control structure
1426         and properly release it.  Removed the primary_connection
1427         hack. Cleanup running wrappers.
1428         (dirmngr_status): Return an error code.
1429         (dirmngr_tick): Return an error code and detect a
1430         cancellation. Use wall time and not CPU time.
1431         * validate.c (validate_cert_chain): Add CTRL arg and changed callers.
1432         * crlcache.c (crl_cache_isvalid):
1433         * crlfetch.c (ca_cert_fetch, start_cert_fetch, crl_fetch_default)
1434         (crl_fetch): Ditto.
1435         * ldap.c (ldap_wrapper, run_ldap_wrapper, url_fetch_ldap)
1436         (attr_fetch_ldap, start_cert_fetch_ldap): Ditto.
1437         (ldap_wrapper_release_context): Reset the stored CTRL.
1438         (reader_callback): Periodically call dirmngr_tick.
1439         (ldap_wrapper_release_context): Print an error message for read
1440         errors.
1441         (ldap_wrapper_connection_cleanup): New.
1442
1443 2004-11-18  Werner Koch  <wk@g10code.com>
1444
1445         * dirmngr.c (main): Do not cd / if not running detached.
1446
1447         * dirmngr-client.c: New options --cache-cert and --validate.
1448         (do_cache, do_validate): New.
1449         * server.c (cmd_cachecert, cmd_validate): New.
1450
1451         * crlcache.c (get_issuer_cert): Make use of the certificate cache.
1452         (crl_parse_insert): Validate the issuer certificate.
1453
1454         * dirmngr.c (handle_signal): Reinitialize the certificate cache on
1455         a HUP.
1456         (struct opts): Add --homedir to enable the already implemented code.
1457         (handle_signal): Print stats on SIGUSR1.
1458
1459         * certcache.c (clean_cache_slot, cert_cache_init)
1460         (cert_cache_deinit): New.
1461         (acquire_cache_read_lock, acquire_cache_write_lock)
1462         (release_cache_lock): New.  Use them where needed.
1463         (put_cert): Renamed from put_loaded_cert.
1464         (cache_cert): New.
1465         (cert_cache_print_stats): New.
1466         (compare_serialno): Fixed.
1467
1468 2004-11-16  Werner Koch  <wk@g10code.com>
1469
1470         * Makefile.am (AM_CPPFLAGS): Define DIRMNGR_SYSCONFDIR and
1471         DIRMNGR_LIBEXECDIR.
1472
1473         * misc.c (dump_isotime, dump_string, dump_cert): New.  Taken from
1474         gnupg 1.9.
1475         (dump_serial): New.
1476
1477 2004-11-15  Werner Koch  <wk@g10code.com>
1478
1479         * validate.c: New. Based on gnupg's certchain.c
1480
1481         * ldap.c (get_cert_ldap): Removed.
1482         (read_buffer): New.
1483         (start_cert_fetch_ldap, fetch_next_cert_ldap)
1484         (end_cert_fetch_ldap): Rewritten to make use of the ldap wrapper.
1485
1486 2004-11-12  Werner Koch  <wk@g10code.com>
1487
1488         * http.c (insert_escapes): Print the percent sign too.
1489
1490         * dirmngr-client.c (inq_cert): Ignore "SENDCERT" and
1491         "SENDISSUERCERT".
1492
1493         * server.c (do_get_cert_local): Limit the length of a retruned
1494         certificate.  Return NULL without an error if an empry value has
1495         been received.
1496
1497         * crlfetch.c (ca_cert_fetch): Use the ksba_reader_object.
1498         (setup_funopen, fun_reader, fun_closer): Removed.
1499
1500         * crlcache.c (get_issuer_cert): Adjust accordingly.
1501
1502         * ldap.c (attr_fetch_ldap_internal, attr_fetch_fun_closer)
1503         (attr_fetch_fun_reader, url_fetch_ldap_internal)
1504         (get_attr_from_result_ldap): Removed.
1505         (destroy_wrapper, print_log_line, ldap_wrapper_thread)
1506         (ldap_wrapper_release_context, reader_callback, ldap_wrapper)
1507         (run_ldap_wrapper): New.
1508         (url_fetch_ldap): Make use of the new ldap wrapper and return a
1509         ksba reader object instead of a stdio stream.
1510         (attr_fetch_ldap): Ditto.
1511         (make_url, escape4url): New.
1512
1513 2004-11-11  Werner Koch  <wk@g10code.com>
1514
1515         * dirmngr.c (launch_ripper_thread): New.
1516         (main): Start it wheere appropriate.  Always ignore SIGPIPE.
1517         (start_connection_thread): Maintain a connection count.
1518         (handle_signal, handle_connections): Use it here instead of the
1519         thread count.
1520
1521         * crlcache.c (crl_cache_insert): Changed to use ksba reader
1522         object.  Changed all callers to pass this argument.
1523
1524 2004-11-08  Werner Koch  <wk@g10code.com>
1525
1526         * dirmngr_ldap.c: New.
1527
1528         * crlcache.c (crl_cache_init): Don't return a cache object but
1529         keep it module local.  We only need one.
1530         (crl_cache_deinit): Don't take cache object but work on existing
1531         one.
1532         (get_current_cache): New.
1533         (crl_cache_insert, crl_cache_list, crl_cache_load): Use the global
1534         cache object and removed the cache arg.  Changed all callers.
1535
1536         * dirmngr-client.c: New option --ping.
1537
1538         * dirmngr.c (main): New option --daemon. Initialize PTH.
1539         (handle_connections, start_connection_thread): New.
1540         (handle_signal): New.
1541         (parse_rereadable_options): New. Changed main to make use of it.
1542         (set_debug): Don't bail out on invalid debug levels.
1543         (main): Init the crl_chache for server and daemon mode.
1544
1545         * server.c (start_command_handler): New arg FD.  Changed callers.
1546
1547 2004-11-06  Werner Koch  <wk@g10code.com>
1548
1549         * server.c (map_assuan_err): Factored out to ..
1550         * maperror.c: .. new file.
1551         * util.h: Add prototype
1552
1553 2004-11-05  Werner Koch  <wk@g10code.com>
1554
1555         * no-libgcrypt.c: New, used as helper for dirmngr-client which
1556         does not need libgcrypt proper but jnlib references the memory
1557         functions.  Taken from gnupg 1.9.12.
1558
1559         * dirmngr.h: Factored i18n and xmalloc code out to ..
1560         * i18n.h, util.h: .. New.
1561
1562         * dirmngr-client.c: New.  Some code taken from gnupg 1.9.12.
1563         * Makefile.am (bin_PROGRAMS) Add dirmngr-client.
1564
1565 2004-11-04  Werner Koch  <wk@g10code.com>
1566
1567         * src/server.c (get_fingerprint_from_line, cmd_checkcrl)
1568         (cmd_checkocsp): New.
1569         (register_commands): Register new commands.
1570         (inquire_cert_and_load_crl): Factored most code out to ..
1571         (reload_crl): .. new function.
1572         * src/certcache.h, src/certcache.c: New.
1573         * src/Makefile.am (dirmngr_SOURCES): Add new files.
1574
1575 2004-11-04  Werner Koch  <wk@g10code.com>
1576
1577         Please note that earlier entries are found in the top level
1578         ChangeLog.
1579         [Update after merge with GnuPG: see ./ChangeLog.1]
1580
1581
1582  Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010,
1583            2011 Free Software Foundation, Inc.
1584
1585  This file is free software; as a special exception the author gives
1586  unlimited permission to copy and/or distribute it, with or without
1587  modifications, as long as this notice is preserved.
1588
1589  This file is distributed in the hope that it will be useful, but
1590  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1591  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.