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