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