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