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