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