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