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