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