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