support numeric debug levels.
[gnupg.git] / agent / ChangeLog
1 2009-12-03  Werner Koch  <wk@g10code.com>
2
3         * gpg-agent.c (set_debug): Allow for numerical debug leveles.  Print
4         active debug flags.
5
6 2009-12-02  Werner Koch  <wk@g10code.com>
7
8         * trustlist.c (read_trustfiles): Store the pointer returned from
9         shrinking the memory and not the orginal one.  Fixes bug#1163.
10         Reported by TAKAHASHI Tamotsu.  Also return correct error after
11         memory failure.
12
13 2009-11-27  Marcus Brinkmann  <marcus@g10code.de>
14
15         * command.c (start_command_handler): Do not call
16         assuan_set_log_stream anymore.
17         * gpg-agent.c (main): But call assuan_set_assuan_log_stream here.
18
19 2009-11-25  Marcus Brinkmann  <marcus@g10code.de>
20
21         * command.c (start_command_handler): Use assuan_fd_t and
22         assuan_fdopen on fds.
23
24 2009-11-05  Marcus Brinkmann  <marcus@g10code.de>
25
26         * call-pinentry.c (start_pinentry): Call assuan_pipe_connect, not
27         assuan_pipe_connect_ext.
28         * command.c (start_command_handler): Change
29         assuan_init_socket_server_ext into assuan_init_socket_server.
30         * call-scd.c (start_scd): Update use of assuan_socket_connect and
31         assuan_pipe_connect.
32         * gpg-agent.c (check_own_socket_thread, check_for_running_agent):
33         Update use of assuan_socket_connect.
34
35 2009-11-04  Werner Koch  <wk@g10code.com>
36
37         * command.c (register_commands): Add help arg to
38         assuan_register_command.  Convert all command comments to help
39         strings.
40
41 2009-11-02  Marcus Brinkmann  <marcus@g10code.de>
42
43         * command.c (reset_notify): Take LINE arg and return error.
44         (register_commands): Use assuan_handler_t type.
45
46 2009-10-16  Marcus Brinkmann  <marcus@g10code.com>
47
48         * gpg_agent_CFLAGS, gpg_agent_LDADD: Use libassuan instead of
49         libassuan-pth.
50         * gpg-agent.c: Invoke ASSUAN_SYSTEM_PTH_IMPL.
51         (main): Call assuan_set_system_hooks and assuan_sock_init.
52         Fix invocation of assuan_socket_connect.
53
54 2009-09-23  Werner Koch  <wk@g10code.com>
55
56         * command.c (register_commands) [HAVE_ASSUAN_SET_IO_MONITOR]:
57         Remove cpp condition.
58         (start_command_handler) [HAVE_ASSUAN_SET_IO_MONITOR]: Ditto.
59
60 2009-09-23  Marcus Brinkmann  <marcus@g10code.de>
61
62         * gpg-agent.c (parse_rereadable_options): Don't set global assuan
63         log file (there ain't one anymore).
64         (main): Update to new API.
65         (check_own_socket_pid_cb): Return gpg_error_t instead of int.
66         (check_own_socket_thread, check_for_running_agent): Create assuan
67         context before connecting to server.
68         * command.c: Include "scdaemon.h" before <assuan.h> because of
69         GPG_ERR_SOURCE_DEFAULT check.
70         (write_and_clear_outbuf): Use gpg_error_t instead of
71         assuan_error_t.
72         (cmd_geteventcounter, cmd_istrusted, cmd_listtrusted)
73         (cmd_marktrusted, cmd_havekey, cmd_sigkey, cmd_setkeydesc)
74         (cmd_sethash, cmd_pksign, cmd_pkdecrypt, cmd_genkey, cmd_readkey)
75         (cmd_keyinfo, cmd_get_passphrase, cmd_clear_passphrase)
76         (cmd_get_confirmation, cmd_learn, cmd_passwd)
77         (cmd_preset_passphrase, cmd_scd, cmd_getval, cmd_putval)
78         (cmd_updatestartuptty, cmd_killagent, cmd_reloadagent)
79         (cmd_getinfo, option_handler): Return gpg_error_t instead of int.
80         (post_cmd_notify): Change type of ERR to gpg_error_t from int.
81         (io_monitor): Add hook argument.  Use symbols for constants.
82         (register_commands): Change return type of HANDLER to gpg_error_t.
83         (start_command_handler): Allocate assuan context before starting
84         server.
85         * call-pinentry.c: Include "scdaemon.h" before <assuan.h> because
86         of GPG_ERR_SOURCE_DEFAULT check.
87         (unlock_pinentry): Call assuan_release instead of
88         assuan_disconnect.
89         (getinfo_pid_cb, getpin_cb): Return gpg_error_t instead of int.
90         (start_pinentry): Allocate assuan context before connecting to
91         server.
92         * call-scd.c (membuf_data_cb, learn_status_cb, get_serialno_cb)
93         (membuf_data_cb, inq_needpin, card_getattr_cb, pass_status_thru)
94         (pass_data_thru): Change return type to gpg_error_t.
95         (start_scd): Allocate assuan context before connecting to server.
96
97 2009-09-04  Marcus Brinkmann  <marcus@g10code.com>
98
99         * command.c (start_command_handler): Add comment about gap in
100         implementation (in dead code), for future reference.
101
102 2009-08-11  Werner Koch  <wk@g10code.com>
103
104         * divert-scd.c (ask_for_card): I18n a prompt string.
105
106 2009-07-06  Werner Koch  <wk@g10code.com>
107
108         * agent.h: Include session-env.h.
109         (opt): Replace most of the startup_xxx fields by a session_env_t.
110         (struct server_control_s): Likewise.
111         * gpg-agent.c (main): Rewrite setting of the startup fields.
112         (handle_connections, main): Allocate SESSION_ENV.
113         (agent_init_default_ctrl, agent_deinit_default_ctrl): Change
114         accordingly.
115         * command.c (option_handler): Ditto.
116         (cmd_updatestartuptty): Change accordingly.  Protect old values
117         from out of core failures.
118         * command-ssh.c (start_command_handler_ssh): Ditto.
119         (start_command_handler_ssh): Replace strdup by xtrystrdup.
120         * call-pinentry.c (atfork_cb): Pass new envrinmnet variables.
121         (start_pinentry): Use session_env stuff.
122         * protect-tool.c (main): Adjust call to gnupg_prepare_get_passphrase.
123
124 2009-06-24  Werner Koch  <wk@g10code.com>
125
126         * genkey.c (agent_protect_and_store): Return RC and not 0.
127         * protect.c (do_encryption): Fix ignored error code from malloc.
128         Reported by Fabian Keil.
129         
130 2009-06-17  Werner Koch  <wk@g10code.com>
131
132         * call-pinentry.c (agent_get_confirmation): Add arg WITH_CANCEL.
133         Change all callers.
134         * trustlist.c (agent_marktrusted): Use WITH_CANCEL
135
136 2009-06-09  Werner Koch  <wk@g10code.com>
137
138         * learncard.c (send_cert_back): Ignore certain error codes.
139
140 2009-06-05  Werner Koch  <wk@g10code.com>
141
142         * protect-tool.c (store_private_key): Fix last change by appending
143         a ".key".
144
145 2009-06-03  Werner Koch  <wk@g10code.com>
146
147         * protect-tool.c: Include estream.h.
148         (store_private_key): Replace stdio streams by estream functions
149         for a portable use of the "x" mode.
150         * trustlist.c: Include estream.h.
151         (agent_marktrusted): Replace stdio stream by estream functions.
152
153         * protect-tool.c (store_private_key): Use bin2hex.      
154
155 2009-06-02  Werner Koch  <wk@g10code.com>
156
157         * gpg-agent.c (main): Run pth_kill after fork.  Fixes bug#1066.
158
159 2009-05-19  Werner Koch  <wk@g10code.com>
160
161         * gpg-agent.c (JNLIB_NEED_AFLOCAL): Define.
162         (create_server_socket): Use SUN_LEN macro.
163
164 2009-05-15  Werner Koch  <wk@g10code.com>
165
166         Fix bug #1053.
167         
168         * agent.h (lookup_ttl_t): New.
169         * findkey.c (unprotect): Add arg LOOKUP_TTL.
170         (agent_key_from_file): Ditto.
171         * pksign.c (agent_pksign_do): Ditto.
172         * command-ssh.c (ttl_from_sshcontrol): New.
173         (data_sign): Pass new function to agent_pksign_do.
174         (search_control_file): Add new arg R_TTL.
175
176 2009-05-14  Werner Koch  <wk@g10code.com>
177
178         * command.c (cmd_get_passphrase): Add option --qualitybar.
179         * call-pinentry.c (agent_askpin): Factor some code out to ...
180         (setup_qualitybar): .. new.
181         (agent_get_passphrase): Add arg WITH_QUALITYBAR and implement it.
182
183 2009-04-14  Marcus Brinkmann  <marcus@g10code.de>
184
185         * call-pinentry.c (agent_get_confirmation): Try SETNOTOK command
186         with pinentry.
187
188 2009-04-01  Werner Koch  <wk@g10code.com>
189
190         * protect-tool.c (pe_opt): New.
191         (opts): Add option --agent-program.  Use ARGPARSE macros.
192         (get_new_passphrase): Remove.
193         (get_passphrase): Use gpg-agent directly. Remove arg OPT_CHECK and
194         change all callers.
195         * Makefile.am (gpg_protect_tool_LDADD): Replace pwquery_libs by
196         LIBASSUAN_LIBS.
197         (gpg_protect_tool_CFLAGS): New.
198
199         * command.c (percent_plus_unescape): Remove.
200         (cmd_putval): Use percent_plus_unescape_inplace.
201         * call-scd.c (unescape_status_string): Remove.
202         (card_getattr_cb): Use percent_plus_unescape.
203         * protect-tool.c (main): Use percent_plus_unescape from common/.
204         (percent_plus_unescape, percent_plus_unescape_string): Remove.
205
206 2009-03-27  Werner Koch  <wk@g10code.com>
207
208         * learncard.c (agent_handle_learn): Add new certtype 111.
209
210 2009-03-26  Werner Koch  <wk@g10code.com>
211
212         * agent.h (MAX_DIGEST_LEN): Change to 64.
213         * command.c (cmd_sethash): Allow digest length of 48 and 64.
214         (cmd_sethash): Allow more hash algos.
215
216         * trustlist.c (reformat_name): New.
217         (agent_marktrusted): Use a reformatted name.  Reload the table
218         before the update and always reload it at the end.
219         (agent_istrusted): Check early for the disabled flag.
220
221 2009-03-25  Werner Koch  <wk@g10code.com>
222
223         * pkdecrypt.c (agent_pkdecrypt): Return a specific error message
224         if the key is not available.
225
226         * gpg-agent.c (main): Print a started message to show the real pid.
227
228 2009-03-20  Werner Koch  <wk@g10code.com>
229
230         * learncard.c (struct kpinfo_cp_parm_s): Add field CTRL.
231         (struct certinfo_cb_parm_s): Ditto.
232         (agent_handle_learn): Set CTRL field.
233         (kpinfo_cb, certinfo_cb): Send progress status.
234
235         * agent.h (agent_write_status): Flag with GNUPG_GCC_A_SENTINEL.
236
237 2009-03-19  Werner Koch  <wk@g10code.com>
238
239         * trustlist.c (struct trustitem_s): Add field DISABLED.
240         (read_one_trustfile): Parse the '!' flag.
241         (agent_istrusted, agent_listtrusted): Check flag.
242         (agent_istrusted): Add arg R_DISABLED.  Change all callers.
243         (agent_marktrusted): Do not ask if flagged as disabled.  Reverse
244         the order of the questions.  Store the disabled flag.
245         
246         * gpg-agent.c (main): Save signal mask and open fds.  Restore mask
247         and close all fds prior to the exec.  Fixes bug#1013.
248
249 2009-03-17  Werner Koch  <wk@g10code.com>
250
251         * command.c (cmd_get_passphrase): Break repeat loop on error.
252         Show error message.
253         (cmd_getinfo): Add subcommand "cmd_has_option".
254         (command_has_option): New.
255
256 2009-03-17  Daiki Ueno  <ueno@unixuser.org>
257
258         * command.c (option_value): New function.
259         (cmd_get_passphrase): Accept new option --repeat, which makes
260         gpg-agent to ask passphrase several times.
261
262 2009-03-06  Werner Koch  <wk@g10code.com>
263
264         * command.c (cmd_keyinfo): New command.
265         (register_commands): Register it.
266         (agent_write_status): Make sure not to print LR or CR.
267         * divert-scd.c (ask_for_card): Factor shadow info parsing out to ...
268         * protect.c (parse_shadow_info): New.
269         * findkey.c (agent_key_from_file): Use make_canon_sexp.
270         (agent_write_private_key, unprotect, read_key_file)
271         (agent_key_available): Use bin2hex.
272         (agent_key_info_from_file): New.
273         (read_key_file): Log no error message for ENOENT.
274
275 2009-03-05  Werner Koch  <wk@g10code.com>
276
277         * divert-scd.c (getpin_cb): Support flag 'P'.  Change max_digits
278         from 8 to 16.  Append a message about keypads.
279         * findkey.c (unprotect): Change max digits to 16.
280
281 2009-03-02  Werner Koch  <wk@g10code.com>
282
283         * command.c (cmd_getinfo): Add subcommand "scd_running".
284
285         * call-scd.c (agent_scd_check_running): New.
286
287         * gpg-agent.c: Add missing option strings for "--batch" and
288         "--homedir".  Reported by Petr Uzel.
289
290         * protect-tool.c (import_p12_file): Take care of canceled
291         passphrase entry.  Fixes bug#1003.
292         (export_p12_file): Ditto.
293
294 2008-12-17  Werner Koch  <wk@g10code.com>
295
296         * gpg-agent.c (handle_connections): Set action of all pth event
297         handled signals to SIG_IGN.  Use a different pth_sigmask strategy.
298
299 2008-12-10  Werner Koch  <wk@g10code.com>
300
301         * command.c (cmd_get_passphrase): Implement option --no-ask.
302
303 2008-12-09  Werner Koch  <wk@g10code.com>
304
305         * gpg-agent.c (main): Call i18n_init before init_common_subsystems.
306         * preset-passphrase.c (main): Ditto.
307         * protect-tool.c (main): Ditto.
308
309         * command.c (cmd_preset_passphrase): Allow an arbitrary string for
310         the cache id.
311
312 2008-12-08  Werner Koch  <wk@g10code.com>
313
314         * gpg-agent.c (handle_connections): Sync the ticker to the next
315         full second.  This is bug#871.
316
317 2008-12-05  Werner Koch  <wk@g10code.com>
318
319         * minip12.c (decrypt_block): Fix const modified of CHARSETS.
320         * learncard.c (sinfo_cb_parm_s): Remove superflous semicolon.
321         Reported by Stoyan Angelov.
322
323 2008-11-18  Werner Koch  <wk@g10code.com>
324
325         * gpg-agent.c (make_libversion): New.
326         (my_strusage): Print libgcrypt version
327
328 2008-11-11  Werner Koch  <wk@g10code.com>
329
330         * call-scd.c (membuf_data_cb): Change return type to
331         assuan_error_t to avoid warnings with newer libassuan versions.
332
333 2008-11-04  Werner Koch  <wk@g10code.com>
334
335         * command.c (cmd_killagent): Stop the agent immediately.
336         (start_command_handler): Take care of GPG_ERR_EOF.
337
338 2008-10-29  Werner Koch  <wk@g10code.com>
339
340         * gpg-agent.c (main): Move USE_STANDARD_SOCKET to the outer scope.
341         (create_socket_name): Remove arg USE_STANDARD_SOCKET.  Change all
342         callers.
343         (create_server_socket): Remove IS_STANDARD_NAME and replace it by
344         USE_STANDARD_SOCKET.  Change all callers.
345         (check_own_socket_running): New.
346         (check_own_socket, check_own_socket_thread): New.
347         (handle_tick): Check server socket once a minute.
348         (handle_connections): Remove the extra pth_wait in the shutdown
349         case.
350
351 2008-10-20  Werner Koch  <wk@g10code.com>
352
353         * command.c (cmd_geteventcounter): Mark unused arg.
354         (cmd_listtrusted, cmd_pksign, cmd_pkdecrypt, cmd_genkey): Ditto.
355         (cmd_updatestartuptty, post_cmd_notify): Ditto.
356         * command-ssh.c (add_control_entry) 
357         (ssh_handler_request_identities, ssh_handler_remove_identity) 
358         (ssh_handler_remove_all_identities, ssh_handler_lock) 
359         (ssh_handler_unlock): Ditto.
360         * call-pinentry.c (pinentry_active_p, popup_message_thread) 
361         (agent_popup_message_stop): Ditto.
362         * findkey.c (agent_public_key_from_file): Ditto.
363         * genkey.c (check_passphrase_pattern): Ditto.
364         * call-scd.c (atfork_cb): Ditto.
365         * protect-tool.c (import_p12_cert_cb): Ditto.
366         * t-protect.c (main): Ditto.
367
368 2008-10-17  Werner Koch  <wk@g10code.com>
369
370         * call-scd.c (start_scd) [W32]: Use snprintf again because we now
371         always use the estream variant.
372
373 2008-10-15  Werner Koch  <wk@g10code.com>
374
375         * call-scd.c (start_scd): Enable assuan loggging if requested.
376         (agent_scd_check_aliveness) [W32]: Fix use of GetExitCodeProcess.
377
378 2008-10-14  Werner Koch  <wk@g10code.com>
379
380         * gpg-agent.c (get_agent_scd_notify_event): Need to use a manual
381         reset event.
382
383 2008-09-29  Werner Koch  <wk@g10code.com>
384
385         * agent.h (GCRY_MD_USER): Rename to GCRY_MODULE_ID_USER.
386         (GCRY_MD_USER_TLS_MD5SHA1): Rename to MD_USER_TLS_MD5SHA1 and
387         change all users.
388
389 2008-09-25  Werner Koch  <wk@g10code.com>
390
391         * divert-scd.c (getpin_cb): Support a Reset Code style PINs..
392
393 2008-09-03  Werner Koch  <wk@g10code.com>
394
395         * command.c (parse_keygrip): Use hex2bin.
396         (cmd_preset_passphrase): Decode the passphrase.  Reported by Kiss
397         Gabor.  Fixes #679 again.
398         * preset-passphrase.c (make_hexstring): Remove.
399         (preset_passphrase): Use bin2hex.
400
401 2008-05-27  Werner Koch  <wk@g10code.com>
402
403         * trustlist.c (insert_colons): Fix stupidly wrong allocation size
404         computation.
405
406 2008-05-26  Werner Koch  <wk@g10code.com>
407
408         * gpg-agent.c (main): Re-initialize default assuan log stream if a
409         log file is used.
410
411         * trustlist.c (agent_marktrusted): Use xtryasprintf and xfree.
412
413         * gpg-agent.c (main, agent_deinit_default_ctrl): Always use xfree
414         because our asprintf is mapped to an xmalloc style function in
415         util.h. Replace xstrdup by xtrystrdup.
416         * w32main.c (build_argv): Ditto.
417         * preset-passphrase.c (preset_passphrase): Ditto.
418         * divert-scd.c (ask_for_card): Ditto.
419         * command.c (option_handler): Ditto.
420         * command-ssh.c (ssh_handler_request_identities): Ditto.
421         * call-pinentry.c (start_pinentry): Ditto.
422
423         * gpg-agent.c (start_connection_thread)
424         (start_connection_thread_ssh): Use pth_thread_id for useful output
425         under W32.
426         (pth_thread_id) [!PTH_HAVE_PTH_THREAD_ID]: New.
427
428 2008-03-17  Werner Koch  <wk@g10code.com>
429
430         * agent.h (agent_inq_pinentry_launched): New prototype.
431
432         * call-pinentry.c: Include sys/types.h and signal.h.
433
434 2008-02-14  Werner Koch  <wk@g10code.com>
435
436         * command.c (agent_inq_pinentry_launched): New.
437         (option_handler): Add option allow-pinentry-notify.
438         * call-pinentry.c (getinfo_pid_cb): New.
439         (start_pinentry): Ask for the PID and notify the client.
440
441 2008-01-15  Marcus Brinkmann  <marcus@g10code.de>
442
443         * call-pinentry.c (start_pinentry): Start pinentry in detached
444         mode.
445
446 2007-12-04  Werner Koch  <wk@g10code.com>
447
448         * call-pinentry.c (agent_askpin): Use gnupg_get_help_string.
449
450 2007-12-03  Werner Koch  <wk@g10code.com>
451
452         * gpg-agent.c (main): s/standard_socket/use_standard_socket/ for
453         clarity.
454         (create_server_socket): New arg IS_SSH to avoid testing with
455         assuan commands.
456
457 2007-11-20  Werner Koch  <wk@g10code.com>
458
459         * gpg-agent.c (get_agent_scd_notify_event): New.
460         (handle_signal): Factor SIGUSR2 code out to:
461         (agent_sigusr2_action): .. New.
462         (agent_sighup_action): Print info message here and not in
463         handle_signal.
464         (handle_connections) [PTH_EVENT_HANDLE]: Call agent_sigusr2_action.
465
466         * call-scd.c (agent_scd_check_aliveness) [W32]: Implemented.
467         (start_scd) [W32]: Send event-signal option.
468
469 2007-11-19  Werner Koch  <wk@g10code.com>
470
471         * call-pinentry.c (agent_askpin): Set the tooltip for the quality
472         bar.
473
474 2007-11-15  Werner Koch  <wk@g10code.com>
475
476         * agent.h (struct server_control_s): Add XAUTHORITY and
477         PINENTRY_USER_DATA.
478         * gpg-agent.c: New option --xauthority.
479         (main, agent_init_default_ctrl) 
480         (agent_deinit_default_ctrl): Implemented
481         * command.c (cmd_updatestartuptty): Ditto.
482         * command-ssh.c (start_command_handler_ssh): Ditto.
483         * call-pinentry.c (atfork_cb): Set the environment.
484         (start_pinentry): Pass CTRL as arg to atfork_cb.
485
486 2007-11-14  Werner Koch  <wk@g10code.com>
487
488         * call-scd.c (start_scd) [W32]: Take care of fflush peculiarities.
489
490 2007-11-07  Werner Koch  <wk@g10code.com>
491
492         * agent.h: Remove errors.h.
493
494 2007-10-24  Werner Koch  <wk@g10code.com>
495
496         * genkey.c (check_passphrase_constraints): Changed the wording of
497         the warning messages.
498
499 2007-10-19  Werner Koch  <wk@g10code.com>
500
501         * protect-tool.c (get_passphrase): Use new utf8 switch fucntions.
502
503 2007-10-15  Daiki Ueno  <ueno@unixuser.org>  (wk)
504
505         * command-ssh.c (reenter_compare_cb): New function; imported from
506         genkey.c.
507         (ssh_identity_register): Ask initial passphrase twice.
508
509 2007-10-02  Werner Koch  <wk@g10code.com>
510
511         * command.c (cmd_getinfo): Add "pid" subcommand.
512
513 2007-10-01  Werner Koch  <wk@g10code.com>
514
515         * agent.h (struct server_control_s): Remove unused CONNECTION_FD.
516
517         * gpg-agent.c: Remove w32-afunix.h.  Include mkdtemp.h.
518         (socket_nonce, socket_nonce_ssh): New.
519         (create_server_socket): Use assuan socket wrappers.  Remove W32
520         specific stuff.  Save the server nonce.
521         (check_nonce): New.
522         (start_connection_thread, start_connection_thread_ssh): Call it.
523         (handle_connections): Change args to gnupg_fd_t.
524         * command.c (start_command_handler): Change LISTEN_FD to gnupg_fd_t.
525         * command-ssh.c (start_command_handler_ssh): Ditto.
526
527 2007-09-18  Werner Koch  <wk@g10code.com>
528
529         * agent.h (struct pin_entry_info_s): Add element WITH_QUALITYBAR.
530         * genkey.c (check_passphrase_constraints): New arg SILENT.
531         Changed all callers.
532         (agent_protect_and_store, agent_genkey): Enable qualitybar.
533         * call-pinentry.c (agent_askpin): Send that option.
534         (unescape_passphrase_string): New.
535         (inq_quality): New.
536         (estimate_passphrase_quality): New.
537
538 2007-09-14  Marcus Brinkmann  <marcus@g10code.de>
539
540         * call-pinentry.c (agent_popup_message_stop): Implement kill for
541         Windows.
542
543 2007-08-28  Werner Koch  <wk@g10code.com>
544
545         * gpg-agent.c (main): Add option --faked-system-time.
546
547         * protect-tool.c (read_and_unprotect): Print the protected-at date.
548
549         * agent.h (struct server_control_s): Add member IN_PASSWD.
550         * command.c (cmd_passwd): Set it.
551         * findkey.c (try_unprotect_cb): Use it.
552
553         * protect.c (do_encryption): Replace asprintf by xtryasprint.
554         (agent_protect): Create the protected-at item.
555         (agent_unprotect): Add optional arg PROTECTED_AT.
556         (merge_lists): Add args CUTOFF and CUTLEN.
557         (agent_unprotect): Use them.
558         * findkey.c (try_unprotect_cb): Add code to test for expired keys.
559         (unprotect): Allow changing the passphrase.
560
561 2007-08-27  Werner Koch  <wk@g10code.com>
562
563         * gpg-agent.c: Add options --min-passphrase-nonalpha,
564         --check-passphrase-pattern and --enforce-passphrase-constraints.
565         (MIN_PASSPHRASE_NONALPHA): Init nonalpha option to 1.
566         (main): Declare options for gpgconf.
567         * agent.h (struct): Add members MIN_PASSPHRASE_NONALPHA,
568         ENFORCE_PASSPHRASE_CONSTRAINTS and CHECK_PASSPHRASE_PATTERN.
569         * genkey.c (nonalpha_charcount): New.
570         (check_passphrase_pattern): New.
571         (check_passphrase_constraints): Implement.  Factor some code out...
572         (take_this_one_anyway, take_this_one_anyway2): .. New.
573
574         * call-pinentry.c (agent_show_message): New.
575         (agent_askpin): We better reset the pin buffer before asking.
576
577         * trustlist.c (insert_colons): New.
578         (agent_marktrusted): Pretty print the fpr.
579
580 2007-08-22  Werner Koch  <wk@g10code.com>
581
582         * findkey.c (O_BINARY): Make sure it is defined.
583         (agent_write_private_key): Use O_BINARY
584
585         * protect-tool.c (import_p12_file): Add hack to allow importing of
586         gnupg 2.0.4 generated files.
587
588 2007-08-06  Werner Koch  <wk@g10code.com>
589
590         * trustlist.c (read_one_trustfile): Add flag "cm".
591         (agent_istrusted): Ditto.
592
593 2007-08-02  Werner Koch  <wk@g10code.com>
594
595         * gpg-agent.c: Include gc-opt-flags.h and remove their definition
596         here.
597
598 2007-07-13  Werner Koch  <wk@g10code.com>
599
600         * genkey.c (check_passphrase_constraints): Require a confirmation
601         for an empty passphrase.
602         (agent_genkey, agent_protect_and_store): No need to repeat an
603         empty passphrase.
604
605 2007-07-05  Werner Koch  <wk@g10code.com>
606
607         * call-scd.c (struct inq_needpin_s): New.
608         (inq_needpin): Pass unknown inquiries up.
609
610 2007-07-04  Werner Koch  <wk@g10code.com>
611
612         * gpg-agent.c (TIMERTICK_INTERVAL): New.
613         (fixed_gcry_pth_init, main): Kludge to fix Pth initialization.
614
615 2007-07-03  Werner Koch  <wk@g10code.com>
616
617         * gpg-agent.c (handle_connections): Do not use FD_SETSIZE for
618         select but compute the correct number.
619
620 2007-07-02  Werner Koch  <wk@g10code.com>
621
622         * command.c (cmd_reloadagent) [W32]: New.
623         (register_commands) [W32]: New command RELOADAGENT.
624
625         * Makefile.am (gpg_agent_SOURCES): Remove w32main.c and w32main.h.
626         (gpg_agent_res_ldflags): Remove icon file as we don't have a
627         proper icon yet.
628         * gpg-agent.c (main): do not include w32main.h.  Remove all calls
629         to w32main.c.
630         (agent_sighup_action): New.
631         (handle_signal): Use it.
632
633 2007-06-26  Werner Koch  <wk@g10code.com>
634
635         * gpg-agent.c (create_directories) [W32]: Made it work.
636
637 2007-06-21  Werner Koch  <wk@g10code.com>
638
639         * agent.h (ctrl_t): Remove.  It is now declared in ../common/util.h. 
640
641         * gpg-agent.c (check_for_running_agent): New arg SILENT.  Changed
642         all callers.
643         (create_server_socket): If the standard socket is in use check
644         whether a agent is running and avoid starting another one.
645
646 2007-06-18  Marcus Brinkmann  <marcus@g10code.de>
647
648         * gpg-agent.c (main): Percent escape pathname in --gpgconf-list
649         output.
650
651 2007-06-18  Werner Koch  <wk@g10code.com>
652
653         * w32main.c (build_argv): New.
654         (WinMain): Use it.
655
656         * command.c (cmd_killagent) [W32]: New.
657         (cmd_getinfo): New.
658         * gpg-agent.c (get_agent_ssh_socket_name): New.
659         (no_force_standard_socket) New.
660         (create_server_socket): Use it.
661         * Makefile.am (gpg_agent_res_ldflags): Pass windows option to ld.
662
663 2007-06-14  Werner Koch  <wk@g10code.com>
664
665         * protect-tool.c (main): Setup default socket name for
666         simple-pwquery.
667         (MAP_SPWQ_ERROR_IMPL): New.  Use map_spwq_error for spqw related
668         error codes.
669         * preset-passphrase.c (main): Setup default socket name for
670         simple-pwquery.
671         (map_spwq_error): Remove.
672         (MAP_SPWQ_ERROR_IMPL): New.  
673
674         * call-pinentry.c (start_pinentry): Use gnupg_module_name.
675         * call-scd.c (start_scd): Ditto.
676
677 2007-06-12  Werner Koch  <wk@g10code.com>
678
679         * taskbar.c: New.
680
681         * trustlist.c (read_one_trustfile): Replace GNUPG_SYSCONFDIR by a
682         function call.
683         (read_trustfiles): Ditto.
684
685         * gpg-agent.c (main): Replace some calls by init_common_subsystems.
686         * preset-passphrase.c (main): Ditto.
687         * protect-tool.c (main): Ditto.
688
689 2007-06-11  Werner Koch  <wk@g10code.com>
690
691         * Makefile.am (common_libs): Use libcommonstd macro.
692         (commonpth_libs): Use libcommonpth macro.
693
694         * protect-tool.c (main) [W32]: Call pth_init.
695
696         * preset-passphrase.c (main) [W32]: Replace the explicit Winsocket
697         init by a call to pth_init.
698
699         * trustlist.c (initialize_module_trustlist): New.
700         * gpg-agent.c (main): Call it.
701
702         * call-pinentry.c (initialize_module_query): Rename to
703         initialize_module_call_pinentry.
704
705         * minip12.c: Remove iconv.h. Add utf8conf.h.  Changed all iconv
706         calss to use these jnlib wrappers.
707
708 2007-06-06  Werner Koch  <wk@g10code.com>
709
710         * minip12.c (enum): Rename CONTEXT to ASNCONTEXT as winnt.h
711         defines such a symbol to access the process context.
712
713         * call-pinentry.c (dump_mutex_state) [W32]: Handle the W32Pth case.
714         * call-scd.c (dump_mutex_state): Ditto.
715
716         * protect-tool.c (i18n_init): Remove.
717         * preset-passphrase.c (i18n_init): Remove.
718         * gpg-agent.c (i18n_init): Remove.
719
720 2007-05-19  Marcus Brinkmann  <marcus@g10code.de>
721
722         * protect-tool.c (get_passphrase): Free ORIG_CODESET on error.
723
724 2007-05-14  Werner Koch  <wk@g10code.com>
725
726         * protect.c (make_shadow_info): Replace sprintf by smklen.
727
728 2007-04-20  Werner Koch  <wk@g10code.com>
729
730         * gpg-agent.c (my_gcry_logger, my_gcry_outofcore_handler): Removed.
731         (main): Call the setup_libgcrypt_logging helper.
732         * protect-tool.c (my_gcry_logger): Removed.
733         (main): Call the setup_libgcrypt_logging helper.
734         
735 2007-04-03  Werner Koch  <wk@g10code.com>
736
737         * trustlist.c (read_trustfiles): Take a missing trustlist as an
738         empty one.
739
740 2007-03-20  Werner Koch  <wk@g10code.com>
741
742         * protect-tool.c: New option --p12-charset. 
743         * minip12.c (p12_build): Implement it.
744
745 2007-03-19  Werner Koch  <wk@g10code.com>
746
747         * minip12.c: Include iconv.h.
748         (decrypt_block): New.
749         (parse_bag_encrypted_data, parse_bag_data): Use it here.
750         (bag_data_p, bag_decrypted_data_p): New helpers.
751
752 2007-03-06  Werner Koch  <wk@g10code.com>
753
754         * gpg-agent.c (main) <gpgconf>: Add entries for all ttl options.
755
756 2007-02-20  Werner Koch  <wk@g10code.com>
757
758         * call-pinentry.c (start_pinentry): Fix for OS X to allow loading
759         of the bundle.  Tested by Benjamin Donnachie.
760
761 2007-02-14  Werner Koch  <wk@g10code.com>
762
763         * gpg-agent.c: New option --pinentry-touch-file.
764         (get_agent_socket_name): New.
765         * agent.h (opt):  Add pinentry_touch_file.
766         * call-pinentry.c (start_pinentry): Send new option to the
767         pinentry.
768
769 2007-01-31  Moritz Schulte  <moritz@g10code.com>  (wk)
770
771         * command-ssh.c (stream_read_string): Initialize LENGTH to zero.
772         (start_command_handler_ssh): Use es_fgetc/es_ungetc to check if
773         EOF has been reached before trying to process another request.
774
775 2007-01-31  Werner Koch  <wk@g10code.com>
776
777         * command-ssh.c (start_command_handler_ssh): 
778
779         * Makefile.am (t_common_ldadd): Add LIBICONV.
780
781 2007-01-25  Werner Koch  <wk@g10code.com>
782
783         * genkey.c (check_passphrase_constraints): Get ngettext call right
784         and use UTF-8 aware strlen.
785
786         * protect-tool.c (get_passphrase): New arg OPT_CHECK.
787         (get_new_passphrase): Enable OPT_CHECK on the first call.
788         * command.c (cmd_get_passphrase): Implement option --check.
789
790 2007-01-24  Werner Koch  <wk@g10code.com>
791
792         * gpg-agent.c (MIN_PASSPHRASE_LEN): New
793         (parse_rereadable_options): New option  --min-passphrase-len.
794         * genkey.c (check_passphrase_constraints): New.
795         (agent_genkey, agent_protect_and_store): Call new function.  Fix
796         memory leak.
797
798         * call-pinentry.c (agent_askpin): Allow translation of the displayed
799         error message.
800         (agent_popup_message_start): Remove arg CANCEL_BTN.
801         (popup_message_thread): Use --one-button option.
802
803         * command.c (cmd_passwd): Now that we don't distinguish between
804         assuan and regular error codes we can jump to the end on error.
805
806 2006-12-07  David Shaw  <dshaw@jabberwocky.com>
807
808         * Makefile.am: Link to iconv for jnlib dependency.
809
810 2006-11-20  Werner Koch  <wk@g10code.com>
811
812         * call-pinentry.c (agent_popup_message_stop): Use SIGKILL.
813         * call-scd.c (inq_needpin): Implement POPUPKEYPADPROMPT and
814         DISMISSKEYPADPROMPT.
815
816 2006-11-15  Werner Koch  <wk@g10code.com>
817
818         * protect.c (make_shadow_info): Cast printf arg to unsigned int.
819         * minip12.c (parse_bag_encrypted_data): Ditto.
820         (parse_bag_data, p12_parse): Ditto.
821         * command-ssh.c (ssh_identity_register): Changed buffer_n to
822         size_t.
823
824         * agent.h (struct server_control_s): New field thread_startup.
825         * command.c (start_command_handler): Moved CTRL init code to ..
826         * gpg-agent.c (start_connection_thread): .. here.
827         (agent_deinit_default_ctrl): New.
828         (agent_init_default_ctrl): Made static.
829         (handle_connections): Allocate CTRL and pass it pth_spawn.
830         * command-ssh.c (start_command_handler_ssh): Moved CTRL init code
831         to ..
832         * gpg-agent.c (start_connection_thread_ssh): .. here.
833
834 2006-11-14  Werner Koch  <wk@g10code.com>
835
836         * command.c (bump_key_eventcounter): New.
837         (bump_card_eventcounter): New.
838         (cmd_geteventcounter): New command.
839         * gpg-agent.c (handle_signal): Call bump_card_eventcounter.
840         * findkey.c (agent_write_private_key): Call bump_key_eventcounter.
841         * trustlist.c (agent_reload_trustlist): Ditto.
842
843         * command.c (post_cmd_notify, io_monitor): New.
844         (register_commands, start_command_handler): Register them.
845
846 2006-11-09  Werner Koch  <wk@g10code.com>
847
848         * gpg-agent.c (main): In detached mode connect standard
849         descriptors to /dev/null.
850
851         * trustlist.c (read_trustfiles): Make sure not to pass a zero size
852         to realloc as the C standards says that this behaves like free.
853
854 2006-11-06  Werner Koch  <wk@g10code.com>
855
856         * protect-tool.c (my_strusage): Fixed typo.
857
858 2006-10-23  Werner Koch  <wk@g10code.com>
859
860         * gpg-agent.c (main): New command --gpgconf-test.
861
862         * minip12.c (parse_bag_encrypted_data, parse_bag_data): Allow for
863         a salt of 20 bytes.
864
865 2006-10-20  Werner Koch  <wk@g10code.com>
866
867         * Makefile.am (t_common_ldadd): Use GPG_ERROR_LIBS instead -o just -l
868
869 2006-10-19  Werner Koch  <wk@g10code.com>
870
871         * findkey.c (unprotect): Use it to avoid unnecessary calls to
872         agent_askpin.
873         * call-pinentry.c (pinentry_active_p): New.
874
875 2006-10-17  Werner Koch  <wk@g10code.com>
876
877         * Makefile.am (gpg_agent_LDADD): Link to libcommonpth.
878         (gpg_agent_CFLAGS): New.  This allows to only link this with Pth.
879
880 2006-10-16  Werner Koch  <wk@g10code.com>
881
882         * call-pinentry.c (agent_get_confirmation): Map Cancel code here too.
883         * trustlist.c (agent_marktrusted): Return Cancel instead of
884         Not_Confirmed for the first question.
885
886 2006-10-12  Werner Koch  <wk@g10code.com>
887
888         * protect-tool.c (get_passphrase): Fix if !HAVE_LANGINFO_CODESET.
889
890 2006-10-06  Werner Koch  <wk@g10code.com>
891
892         * Makefile.am (AM_CFLAGS): Use PTH version of libassuan.
893         (gpg_agent_LDADD): Ditto.
894
895         * divert-scd.c (divert_pksign): Use PKAUTH for the TLS algo.
896
897 2006-10-05  Werner Koch  <wk@g10code.com>
898
899         * command.c (has_option_name): New.
900         (cmd_sethash): New --hash option.
901         * pksign.c (do_encode_raw_pkcs1): New.
902         (agent_pksign_do): Use it here for the TLS algo.
903         * agent.h (GCRY_MD_USER_TLS_MD5SHA1): New.
904         * divert-scd.c (pksign): Add case for tls-md5sha1.
905         
906         * divert-scd.c (encode_md_for_card): Check that the algo is valid.
907
908 2006-10-04  Werner Koch  <wk@g10code.com>
909
910         * call-pinentry.c (agent_get_passphrase): Changed to return the
911         unencoded passphrase.
912         (agent_askpin, agent_get_passphrase, agent_get_confirmation): Need
913         to map the cancel error.
914         * command.c (send_back_passphrase): New.
915         (cmd_get_passphrase): Use it here.  Also implement --data option.
916         (skip_options): New.
917
918 2006-09-26  Werner Koch  <wk@g10code.com>
919
920         * learncard.c (agent_handle_learn): Send back the keypair
921         information.
922
923 2006-09-25  Werner Koch  <wk@g10code.com>
924
925         * trustlist.c (read_one_trustfile): Allow extra flags.
926         (struct trustitem_s): Replaced KEYFLAGS by a FLAGS struct.
927         Changed all code to use this.
928         (agent_istrusted): New arg CTRL. Changed all callers.  Send back
929         flags.
930         * command.c (agent_write_status): New.
931
932 2006-09-20  Werner Koch  <wk@g10code.com>
933
934         * Makefile.am: Changes to allow parallel make runs.
935
936 2006-09-15  Werner Koch  <wk@g10code.com>
937
938         * trustlist.c: Entirely rewritten.
939         (agent_trustlist_housekeeping): Removed and removed all calls.
940
941 2006-09-14  Werner Koch  <wk@g10code.com>
942
943         Replaced all call gpg_error_from_errno(errno) by
944         gpg_error_from_syserror().
945
946         * call-pinentry.c (start_pinentry): Replaced pipe_connect2 by
947         pipe_connect_ext.
948         * call-scd.c (start_scd): Ditto.
949         * command.c (start_command_handler): Replaced
950         init_connected_socket_server by init_socket_server_ext.
951
952 2006-09-13  Werner Koch  <wk@g10code.com>
953
954         * preset-passphrase.c (main) [W32]: Check for WSAStartup error.
955
956 2006-09-08  Werner Koch  <wk@g10code.com>
957
958         * call-scd.c: Add signal.h as we are referencing SIGUSR2.
959
960 2006-09-06  Marcus Brinkmann  <marcus@g10code.de>
961
962         * Makefile.am (AM_CFLAGS): Add $(GPG_ERR_CFLAGS).
963         (gpg_agent_LDADD): Replace -lgpg-error with $(GPG_ERROR_LIBS).
964
965 2006-09-06  Werner Koch  <wk@g10code.com>
966
967         * query.c: Renamed to ..
968         * call-pinentry.c: .. this.
969
970         * agent.h (out_of_core): Removed.
971         (CTRL): Removed and changed everywhere to ctrl_t.
972
973         Replaced all Assuan error codes by libgpg-error codes.  Removed
974         all map_to_assuan_status and map_assuan_err.
975         
976         * gpg-agent.c (main): Call assuan_set_assuan_err_source to have Assuan
977         switch to gpg-error codes.
978         * command.c (set_error): Adjusted.
979
980 2006-09-04  Werner Koch  <wk@g10code.com>
981
982         * command.c (percent_plus_unescape): New.
983         (cmd_get_val, cmd_putval): New.
984
985 2006-08-29  Werner Koch  <wk@g10code.com>
986
987         * command-ssh.c (stream_read_mpi): Sanity check for early
988         detecting of too large keys.
989         * gpg-agent.c (my_gcry_outofcore_handler): New.
990         (main): Register it.
991         (main): No allocate 32k secure memory (was 16k).
992
993 2006-07-31  Werner Koch  <wk@g10code.com>
994
995         * preset-passphrase.c (make_hexstring): For consistency use
996         xtrymalloc and changed caller to use xfree.  Fixed function
997         comment.
998
999 2006-07-29  Marcus Brinkmann  <marcus@g10code.de>
1000
1001         * preset-passphrase.c (preset_passphrase): Do not strip off last
1002         character of passphrase.
1003         (make_hexstring): New function.
1004         * command.c (cmd_preset_passphrase): Use parse_hexstring to syntax
1005         check passphrase argument.  Truncate passphrase at delimiter.
1006
1007 2006-07-24  Werner Koch  <wk@g10code.com>
1008
1009         * minip12.c (build_key_bag): New args SHA1HASH and
1010         KEYIDSTR. Append bag Attributes if these args are given.
1011         (build_cert_sequence): ditto.
1012         (p12_build): Calculate certificate hash and pass to build
1013         functions.
1014
1015 2006-07-21  Werner Koch  <wk@g10code.com>
1016
1017         * minip12.c (oid_pkcs_12_keyBag): New.
1018         (parse_bag_encrypted_data): New arg R_RESULT. Support keybags and
1019         return the key object. 
1020         (p12_parse): Take new arg into account.  Free RESULT on error.
1021
1022 2006-06-26  Werner Koch  <wk@g10code.com>
1023
1024         * gpg-agent.c (handle_signal): Print info for SIGUSR2 only in
1025         verbose mode.
1026
1027 2006-06-22  Werner Koch  <wk@g10code.com>
1028
1029         * command-ssh.c (make_cstring): Use memcpy instead of strncpy.
1030         (ssh_receive_mpint_list, sexp_key_extract, data_sign): Use
1031         xtrycalloc instead of xtrymalloc followed by memset.
1032
1033 2006-06-20  Werner Koch  <wk@g10code.com>
1034
1035         * minip12.c (create_final): New arg PW. Add code to calculate the
1036         MAC.
1037
1038 2006-06-09  Marcus Brinkmann  <marcus@g10code.de>
1039
1040         * Makefile.am (gpg_agent_LDADD): Add $(NETLIBS).
1041         (gpg_protect_tool_LDADD): Likewise.
1042         (gpg_preset_passphrase_LDADD): Likewise.
1043
1044 2006-04-09  Moritz Schulte  <moritz@g10code.com>
1045
1046         * command-ssh.c (ssh_request_process): Removed FIXME mentioning a
1047         possible DoS attack.
1048
1049 2006-04-01  Moritz Schulte  <moritz@g10code.com>
1050
1051         * command-ssh.c (ssh_identity_register): Make KEY_GRIP_RAW be 20
1052         instead of 21 bytes long; do not fill KEY_GRIP_RAW[20] with NUL
1053         byte - KEY_GRIP_RAW is a raw binary string anyway.
1054
1055 2006-02-09  Werner Koch  <wk@g10code.com>
1056
1057         * call-scd.c (struct scd_local_s): New field next_local.
1058         (scd_local_list): New.
1059         (start_scd): Put new local into list.
1060         (agent_reset_scd): Remove it from the list.
1061         (agent_scd_check_aliveness): Here is the actual reason why we need
1062         all this stuff.
1063         (agent_reset_scd): Send the new command RESTART instead of RESET.
1064
1065 2005-12-16  Werner Koch  <wk@g10code.com>
1066
1067         * minip12.c (cram_octet_string): New
1068         (p12_parse): Use it for NDEFed bags.
1069         (parse_bag_data): Ditto.
1070         (string_to_key, set_key_iv, crypt_block): New arg SALTLEN.
1071         (p12_build): Use old value 8 for new arg.
1072         (parse_bag_encrypted_data, parse_bag_data): Allow for salts of 8
1073         to 16 bytes.  Add new arg R_CONSUMED.
1074
1075 2005-11-24  Werner Koch  <wk@g10code.com>
1076
1077         * minip12.c (p12_parse): Fixed for case that the key object comes
1078         prior to the certificate.
1079
1080 2005-10-19  Werner Koch  <wk@g10code.com>
1081
1082         * divert-scd.c (getpin_cb): Hack to use it for a keypad message.
1083
1084         * call-scd.c (inq_needpin): Reworked to support the new KEYPADINFO.
1085
1086         * query.c (start_pinentry): Keep track of the owner.
1087         (popup_message_thread, agent_popup_message_start) 
1088         (agent_popup_message_stop, agent_reset_query): New.
1089         * command.c (start_command_handler): Make sure a popup window gets
1090         closed.
1091
1092 2005-10-08  Marcus Brinkmann  <marcus@g10code.de>
1093
1094         * Makefile.am (gpg_protect_tool_LDADD): Add ../gl/libgnu.a.
1095         (gpg_preset_passphrase_LDADD, t_common_ldadd): Likewise.
1096         (gpg_agent_LDADD): Add ../gl/libgnu.a after ../common/libcommon.a.
1097
1098 2005-09-16  Werner Koch  <wk@g10code.com>
1099
1100         * minip12.c (build_key_sequence, build_cert_sequence): Fixed
1101         padding.
1102
1103 2005-09-15  Moritz Schulte  <moritz@g10code.com>
1104
1105         * t-protect.c (test_agent_protect): Implemented.
1106         (main): Disable use of secure memory.
1107
1108 2005-09-09  Werner Koch  <wk@g10code.com>
1109
1110         * minip12.c (p12_build): Oops, array needs to be larger for the
1111         certificate.
1112         (build_cert_bag): Fixed yesterdays change.
1113
1114         * command-ssh.c (card_key_available): Let the card handler decide
1115         whether the card is supported here.  Also get a short serial
1116         number to return from the card handler.
1117
1118 2005-09-08  Werner Koch  <wk@g10code.com>
1119
1120         * minip12.c (build_cert_bag): Use a non constructed object.
1121         i.e. 0x80 and not 0xa0.
1122
1123 2005-08-16  Werner Koch  <wk@g10code.com>
1124
1125         * gpg-agent.c (main): Use a default file name for --write-env-file.
1126
1127 2005-07-25  Werner Koch  <wk@g10code.com>
1128
1129         * findkey.c (agent_public_key_from_file): Fixed array assignment.
1130         This was the cause for random segvs.
1131
1132 2005-06-29  Werner Koch  <wk@g10code.com>
1133
1134         * command-ssh.c (data_sign): Removed empty statement.
1135
1136 2005-06-21  Werner Koch  <wk@g10code.com>
1137
1138         * minip12.c (create_final): Cast size_t to ulong for printf. 
1139         (build_key_bag, build_cert_bag, build_cert_sequence): Ditto.
1140
1141 2005-06-16  Werner Koch  <wk@g10code.com>
1142
1143         * protect-tool.c (make_advanced): Makde RESULT a plain char.
1144         * call-scd.c (unescape_status_string): Need to cast unsigned char*
1145         for strcpy.
1146         (agent_card_pksign): Made arg R_BUF an unsigned char**.
1147         * divert-scd.c (divert_pksign): Made SIGVAL unsigned char*.
1148         (encode_md_for_card): Initialize R_VAL and R_LEN.
1149         * genkey.c (store_key): Made BUF unsigned.
1150         * protect.c (do_encryption): Ditto.
1151         (do_encryption): Made arg PROTBEGIN unsigned. Initialize RESULT
1152         and RESULTLEN even on error.
1153         (merge_lists): Need to cast unsigned char * for strcpy. Initialize 
1154         RESULTand RESULTLEN even on error.
1155         (agent_unprotect): Likewise for strtoul.
1156         (make_shadow_info): Made P and INFO plain char.
1157         (agent_shadow_key): Made P plain char.
1158
1159 2005-06-15  Werner Koch  <wk@g10code.com>
1160
1161         * query.c (agent_get_passphrase): Made HEXSTRING a char*.
1162         * command-ssh.c (ssh_key_grip): Made arg BUFFER unsigned.
1163         (ssh_key_grip): Simplified.
1164         (data_sign): Initialize variables with the definition.
1165         (ssh_convert_key_to_blob): Make sure that BLOB and BLOB_SIZE
1166         are set to NULL on error.  Cool, gcc-4 detects uninitialized stuff
1167         beyond function boundaries; well it can't know that we do error
1168         proper error handling so that this was not a real error.
1169         (file_to_buffer): Likewise for BUFFER and BUFFER_N.
1170         (data_sign): Likewise for SIG and SIG_N.
1171         (stream_read_byte): Set B to a value even on error.
1172         * command.c (cmd_genkey): Changed VALUE to char.
1173         (cmd_readkey): Cast arg for gcry_sexp_sprint.
1174         * agent.h (struct server_control_s): Made KEYGRIP unsigned.
1175
1176 2005-06-13  Werner Koch  <wk@g10code.com>
1177
1178         * command-ssh.c (start_command_handler_ssh): Reset the SCD.
1179
1180 2005-06-09  Werner Koch  <wk@g10code.com>
1181
1182         * gpg-agent.c (create_socket_name): New option --max-cache-ttl-ssh.
1183         * cache.c (housekeeping): Use it.
1184         (agent_put_cache): Use a switch to get the default ttl so that it
1185         is easier to add more cases.
1186
1187 2005-06-06  Werner Koch  <wk@g10code.com>
1188
1189         * gpg-agent.c: New option --default-cache-ttl-ssh.
1190         * agent.h (cache_mode_t): New.
1191         * pksign.c (agent_pksign_do): New arg CACHE_MODE to replace the
1192         ARG IGNORE_CACHE. Changed all callers.
1193         (agent_pksign): Ditto.
1194         * findkey.c (agent_key_from_file): Ditto. Canged all callers.
1195         (unprotect): Ditto.
1196         * command-ssh.c (data_sign): Use CACHE_MODE_SSH.
1197         * cache.c (agent_get_cache): New arg CACHE_MODE.
1198         (agent_put_cache): Ditto.  Store it in the cache.
1199
1200         * query.c (agent_query_dump_state, dump_mutex_state): New.
1201         (unlock_pinentry): Reset the global context before releasing the
1202         mutex.
1203         * gpg-agent.c (handle_signal): Dump query.c info on SIGUSR1.
1204
1205         * call-scd.c (agent_scd_check_aliveness): Always do a waitpid and
1206         add a timeout to the locking.
1207
1208 2005-06-03  Werner Koch  <wk@g10code.com>
1209
1210         * command.c (cmd_updatestartuptty): New.
1211
1212         * gpg-agent.c: New option --write-env-file.
1213         
1214         * gpg-agent.c (handle_connections): Make sure that the signals we
1215         are handling are not blocked.Block signals while creating new
1216         threads.
1217
1218 2005-06-02  Werner Koch  <wk@g10code.com>
1219
1220         * call-scd.c (agent_scd_dump_state, dump_mutex_state): New.
1221         * gpg-agent.c (handle_signal): Print it on SIGUSR1.
1222         (handle_connections): Include the file descriptor into the
1223         threadnames.
1224
1225 2005-06-01  Werner Koch  <wk@g10code.com>
1226
1227         * gpg-agent.c: Include setenv.h.
1228
1229 2005-05-31  Werner Koch  <wk@g10code.com>
1230
1231         * agent.h (out_of_core): s/__inline__/inine.  Noted by Ray Link.
1232
1233 2005-05-25  Werner Koch  <wk@g10code.com>
1234
1235         * gpg-agent.c (main): Do not unset the DISPLAY when we are
1236         continuing as child.
1237
1238 2005-05-24  Werner Koch  <wk@g10code.com>
1239
1240         * call-scd.c (inq_needpin): Skip leading spaces in of PIN
1241         description.
1242         * divert-scd.c (getpin_cb): Enhanced to cope with description
1243         flags.
1244         * query.c (agent_askpin): Add arg PROMPT_TEXT. Changed all
1245         callers.
1246
1247 2005-05-21  Werner Koch  <wk@g10code.com>
1248
1249         * call-scd.c (start_scd): Don't test for an alive scdaemon here.
1250         (agent_scd_check_aliveness): New.
1251         * gpg-agent.c (handle_tick): Test for an alive scdaemon.
1252         (handle_signal): Print thread info on SIGUSR1.
1253
1254 2005-05-20  Werner Koch  <wk@g10code.com>
1255
1256         * protect-tool.c: New option --canonical.
1257         (show_file): Implement it.
1258
1259         * keyformat.txt: Define the created-at attribute for keys.
1260
1261 2005-05-18  Werner Koch  <wk@g10code.com>
1262
1263         * divert-scd.c (ask_for_card): Removed the card reset kludge.
1264
1265 2005-05-17  Werner Koch  <wk@g10code.com>
1266
1267         * call-scd.c (unlock_scd): Add new arg CTRL. Changed all callers.
1268         (start_scd): Reoworked to allow for additional connections.
1269         * agent.h (ctrl_t): Add local data for the SCdaemon.
1270         * command.c (start_command_handler): Release SERVER_LOCAL.
1271
1272         * gpg-agent.c (create_server_socket): Use xmalloc.
1273         (main): Removed option --disable-pth a dummy.  Removed non-pth
1274         code path.
1275         (cleanup_sh): Removed.  Not needed anymore.
1276
1277 2005-05-05  Moritz Schulte  <moritz@g10code.com>
1278
1279         * command-ssh.c (ssh_key_to_buffer): Rename to ...
1280         (ssh_key_to_protected_buffer): ... this; change callers.
1281         Improved documentation.
1282         Use ssh_key_grip(), where gcry_pk_get_keygrip() has been used
1283         before.
1284         (ssh_handler_sign_request): Removed unusued variable P.
1285
1286 2005-04-20  Moritz Schulte  <moritz@g10code.com>
1287
1288         * command-ssh.c (ssh_handler_request_identities): Removed
1289         debugging code (sleep call), which was commited unintenionally.
1290
1291 2005-04-20  Werner Koch  <wk@g10code.com>
1292
1293         * minip12.c (parse_bag_encrypted_data): Fix the unpadding hack.
1294
1295         * gpg-agent.c: New option --disable-scdaemon.
1296         (handle_connections): Add time event to drive ...
1297         (handle_tick): New function.
1298         (main): Record the parent PID. Fixed segv when using ssh and a
1299         command.
1300
1301         * call-scd.c (start_scd): Take care of this option.
1302
1303 2005-04-03  Moritz Schulte  <moritz@g10code.com>
1304
1305         * command-ssh.c (ssh_request_spec): New member: secret_input.
1306         (REQUEST_SPEC_DEFINE): New argument: secret_input.
1307         (request_specs): Add secret_input flag.
1308         (request_spec_lookup): New function ...
1309         (ssh_request_process): ... use it here; depending on secret_input
1310         flag allocate secure or non-secure memory.
1311
1312 2005-03-02  Moritz Schulte  <moritz@g10code.com>
1313
1314         * command-ssh.c (sexp_key_extract): Removed FIXME, since
1315         xtrymallos does set errno correctly by now.
1316         (sexp_extract_identifier): Remove const attribute from identifier.
1317         (ssh_handler_request_identities): Remove const attribute from
1318         key_type; removes ugly casts and FIXME.
1319         (sexp_key_extract): Remove const attribute from comment.
1320         (ssh_send_key_public): Remove const attribute from
1321         key_type/comment; removes ugly cast.
1322         (data_sign): Remove const attribute from identifier; removes ugly
1323         cast.
1324         (key_secret_to_public): Remove const attribute from comment;
1325         removes ugly cast.
1326         (ssh_handler_sign_request): Remove const attribute from p.
1327         (sexp_key_extract): Use make_cstring().
1328         (ssh_key_extract_comment): Likewise.
1329         (ssh_key_to_buffer): Use secure memory for memory area to hold the
1330         key S-Expression.
1331         Added more comments.
1332
1333 2005-02-25  Werner Koch  <wk@g10code.com>
1334
1335         * findkey.c (modify_description): Keep invalid % escapes, so that
1336         %0A may pass through.
1337
1338         * agent.h (server_control_s): New field USE_AUTH_CALL.
1339         * call-scd.c (agent_card_pksign): Make use of it.
1340         * command-ssh.c (data_sign): Set the flag.
1341         (ssh_send_key_public): New arg OVERRIDE_COMMENT.
1342         (card_key_available): Add new arg CARDSN.
1343         (ssh_handler_request_identities): Use the card s/n as comment.
1344         (sexp_key_extract): Use GCRYMPI_FMT_STD.
1345         (data_sign): Ditto.
1346
1347         * learncard.c (make_shadow_info): Moved to ..
1348         * protect.c (make_shadow_info): .. here. Return NULL on malloc
1349         failure. Made global.
1350         * agent.h: Add prototype.
1351
1352 2005-02-24  Werner Koch  <wk@g10code.com>
1353
1354         * call-scd.c (unescape_status_string): New. Actual a copy of
1355         ../g10/call-agent.c
1356         (card_getattr_cb, agent_card_getattr): New.
1357
1358         * command-ssh.c (card_key_available): New.
1359         (ssh_handler_request_identities): First see whether a card key is
1360         available.
1361
1362         * gpg-agent.c (handle_connections): Need to check for events if
1363         select returns with -1.
1364
1365 2005-02-23  Werner Koch  <wk@g10code.com>
1366
1367         * command-ssh.c (get_passphrase): Removed.
1368         (ssh_identity_register): Partly rewritten.
1369         (open_control_file, search_control_file, add_control_entry): New.
1370         (ssh_handler_request_identities): Return only files listed in our
1371         control file.
1372
1373         * findkey.c (unprotect): Check for allocation error.
1374
1375         * agent.h (opt): Add fields to record the startup terminal
1376         settings.
1377         * gpg-agent.c (main): Record them and do not force keep display
1378         with --enable-ssh-support.
1379         * command-ssh.c (start_command_handler_ssh): Use them here.
1380
1381         * gpg-agent.c: Renamed option --ssh-support to
1382         --enable-ssh-support.
1383
1384         * command.c (cmd_readkey): New.
1385         (register_commands): Register new command "READKEY".
1386
1387         * command-ssh.c (ssh_request_process): Improved logging.
1388
1389         * findkey.c (agent_write_private_key): Always use plain open.
1390         Don't depend on an umask for permissions.
1391         (agent_key_from_file): Factored file reading code out to ..
1392         (read_key_file): .. new function.
1393         (agent_public_key_from_file): New.
1394
1395 2005-02-22  Werner Koch  <wk@g10code.com>
1396
1397         * command-ssh.c (stream_read_string): Removed call to abort on
1398         memory error because the CVS version of libgcrypt makes sure
1399         that ERRNO gets always set on error even with a faulty user
1400         supplied function.
1401
1402 2005-02-19  Moritz Schulte  <moritz@g10code.com>
1403
1404         * command-ssh.c (ssh_receive_mpint_list): Slightly rewritten, do
1405         not use elems_secret member of key_spec.
1406         (ssh_key_type_spec): Removed member: elems_secret.
1407         (ssh_key_types): Removed elems_secret data.
1408         (ssh_sexp_construct): Renamed to ...
1409         (sexp_key_construct): ... this; changed callers.
1410         (ssh_sexp_extract): Renamed to ...
1411         (sexp_key_extract): ... this; changed callers.
1412         (ssh_sexp_extract_key_type): Renamed to ...
1413         (sexp_extract_identifier): ... this; changed callers; use
1414         make_cstring().
1415         Added more comments.
1416
1417 2005-02-18  Moritz Schulte  <moritz@g10code.com>
1418
1419         * command-ssh.c (ssh_sexp_construct): Rewritten generation of sexp
1420         template, clarified.
1421         (ssh_sexp_extract): Support shadowed-private-key-sexp; treat
1422         protected-private key and shadowed-private-key as public keys.
1423         (key_secret_to_public): Rewritten: simply use ssh_sexp_extract()
1424         and ssh_sexp_construct().
1425
1426 2005-02-15  Werner Koch  <wk@g10code.com>
1427
1428         * findkey.c (modify_description): Don't increment OUT_LEN during
1429         the second pass.
1430
1431 2005-02-14  Moritz Schulte  <moritz@g10code.com>
1432
1433         * command-ssh.c (es_read_byte): Renamed to ...
1434         (stream_es_read_byte): ... this; changed callers.
1435         (es_write_byte): Renamed to ...
1436         (stream_write_byte): ... this; changed callers.
1437         (es_read_uint32): Renamed to ...
1438         (stream_read_uint32): ... this; changed callers.
1439         (es_write_uint32): Renamed to ...
1440         (stream_write_uint32): ... this; changed callers.
1441         (es_read_data): Renamed to ...
1442         (stream_read_data): ... this; changed callers.
1443         (es_write_data): Renamed to ...
1444         (stream_write_data): ... this; changed callers.
1445         (es_read_string): Renamed to ...
1446         (stream_read_string): ... this; changed callers.
1447         (es_read_cstring): Renamed to ...
1448         (stream_read_cstring): ... this; changed callers.
1449         (es_write_string): Renamed to ...
1450         (stream_write_string): ... this; changed callers.
1451         (es_write_cstring): Renamed to ...
1452         (stream_write_cstring): ... this; changed callers.
1453         (es_read_mpi): Renamed to ...
1454         (stream_read_mpi): ... this; changed callers.
1455         (es_write_mpi): Renamed to ...
1456         (stream_write_mpi): ... this; changed callers.
1457         (es_copy): Renamed to ...
1458         (stream_copy): ... this; changed callers.
1459         (es_read_file): Renamed to ...
1460         (file_to_buffer): ... this; changed callers.
1461         (ssh_identity_register): Removed variable description_length;
1462         changed code to use asprintf for description.
1463         (stream_write_uint32): Do not filter out the last byte of shift
1464         expression.
1465         (uint32_construct): New macro ...
1466         (stream_read_uint32): ... use it; removed unnecessary cast.
1467
1468 2005-02-03  Werner Koch  <wk@g10code.com>
1469
1470         * agent.h (agent_exit): Add JNLIB_GCC_A_NR to indicate that this
1471         function won't return.
1472
1473         * gpg-agent.c (check_for_running_agent): Initialize pid to a
1474         default value if not needed.
1475
1476         * command-ssh.c: Removed stdint.h.  s/byte_t/unsigned char/,
1477         s/uint32/u32/ becuase that is what we have always used in GnuPG.
1478         (ssh_request_specs): Moved to top of file.
1479         (ssh_key_types): Ditto.
1480         (make_cstring): Ditto.
1481         (data_sign): Don't use a variable for the passphrase prompt, make
1482         it translatable.
1483         (ssh_request_process): 
1484         
1485
1486         * findkey.c (modify_description): Renamed arguments for clarity,
1487         polished documentation.  Make comment a C-string.  Fixed case of
1488         DESCRIPTION being just "%".
1489         (agent_key_from_file): Make sure comment string to a C-string.
1490
1491         * gpg-agent.c (create_socket_name): Cleanup the implemntation, use
1492         DIMof, agent_exit, removed superflous args and return the
1493         allocated string as value.  Documented.  Changed callers.
1494         (create_server_socket): Cleanups similar to above.  Changed callers.
1495         (cleanup_do): Renamed to ..
1496         (remove_socket): .. this.  Changed caller.
1497         (handle_connections): The signals are to be handled in the select
1498         and not in the accept.  Test all FDs after returning from a
1499         select.  Remove the event tests from the accept calls.  The select
1500         already assured that the accept won't block.
1501
1502 2005-01-29  Moritz Schulte  <moritz@g10code.com>
1503
1504         * command-ssh.c (ssh_handler_request_identities)
1505         (ssh_handler_sign_request, ssh_handler_add_identity)
1506         (ssh_handler_remove_identity, ssh_handler_remove_all_identities)
1507         (ssh_handler_lock, ssh_handler_unlock): Changed to return an error
1508         code instead of a boolean.
1509         (ssh_request_process): Changed to return a boolean instead of an
1510         error; adjust caller.
1511         (ssh_request_handle_t): Adjusted type.
1512         (ssh_request_spec): New member: identifier.
1513         (REQUEST_SPEC_DEFINE): New macro; use it for initialization of
1514         request_specs[].
1515         (ssh_request_process): In debugging mode, log identifier of
1516         handler to execute.
1517         (start_command_handler_ssh): Moved most of the stream handling
1518         code ...
1519         (ssh_request_process): ... here.
1520
1521 2005-01-28  Moritz Schulte  <moritz@g10code.com>
1522
1523         * command-ssh.c (ssh_handler_add_identity): Pass ctrl to
1524         ssh_identity_register().
1525         (ssh_identity_register): New argument: ctrl; pass ctrl to
1526         get_passphrase().
1527         (get_passphrase): Pass ctrl instead of NULL to agent_askpin().
1528         (start_command_handler_ssh): Use agent_init_default_ctrl();
1529         deallocate structure members, which might be dynamically
1530         allocated.
1531         (lifetime_default): Removed variable.
1532         (ssh_handler_add_identity): Fix ttl handling; renamed variable
1533         `death' to `ttl'.
1534         (ssh_identity_register): Fix key grip handling.
1535
1536 2005-01-26  Moritz Schulte  <moritz@g10code.com>
1537
1538         * command-ssh.c (ssh_handler_sign_request): Confirm to agent
1539         protocol in case of failure.
1540
1541         * command-ssh.c: New file.
1542
1543         * Makefile.am (gpg_agent_SOURCES): New source file: command-ssh.c.
1544
1545         * findkey.c (modify_description): New function.
1546         (agent_key_from_file): Support comment field in key s-expressions.
1547
1548         * gpg-agent.c (enum cmd_and_opt_values): New item: oSSHSupport.
1549         (opts) New entry for oSSHSupport.
1550         New variable: socket_name_ssh.
1551         (cleanup_do): New function based on cleanup().
1552         (cleanup): Use cleanup_do() for socket_name and socket_name_ssh.
1553         (main): New switch case for oSSHSupport.
1554         (main): Move socket name creation code to ...
1555         (create_socket_name): ... this new function.
1556         (main): Use create_socket_name() for creating socket names for
1557         socket_name and for socket_name_ssh in case ssh support is
1558         enabled.
1559         Move socket creation code to ...
1560         (create_server_socket): ... this new function.
1561         (main): Use create_server_socket() for creating sockets.
1562         In case standard_socket is set, do not only store a socket name in
1563         socket_name, but also in socket_name_ssh.
1564         Generate additional environment info strings for ssh support.
1565         Pass additional ssh socket argument to handle_connections.
1566         (start_connection_thread_ssh): New function.
1567         (handle_connections): Use select to multiplex between gpg-agent
1568         and ssh-agent protocol.
1569
1570         * agent.h (struct opt): New member: ssh_support.
1571         (start_command_handler_ssh): Add prototype.
1572
1573 2005-01-04  Werner Koch  <wk@g10code.com>
1574
1575         * trustlist.c (agent_marktrusted): Use "Cancel" for the first
1576         confirmation and made the strings translatable.
1577
1578         * cache.c (agent_put_cache): Fix the test for using the default
1579         TTL.
1580
1581 2004-12-21  Werner Koch  <wk@g10code.com>
1582
1583         * preset-passphrase.c (preset_passphrase): Handle --passphrase.
1584
1585         * Makefile.am (gpg_preset_passphrase_LDADD): Reorder libs so that
1586         pwquery may use stuff from jnlib.  Conditionally add -lwsock2
1587         (gpg_protect_tool_LDADD): Ditto.
1588
1589         * preset-passphrase.c (main): Use default_homedir().
1590         (main) [W32]: Initialize sockets.
1591
1592 2004-12-21  Marcus Brinkmann  <marcus@g10code.de>
1593
1594         * Makefile.am (libexec_PROGRAMS): Add gpg-preset-passphrase.
1595         (gpg_preset_passphrase_SOURCES, gpg_preset_passphrase_LDADD): New
1596         targets.
1597         * agent.h (opt): New member allow_cache_passphrase.
1598         * cache.c (housekeeping): Check if R->ttl is not negative.
1599         (agent_put_cache): Allow ttl to be negative.
1600         * command.c (parse_hexstring): Allow something to follow the
1601         hexstring.
1602         (cmd_cache_passphrase): New function.
1603         (register_commands): Add it.
1604         * gpg-agent.c: Handle --allow-preset-passphrase.
1605         * preset-passphrase.c: New file.
1606
1607 2004-12-21  Werner Koch  <wk@g10code.com>
1608
1609         * gpg-agent.c (main): Use default_homedir().
1610         * protect-tool.c (main): Ditto. 
1611
1612 2004-12-20  Werner Koch  <wk@g10code.com>
1613
1614         * gpg-agent.c (main) [W32]: Now that Mutexes work we can remove
1615         the pth_init kludge.
1616         (main): Add new options --[no-]use-standard-socket.
1617         (check_for_running_agent): Check whether it is running on the
1618         standard socket.
1619
1620         * call-scd.c (init_membuf, put_membuf, get_membuf): Removed.  We
1621         now use the identical implementation from ../common/membuf.c.
1622
1623         * pksign.c (agent_pksign): Changed arg OUTFP to OUTBUF and use
1624         membuf functions to return the value.
1625         * pkdecrypt.c (agent_pkdecrypt): Ditto.
1626         * genkey.c (agent_genkey): Ditto.
1627         * command.c (cmd_pksign, cmd_pkdecrypt, cmd_genkey): Replaced
1628         assuan_get_data_fp() by a the membuf scheme.
1629         (clear_outbuf, write_and_clear_outbuf): New.
1630
1631 2004-12-19  Werner Koch  <wk@g10code.com>
1632
1633         * query.c (initialize_module_query): New.
1634         * call-scd.c (initialize_module_call_scd): New.
1635         * gpg-agent.c (main): Call them.
1636         
1637 2004-12-18  Werner Koch  <wk@g10code.com>
1638
1639         * gpg-agent.c (main):  Remove special Pth initialize.
1640
1641         * agent.h (map_assuan_err): Define in terms of
1642         map_assuan_err_with_source.
1643
1644 2004-12-17  Moritz Schulte  <moritz@g10code.com>
1645
1646         * query.c: Undo change from 2004-12-05.
1647
1648 2004-12-15  Werner Koch  <wk@g10code.com>
1649
1650         * gpg-agent.c [W32]: Various hacks to make it work.
1651
1652         * findkey.c (agent_write_private_key) [W32]: Adjust open call.
1653
1654         * call-scd.c (start_scd) [W32]: Don't check whether the daemon
1655         didn't died.  To hard to do under Windows.
1656         (start_scd) [W32]: Disable sending of the event signal option.
1657
1658         * protect-tool.c (read_file, export_p12_file) [W32]: Use setmode
1659         to get stdout and stin into binary mode.
1660
1661 2004-12-05  Moritz Schulte  <moritz@g10code.com>
1662
1663         * query.c (start_pinentry): Allow CTRL be NULL.
1664
1665 2004-10-22  Werner Koch  <wk@g10code.com>
1666
1667         * gpg-agent.c (parse_rereadable_options): Return "not handled"
1668         when the log file has not beend hadled.  This is will let the main
1669         option processing continue. Fixed a bug introduced on 2004-09-4
1670         resulting in logging to stderr until a HUP has been given.
1671         (main): Don't close the listen FD.
1672
1673 2004-09-30  Werner Koch  <wk@g10code.com>
1674
1675         * Makefile.am: Adjusted from gettext 1.14.
1676
1677 2004-09-29  Werner Koch  <wk@g10code.com>
1678
1679         * minip12.c (parse_bag_encrypted_data): Print error if a bad
1680         passphrase has been given.
1681
1682 2004-09-28  Werner Koch  <wk@g10code.com>
1683
1684         * protect.c (agent_unprotect): Fixed wiping of CLEARTEXT.  Thanks
1685         to Moritz for pointing this out.
1686
1687 2004-09-25  Moritz Schulte  <moritz@g10code.com>
1688         
1689         * agent.h: Declare: agent_pksign_do.
1690         (struct server_control_s): New member: raw_value.
1691         
1692         * pksign.c (do_encode_md): New argument: raw_value; support
1693         generation of raw (non-pkcs1) data objects; adjust callers.
1694         (agent_pksign_do): New function, based on code ripped
1695         out from agent_pksign.
1696         (agent_pksign): Use agent_pksign_do.
1697
1698         * command.c (start_command_handler): Set ctrl.digest.raw_value.
1699         
1700 2004-09-09  Werner Koch  <wk@g10code.de>
1701
1702         * gpg-agent.c (check_for_running_agent): New.
1703         (main): The default action is now to check for an already running
1704         agent.
1705         (parse_rereadable_options): Set logfile only on reread.
1706         (main): Do not print the "is development version" note.
1707
1708 2004-08-20  Werner Koch  <wk@g10code.de>
1709
1710         * gpg-agent.c: New option --max-cache-ttl.  Suggested by Alexander
1711         Belopolsky.
1712         * cache.c (housekeeping): Use it here instead of the hardwired
1713         default of 1 hour.
1714
1715         * query.c (start_pinentry): Use a timeout for the pinentry lock.
1716
1717 2004-08-18  Werner Koch  <wk@g10code.de>
1718
1719         * protect-tool.c (get_passphrase): Make sure that the default
1720         prompts passed to gpg-agent are utf-8 encoded. Add new prompt values.
1721         (import_p12_file, import_p12_file, export_p12_file): Changed calls
1722         to get_passphrase so that better prompts are displayed.
1723         (get_new_passphrase): New.
1724
1725 2004-07-22  Werner Koch  <wk@g10code.de>
1726
1727         * trustlist.c (read_list): Allow colons in the fingerprint.
1728         (headerblurb): Rephrased.
1729
1730         * gpg-agent.c (handle_connections): Increase the stack size ot 256k.
1731
1732 2004-06-20  Moritz Schulte  <moritz@g10code.com>
1733
1734         * gpg-agent.c: Include <sys/stat.h> (build fix for BSD).
1735
1736 2004-05-11  Werner Koch  <wk@gnupg.org>
1737
1738         * gpg-agent.c (handle_signal): Reload the trustlist on SIGHUP.
1739         (start_connection_thread): Hack to simulate a ticker.
1740         * trustlist.c (agent_trustlist_housekeeping) 
1741         (agent_reload_trustlist): New.  Protected all global functions
1742         here with a simple counter which is sufficient for Pth.
1743
1744 2004-05-03  Werner Koch  <wk@gnupg.org>
1745
1746         * gpg-agent.c: Remove help texts for options lile --lc-ctype.
1747         (main): New option --allow-mark-trusted. 
1748         * trustlist.c (agent_marktrusted): Use it here.
1749
1750 2004-04-30  Werner Koch  <wk@gnupg.org>
1751
1752         * protect-tool.c: New option --enable-status-msg.
1753         (store_private_key): Print status messages for imported keys.
1754         (read_and_unprotect): Ditto for bad passphrase.
1755
1756         * gpg-agent.c (parse_rereadable_options): New arg REREAD.  Allow
1757         changing oLogFile.
1758         (current_logfile): New.
1759
1760 2004-04-26  Werner Koch  <wk@gnupg.org>
1761
1762         * call-scd.c (start_scd): Do not register an event signal if we
1763         are running as a pipe server.
1764
1765 2004-04-21  Werner Koch  <wk@gnupg.org>
1766
1767         * call-scd.c (start_scd): Send event-signal option. Always check
1768         that the scdaemon is still running.
1769
1770         * gpg-agent.c (handle_signal): Do not use SIGUSR{1,2} anymore for
1771         changing the verbosity.
1772
1773 2004-04-16  Werner Koch  <wk@gnupg.org>
1774
1775         * gpg-agent.c (main): Tell the logging code that we are running
1776         detached.
1777
1778 2004-04-06  Werner Koch  <wk@gnupg.org>
1779
1780         * gpg-agent.c (main): Use new libgcrypt thread library register
1781         scheme.
1782
1783 2004-03-23  Marcus Brinkmann  <marcus@g10code.de>
1784
1785         * gpg-agent.c (main): For now, always print the default config
1786         file name for --gpgconf-list.
1787
1788 2004-03-17  Werner Koch  <wk@gnupg.org>
1789
1790         * gpg-agent.c (main) <gpgconf>: Fixed default value quoting.
1791
1792 2004-03-16  Werner Koch  <wk@gnupg.org>
1793
1794         * gpg-agent.c (parse_rereadable_options): Use the new
1795         DEFAULT_CACHE_TTL macro.
1796         (main): Updated --gpgconf-list output.
1797
1798 2004-02-21  Werner Koch  <wk@gnupg.org>
1799
1800         * command.c (cmd_passwd): Take acount of a key description.
1801
1802         * genkey.c (reenter_compare_cb): Do not set the error text.
1803         (agent_protect_and_store, agent_genkey): Force a re-enter after a
1804         non-matching passphrase.
1805         * query.c (agent_askpin): Add new arg INITIAL_ERRTEXT; changed
1806         all callers.
1807
1808 2004-02-19  Werner Koch  <wk@gnupg.org>
1809
1810         * protect-tool.c: New options --have-cert and --prompt.
1811         (export_p12_file): Read a certificate from STDIN and pass it to
1812         p12_build.  Detect a keygrip and construct the filename in that
1813         case.  Unprotcet a key if needed.  Print error messages for key
1814         formats we can't handle.
1815         (release_passphrase): New.
1816         (get_passphrase): New arg PROMPTNO. Return the allocated
1817         string. Changed all callers.
1818
1819         * minip12.c: Revamped the build part.
1820         (p12_build): New args CERT and CERTLEN.  
1821
1822 2004-02-18  Werner Koch  <wk@gnupg.org>
1823
1824         * protect-tool.c (main): Setup the used character set.
1825         * gpg-agent.c (main): Ditto.
1826
1827         * gpg-agent.c (set_debug): New.  New option --debug-level.
1828         (main): New option --gpgconf-list.
1829
1830 2004-02-17  Werner Koch  <wk@gnupg.org>
1831
1832         * pksign.c (do_encode_md): Cleaned up by using gcry_sexp_build.
1833
1834         * Makefile.am (gpg_protect_tool_SOURCES): Removed
1835         simple-pwquery.[ch], as we once moved it to ../common.
1836
1837 2004-02-13  Werner Koch  <wk@gnupg.org>
1838
1839         * command.c (cmd_setkeydesc): New.
1840         (register_commands): Add command SETKEYDESC.
1841         (cmd_pksign, cmd_pkdecrypt): Use the key description.
1842         (reset_notify): Reset the description.
1843         * findkey.c (unprotect): Add arg DESC_TEXT.
1844         (agent_key_from_file): Ditto.
1845         * pksign.c (agent_pksign): Ditto.
1846         * pkdecrypt.c (agent_pkdecrypt): Ditto. Made CIPHERTEXT an
1847         unsigned char*.
1848
1849         * protect-tool.c (main): New options --no-fail-on-exist, --homedir.
1850         (store_private_key): Use them here.
1851
1852 2004-02-12  Werner Koch  <wk@gnupg.org>
1853
1854         * protect-tool.c (read_file, main): Allow reading from stdin.
1855
1856         * Makefile.am: Include cmacros.am for common flags.
1857         (libexec_PROGRAMS): Put gpg-protect-tool there.
1858
1859 2004-02-10  Werner Koch  <wk@gnupg.org>
1860
1861         * minip12.c (parse_bag_encrypted_data): Finished implementation.
1862         (p12_parse): Add callback args.
1863         * protect-tool.c (import_p12_cert_cb): New.
1864         (import_p12_file): Use it.
1865
1866 2004-02-06  Werner Koch  <wk@gnupg.org>
1867
1868         * minip12.c (crypt_block): Add arg CIPHER_ALGO; changed all callers.
1869         (set_key_iv): Add arg KEYBYTES; changed caller.
1870
1871 2004-02-03  Werner Koch  <wk@gnupg.org>
1872
1873         * findkey.c (agent_key_from_file): Extra paranoid wipe.
1874         * protect.c (agent_unprotect): Ditto.
1875         (merge_lists): Ditto. Add arg RESULTLEN.
1876         * pkdecrypt.c (agent_pkdecrypt): Don't show the secret key even in
1877         debug mode.
1878
1879         * protect.c: Add DSA and Elgamal description.
1880
1881 2004-01-29  Werner Koch  <wk@gnupg.org>
1882
1883         * agent.h (server_control_s): Add connection_fd field.
1884         * command.c (start_command_handler): Init it here.
1885         * gpg-agent.c (agent_init_default_ctrl): and here.
1886         * call-scd.c: Add the CTRL arg to all functions calling start_scd
1887         and pass it to start_scd.  Changed all callers
1888         (start_scd): Keep track of the current active connection.
1889         (agent_reset_scd): New.
1890         * command.c (start_command_handler): Call it here.
1891         * learncard.c (agent_handle_learn): Add arg CTRL; changed caller.
1892         (send_cert_back): Ditto.
1893
1894 2004-01-28  Werner Koch  <wk@gnupg.org>
1895
1896         * trustlist.c (agent_marktrusted): Check whether the trustlist is
1897         writable.
1898
1899 2004-01-27  Werner Koch  <wk@gnupg.org>
1900
1901         * sexp-parse.h: Moved to ../common.
1902
1903 2004-01-24  Werner Koch  <wk@gnupg.org>
1904
1905         * call-scd.c (atfork_cb): New.
1906         (start_scd): Make sure secmem gets cleared.
1907         * query.c  (atfork_cb): New.
1908         (start_pinentry): Make sure secmem gets cleared.
1909
1910 2004-01-16  Werner Koch  <wk@gnupg.org>
1911
1912         * findkey.c (agent_key_from_file): Now return an error code so
1913         that we have more detailed error messages in the upper layers.
1914         This fixes the handling of pinentry's cancel button. 
1915         * pksign.c (agent_pksign): Changed accordingly.
1916         * pkdecrypt.c (agent_pkdecrypt): Ditto.
1917         * command.c (cmd_passwd): Ditto.
1918
1919 2003-12-16  Werner Koch  <wk@gnupg.org>
1920
1921         * gpg-agent.c (main): Set the prefixes for assuan logging.
1922
1923 2003-12-15  Werner Koch  <wk@gnupg.org>
1924
1925         * protect.c (do_encryption): Use gcry_create_nonce instad of the
1926         obsolete WEAK_RANDOM.
1927
1928 2003-11-20  Werner Koch  <wk@gnupg.org>
1929
1930         * sexp-parse.h (snext): Don't use atoi_1 and digitp macros, so
1931         that this file is useful by other applications too.
1932
1933 2003-10-27  Werner Koch  <wk@gnupg.org>
1934
1935         * command.c (cmd_get_confirmation): New command.
1936
1937 2003-08-20  Timo Schulz  <twoaday@freakmail.de>
1938
1939         * pksign.c (do_encode_md): Allocate enough space. Cast md
1940         byte to unsigned char to prevent sign extension.
1941         
1942 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
1943
1944         * pksign.c (do_encode_md): Due to the fact pkcs#1 padding
1945         is now in Libgcrypt, use the new interface.
1946         
1947 2003-07-31  Werner Koch  <wk@gnupg.org>
1948
1949         * Makefile.am (gpg_agent_LDADD): Added INTLLIBS.
1950         (gpg_protect_tool_SOURCES): Added simple-pwquery.[ch]
1951
1952 2003-07-27  Werner Koch  <wk@gnupg.org>
1953
1954         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
1955
1956 2003-07-15  Werner Koch  <wk@gnupg.org>
1957
1958         * simple-pwquery.c, simple-pwquery.h:  Moved to ../common.
1959         * Makefile.am (gpg_protect_tool_LDADD): Add simple-pwquery.o.
1960         Removed it from xx_SOURCES.
1961
1962 2003-07-04  Werner Koch  <wk@gnupg.org>
1963
1964         * gpg-agent.c (handle_connections): Kludge to allow use of Pth 1
1965         and 2.
1966
1967 2003-06-30  Werner Koch  <wk@gnupg.org>
1968
1969         * call-scd.c (learn_status_cb): Store the serialno in PARM.
1970
1971 2003-06-26  Werner Koch  <wk@gnupg.org>
1972
1973         * call-scd.c (agent_card_serialno): Don't do a RESET anymore.
1974
1975 2003-06-25  Werner Koch  <wk@gnupg.org>
1976
1977         * command.c (cmd_scd): New.
1978         * call-scd.c (agent_card_scd): New.
1979         * divert-scd.c (divert_generic_cmd): New
1980
1981         * call-scd.c (agent_card_learn): New callback args SINFO.
1982         (learn_status_cb): Pass all other status lines to the sinfo
1983         callback.
1984         * learncard.c (release_sinfo, sinfo_cb): New.
1985         (agent_handle_learn): Pass the new cb to the learn function and
1986         pass the collected information back to the client's assuan
1987         connection.
1988
1989         * gpg-agent.c (main): Moved pth_init before gcry_check_version.
1990
1991 2003-06-24  Werner Koch  <wk@gnupg.org>
1992
1993         * gpg-agent.c (handle_connections): Adjusted for Pth 2.0
1994
1995         Adjusted for changes in the libgcrypt API. Some more fixes for the
1996         libgpg-error stuff.  
1997
1998 2003-06-04  Werner Koch  <wk@gnupg.org>
1999
2000         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
2001
2002 2003-06-03  Werner Koch  <wk@gnupg.org>
2003
2004         Changed all error codes in all files to the new libgpg-error scheme.
2005
2006         * agent.h: Include gpg-error.h and errno.h
2007         * Makefile.am: Link with libgpg-error
2008
2009         * query.c: assuan.h is now a system header.
2010         * genkey.c (agent_genkey): Fixed silly use of xmalloc by
2011         xtrymalloc.
2012
2013 2003-04-29  Werner Koch  <wk@gnupg.org>
2014
2015         * command.c (register_commands): Adjusted for new Assuan semantics.
2016
2017         * Makefile.am: Don't override LDFLAGS.
2018
2019 2002-12-04  Werner Koch  <wk@gnupg.org>
2020
2021         * gpg-agent.c: New variable config_filename.
2022         (parse_rereadable_options): New.
2023         (main): Use it here.  Add setting of default values, set
2024         config_filename.
2025         (reread_configuration): Filled with actual code.
2026
2027 2002-12-03  Werner Koch  <wk@gnupg.org>
2028
2029         * protect-tool.c (read_key): Don't run make_canonical on a NULL
2030         buffer.
2031
2032         * command.c (parse_hexstring): New.
2033         (cmd_sethash): Use it.
2034         (parse_keygrip): New.
2035         (cmd_havekey, cmd_sigkey): Use it.
2036         (cmd_passwd): New.
2037         * genkey.c (agent_protect_and_store): New.
2038         (store_key): Add arg FORCE.
2039         (agent_genkey): Pass false to this force of store_key.
2040
2041 2002-11-13  Werner Koch  <wk@gnupg.org>
2042
2043         * gpg-agent.c (main): Switch all messages to utf-8.
2044
2045         * simple-pwquery.c (agent_send_all_options): Use $GPG_TTY and
2046         stdin with ttyname.
2047
2048         * cache.c (new_data): Uiih - /sizeof d/sizeof *d/.
2049
2050 2002-11-10  Werner Koch  <wk@gnupg.org>
2051
2052         * command.c (option_handler): Fix keep_tty check.
2053
2054 2002-11-06  Werner Koch  <wk@gnupg.org>
2055
2056         * gpg-agent.c (main): Make sure we have a default ttyname.
2057         * command.c (option_handler): Check opt.keep_tty here
2058         * query.c (start_pinentry): but not anymore here.
2059
2060 2002-11-05  Werner Koch  <wk@gnupg.org>
2061
2062         * agent.h (opt,server_control_s): Move display and lc_ variables
2063         to the control struct so that they are per connection.
2064         * gpg-agent.c (agent_init_default_ctrl): New.
2065         (main): Assign those command line options to new default_* variables.
2066         Reset DISPLAY in server mode so that tehre is no implicit default.
2067         * command.c (start_command_handler): Initialize and deinitialize
2068         the control values.
2069         (option_handler): Work on the ctrl values and not on the opt.
2070         * query.c (start_pinentry): New argument CTRL to set the display
2071         connection specific.  Changed all callers to pass this value.
2072         (agent_askpin,agent_get_passphrase,agent_get_confirmation): Add
2073         CTRL arg and pass it ot start_pinentry.
2074         * command.c (cmd_get_passphrase): Pass CTRL argument.
2075         * trustlist.c (agent_marktrusted):  Add CTRL argument  
2076         * command.c (cmd_marktrusted): Pass CTRL argument
2077         * divert-scd.c (ask_for_card):  Add CTRL arg. 
2078         (divert_pksign,divert_pkdecrypt): Ditto.  Changed caller.
2079         (getpin_cb): Use OPAQUE to pass the CTRL variable.  Changed both 
2080         users.
2081         * findkey.c (unprotect): Add CTRL arg.
2082         (agent_key_from_file): Ditto.
2083
2084         * query.c (unlock_pinentry): Disconnect the pinentry so that we
2085         start a new one for each request.  This is required to support
2086         clients with different environments (e.g. X magic cookies).
2087
2088 2002-09-05  Neal H. Walfield  <neal@cs.uml.edu>
2089
2090         * gpg-agent.c (main) [USE_GNU_PTH]: No need to call
2091         assuan_set_io_func as assuan is smart.
2092
2093 2002-09-25  Werner Koch  <wk@gnupg.org>
2094
2095         * gpg-agent.c (handle_signal): Flush cache on SIGHUP.
2096         * cache.c (agent_flush_cache): New.
2097
2098         * gpg-agent.c, agent.h: Add --keep-display and --keep-tty.
2099         * query.c (start_pinentry): Implement them.  The option passing
2100         needs more thoughts.
2101
2102 2002-09-09  Werner Koch  <wk@gnupg.org>
2103
2104         * gpg-agent.c (create_private_keys_directory)
2105         (create_directories): New.
2106         (main): Try to create a home directory.
2107
2108 2002-09-04  Neal H. Walfield  <neal@g10code.de>
2109
2110         * gpg-agent.c (main): Use sigaction, not signal.
2111
2112 2002-09-03  Neal H. Walfield  <neal@g10code.de>
2113
2114         * findkey.c: Include <fcntl.h>.
2115         (agent_write_private_key): Prefer POSIX compatibity, open and
2116         fdopen, over the simplicity of GNU extensions, fopen(file, "x").
2117
2118 2002-08-22  Werner Koch  <wk@gnupg.org>
2119
2120         * query.c (agent_askpin): Provide the default desc text depending
2121         on the pininfo.  Do the basic PIN verification only when
2122         min_digits is set.
2123
2124 2002-08-21  Werner Koch  <wk@gnupg.org>
2125
2126         * query.c (agent_askpin): Hack to show the right default prompt.
2127         (agent_get_passphrase): Ditto.
2128
2129         * trans.c: Removed and replaced all usages with standard _()
2130
2131         * divert-scd.c (getpin_cb): Pass a more descritive text to the
2132         pinentry.
2133
2134         * Makefile.am: Renamed the binary protect-tool to gpg-protect-tool.
2135         * protect-tool.c: Removed the note about internal use only.
2136
2137         * gpg-agent.c (main): New option --daemon so that the program is
2138         not accidently started in the background.
2139
2140 2002-08-16  Werner Koch  <wk@gnupg.org>
2141
2142         * call-scd.c (learn_status_cb): Handle CERTINFO status.
2143         (agent_card_learn): Add args for certinfo cb.
2144         * learncard.c (release_certinfo,certinfo_cb): New.
2145         (send_cert_back): New. With factored out code from ..
2146         (agent_handle_learn): here.  Return certinfo stuff.
2147
2148 2002-07-26  Werner Koch  <wk@gnupg.org>
2149
2150         * gpg-agent.c (main): New option --ignore-cache-for-signing.
2151         * command.c (option_handler): New server option
2152         use-cache-for-signing defaulting to true.
2153         (cmd_pksign): handle global and per session option.
2154         * findkey.c (agent_key_from_file, unprotect): New arg
2155         ignore_cache.  Changed all callers.
2156         * pksign.c (agent_pksign): Likewise.
2157
2158 2002-06-29  Werner Koch  <wk@gnupg.org>
2159
2160         * query.c (start_pinentry): Use GNUPG_DERAULT_PINENTRY.
2161         * call-scd.c (start_scd): Use GNUPG_DEFAULT_SCDAEMON.
2162
2163 2002-06-28  Werner Koch  <wk@gnupg.org>
2164
2165         * protect-tool.c (export_p12_file): New.
2166         (main): New command --p12-export.
2167         * minip12.c (create_final,p12_build,compute_tag_length): New.
2168         (store_tag_length): New.
2169
2170 2002-06-27  Werner Koch  <wk@gnupg.org>
2171
2172         * minip12.c (crypt_block): Renamed from decrypt_block, add arg to
2173         allow encryption.
2174
2175         * Makefile.am (pkglib_PROGRAMS): Put protect-tool there.
2176
2177         * findkey.c (agent_write_private_key,agent_key_from_file)
2178         (agent_key_available): Use GNUPG_PRIVATE_KEYS_DIR constant.
2179         * gpg-agent.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
2180
2181         * protect-tool.c (store_private_key): New.
2182         (import_p12_file): Store the new file if requested.
2183         (main): New options --force and --store.
2184
2185         * gpg-agent.c (main): Set a global flag when running detached.
2186         * query.c (start_pinentry): Pass the list of FD to keep in the
2187         child when not running detached.
2188         * call-scd.c (start_scd): Ditto.
2189
2190 2002-06-26  Werner Koch  <wk@gnupg.org>
2191
2192         * command.c (cmd_istrusted, cmd_listtrusted, cmd_marktrusted)
2193         (cmd_pksign, cmd_pkdecrypt, cmd_genkey, cmd_get_passphrase)
2194         (cmd_learn): Print an error message for a failed operation.
2195
2196         * simple-pwquery.c, simple-pwquery.h: New.
2197         * protect-tool. (get_passphrase): New, used to get a passphrase
2198         from the agent if none was given on the command line.
2199
2200 2002-06-25  Werner Koch  <wk@gnupg.org>
2201
2202         * protect-tool.c (rsa_key_check): New.
2203         (import_p12_file): New.
2204         (main): New command --p12-import.
2205         * minip12.c, minip12.h: New.
2206
2207 2002-06-24  Werner Koch  <wk@gnupg.org>
2208
2209         * protect-tool.c (read_file): New.
2210         (read_key): Factored most code out to read_file.
2211
2212 2002-06-17  Werner Koch  <wk@gnupg.org>
2213
2214         * agent.h: Add a callback function to the pin_entry_info structure.
2215         * query.c (agent_askpin): Use the callback to check for a correct
2216         PIN.  Removed the start_err_text argument because it is not
2217         anymore needed; changed callers.
2218         * findkey.c (unprotect): Replace our own check loop by a callback.
2219         (try_unprotect_cb): New.
2220         * genkey.c (reenter_compare_cb): New.
2221         (agent_genkey): Use this callback here.  Fixed setting of the pi2
2222         variable and a segv in case of an empty PIN.
2223
2224         * divert-scd.c (getpin_cb): Removed some unused stuff and
2225         explained what we still have to change.
2226
2227 2002-06-12  Werner Koch  <wk@gnupg.org>
2228
2229         * gpg-agent.c (main): New option --disable-pth.
2230
2231 2002-06-11  Werner Koch  <wk@gnupg.org>
2232
2233         * protect-tool.c: Add command --show-keygrip
2234         (show_keygrip): New.
2235
2236 2002-05-23  Werner Koch  <wk@gnupg.org>
2237
2238         * call-scd.c: Seirialized all scdaeom access when using Pth.
2239
2240         * cache.c: Made the cache Pth-thread-safe.
2241         (agent_unlock_cache_entry): New.
2242         * findkey.c (unprotect): Unlock the returned cache value.
2243         * command.c (cmd_get_passphrase): Ditto.
2244
2245         * gpg-agent.c (main): Register pth_read/write with Assuan.
2246
2247 2002-05-22  Werner Koch  <wk@gnupg.org>
2248
2249         * query.c: Serialized all pinentry access when using Pth.
2250
2251         * gpg-agent.c (handle_signal,start_connection_thread)
2252         (handle_connections): New
2253         (main): Use the new Pth stuff to allow concurrent connections.
2254         * command.c (start_command_handler): Add new arg FD so that the
2255         fucntion can also be used for an already connected socket.
2256         * Makefile.am: Link with Pth.
2257
2258 2002-05-14  Werner Koch  <wk@gnupg.org>
2259
2260         * cache.c (housekeeping, agent_put_cache): Use our time() wrapper.
2261
2262 2002-04-26  Werner Koch  <wk@gnupg.org>
2263
2264         * cache.c (agent_put_cache): Reinitialize the creation time and
2265         the ttl when reusing a slot.
2266
2267         * call-scd.c (start_scd): Print debug messages only with debug
2268         flags set.
2269         * query.c (start_pinentry): Ditto.
2270
2271 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
2272
2273         * agent.h (agent_get_confirmation): Replace paramter prompt with
2274         two parameters ok and cancel.
2275         * query.c (agent_get_confirmation): Likewise.  Implement this.
2276         * trustlist.c (agent_marktrusted): Fix invocation of
2277         agent_get_confirmation.
2278         * divert-scd.c (ask_for_card): Likewise.
2279
2280 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
2281
2282         * agent.h (struct opt): Add members display, ttyname, ttytype,
2283         lc_ctype, and lc_messages.
2284         * gpg-agent.c (enum cmd_and_opt_values): Add oDisplay, oTTYname,
2285         oTTYtype, oLCctype, and LCmessages.
2286         (main): Handle these options.
2287         * command.c (option_handler): New function.
2288         (register_commands): Register option handler.
2289         * query.c (start_pinentry): Pass the various display and tty
2290         options to the pinentry.
2291
2292 2002-04-05  Werner Koch  <wk@gnupg.org>
2293
2294         * protect-tool.c (show_file): New.  Used as default action.
2295
2296 2002-03-28  Werner Koch  <wk@gnupg.org>
2297
2298         * divert-scd.c (encode_md_for_card): Don't do the pkcs-1 padding,
2299         the scdaemon should take care of it.
2300         (ask_for_card): Hack to not display the trailing zero.
2301
2302 2002-03-11  Werner Koch  <wk@gnupg.org>
2303
2304         * learncard.c (kpinfo_cb): Remove the content restrictions from
2305         the keyID.
2306
2307 2002-03-06  Werner Koch  <wk@gnupg.org>
2308
2309         * learncard.c: New.
2310         * divert-scd.c (ask_for_card): The serial number is binary so
2311         convert it to hex here.
2312         * findkey.c (agent_write_private_key): New.
2313         * genkey.c (store_key): And use it here.
2314         
2315         * pkdecrypt.c (agent_pkdecrypt): Changed the way the diversion is done.
2316         * divert-scd.c (divert_pkdecrypt): Changed interface and
2317         implemented it.
2318
2319 2002-03-05  Werner Koch  <wk@gnupg.org>
2320
2321         * call-scd.c (inq_needpin): New.
2322         (agent_card_pksign): Add getpin_cb args.
2323         (agent_card_pkdecrypt): New.
2324
2325 2002-03-04  Werner Koch  <wk@gnupg.org>
2326
2327         * pksign.c (agent_pksign): Changed how the diversion is done.
2328         * divert-scd.c (divert_pksign): Changed interface and implemented it.
2329         (encode_md_for_card): New.
2330         * call-scd.c (agent_card_pksign): New.
2331
2332 2002-02-28  Werner Koch  <wk@gnupg.org>
2333
2334         * pksign.c (agent_pksign): Detect whether a Smartcard is to be
2335         used and divert the operation in this case.
2336         * pkdecrypt.c (agent_pkdecrypt): Likewise
2337         * findkey.c (agent_key_from_file): Add optional arg shadow_info
2338         and have it return information about a shadowed key.
2339         * protect.c (agent_get_shadow_info): New.
2340
2341         * protect.c (snext,sskip,smatch): Moved to
2342         * sexp-parse.h: New file.
2343         * divert-scd.c: New.
2344         
2345 2002-02-27  Werner Koch  <wk@gnupg.org>
2346
2347         * protect.c (agent_shadow_key): New.
2348
2349         * command.c (cmd_learn): New command LEARN.
2350         * gpg-agent.c: New option --scdaemon-program.
2351         * call-scd.c (start_scd): New. Based on query.c
2352         * query.c: Add 2 more arguments to all uses of assuan_transact.
2353
2354 2002-02-18  Werner Koch  <wk@gnupg.org>
2355
2356         * findkey.c (unprotect): Show an error message for a bad passphrase.
2357
2358         * command.c (cmd_marktrusted): Implemented.
2359         * trustlist.c (agent_marktrusted): New.
2360         (open_list): Add APPEND arg.
2361
2362         * query.c (agent_get_confirmation): New.
2363
2364 2002-02-06  Werner Koch  <wk@gnupg.org>
2365
2366         * cache.c (housekeeping): Fixed linking in the remove case.
2367
2368 2002-02-01  Werner Koch  <wk@gnupg.org>
2369
2370         * gpg-agent.c: New option --default-cache-ttl.
2371         * cache.c (agent_put_cache): Use it.
2372         
2373         * cache.c: Add a few debug outputs.
2374
2375         * protect.c (agent_private_key_type): New.
2376         * agent.h: Add PRIVATE_KEY_ enums.
2377         * findkey.c (agent_key_from_file): Use it to decide whether we
2378         have to unprotect a key.
2379         (unprotect): Cache the passphrase.
2380         
2381         * findkey.c (agent_key_from_file,agent_key_available): The key
2382         files do now require a ".key" suffix to make a script's life
2383         easier. 
2384         * genkey.c (store_key): Ditto.
2385
2386 2002-01-31  Werner Koch  <wk@gnupg.org>
2387
2388         * genkey.c (store_key): Protect the key.
2389         (agent_genkey): Ask for the passphrase.
2390         * findkey.c (unprotect): Actually unprotect the key.
2391         * query.c (agent_askpin): Add an optional start_err_text. 
2392
2393 2002-01-30  Werner Koch  <wk@gnupg.org>
2394
2395         * protect.c: New.  
2396         (hash_passphrase): Based on the GnuPG 1.0.6 version.
2397         * protect-tool.c: New
2398
2399 2002-01-29  Werner Koch  <wk@gnupg.org>
2400
2401         * findkey.c (agent_key_available): New.
2402         * command.c (cmd_havekey): New.
2403         (register_commands): And register new command.
2404
2405 2002-01-20  Werner Koch  <wk@gnupg.org>
2406
2407         * command.c (cmd_get_passphrase): Remove the plus signs.
2408
2409         * query.c (start_pinentry): Send no-grab option to pinentry
2410         * gpg-agent.c (main): Move variable grab as no_grab to agent.h.
2411
2412 2002-01-19  Werner Koch  <wk@gnupg.org>
2413
2414         * gpg-agent.c (main): Disable core dumps.
2415
2416         * cache.c: New.
2417         * command.c (cmd_get_passphrase): Use the cache.
2418         (cmd_clear_passphrase): Ditto.
2419
2420         * gpg-agent.c:  Removed unused cruft and implement the socket
2421         based server.
2422         (my_strusage): Take bug report address from configure.ac.
2423         * command.c (start_command_handler): Add an argument to start as
2424         regular server.
2425         (start_command_handler): Enable Assuan logging.
2426
2427 2002-01-15  Werner Koch  <wk@gnupg.org>
2428
2429         * trustlist.c: New.
2430         * command.c (cmd_istrusted, cmd_listtrusted, cmd_marktrusted): New.
2431
2432 2002-01-07  Werner Koch  <wk@gnupg.org>
2433
2434         * genkey.c: Store the secret part and return the public part.
2435
2436 2002-01-03  Werner Koch  <wk@gnupg.org>
2437
2438         * command.c (cmd_get_passphrase): New.
2439         (cmd_clear_passphrase): New.
2440         * query.c (agent_get_passphrase): New.
2441
2442 2002-01-02  Werner Koch  <wk@gnupg.org>
2443
2444         * genkey.c: New.
2445         * command.c (cmd_genkey): New.
2446
2447         * command.c (rc_to_assuan_status): Removed and changed all callers
2448         to use map_to_assuan_status.
2449         
2450 2001-12-19  Werner Koch  <wk@gnupg.org>
2451
2452         * keyformat.txt: New. 
2453
2454 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
2455
2456         * query.c (start_pinentry): Add new argument to assuan_pipe_connect.
2457
2458 2001-12-18  Werner Koch  <wk@gnupg.org>
2459
2460         * Makefile.am: Use LIBGCRYPT macros
2461
2462 2001-12-14  Werner Koch  <wk@gnupg.org>
2463
2464         * gpg-agent.c (main): New option --batch.  New option --debug-wait
2465         n, so that it is possible to attach gdb when used in server mode.
2466         * query.c (agent_askpin): Don't ask in batch mode.
2467
2468         * command.c: Removed the conversion macros as they are now in
2469         ../common/util.h.
2470
2471 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
2472
2473         * query.c (LINELENGTH): Removed.
2474         (agent_askpin): Use ASSUAN_LINELENGTH, not LINELENGTH.
2475
2476 2001-11-19  Werner Koch  <wk@gnupg.org>
2477
2478         * gpg-agent.c: Removed all GUI code, removed code for old
2479         protocol.  New code to use the Assuan protocol as a server and
2480         also to communicate with a new ask-passphrase utility.
2481
2482 2000-11-22  Werner Koch  <wk@gnupg.org>
2483
2484         * gpg-agent.c (main): csh support by Dan Winship, new options --sh
2485         and --csh and set default by consulting $SHELL.
2486
2487 Mon Aug 21 17:59:17 CEST 2000  Werner Koch  <wk@openit.de>
2488
2489         * gpg-agent.c (passphrase_dialog): Cleanup the window and added the
2490         user supplied text to the window.
2491         (main): Fixed segv in gtk_init when used without a command to start.
2492
2493         * gpg-agent.c: --flush option.
2494         (req_flush): New.
2495         (req_clear_passphrase): Implemented.
2496
2497 Fri Aug 18 14:27:14 CEST 2000  Werner Koch  <wk@openit.de>
2498
2499         * gpg-agent.c: New.
2500         * Makefile.am: New.
2501
2502
2503  Copyright 2001, 2002, 2003, 2004, 2005,
2504            2007, 2008, 2009 Free Software Foundation, Inc.
2505
2506  This file is free software; as a special exception the author gives
2507  unlimited permission to copy and/or distribute it, with or without
2508  modifications, as long as this notice is preserved.
2509
2510  This file is distributed in the hope that it will be useful, but
2511  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
2512  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.