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