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