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