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