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