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