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