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