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