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