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