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