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