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