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