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