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