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