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