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