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