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