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