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