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