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