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