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