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