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