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