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