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