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