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