mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
agent/
* gpg-agent.c: New option --pinentry-touch-file. (get_agent_socket_name): New. * agent.h (opt): Add pinentry_touch_file. * call-pinentry.c (start_pinentry): Send new option to the pinentry.
This commit is contained in:
parent
b46c93fb10
commit
5240d014f8
@ -1,3 +1,11 @@
|
|||||||
|
2007-02-14 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* gpg-agent.c: New option --pinentry-touch-file.
|
||||||
|
(get_agent_socket_name): New.
|
||||||
|
* agent.h (opt): Add pinentry_touch_file.
|
||||||
|
* call-pinentry.c (start_pinentry): Send new option to the
|
||||||
|
pinentry.
|
||||||
|
|
||||||
2007-01-31 Moritz Schulte <moritz@g10code.com> (wk)
|
2007-01-31 Moritz Schulte <moritz@g10code.com> (wk)
|
||||||
|
|
||||||
* command-ssh.c (stream_read_string): Initialize LENGTH to zero.
|
* command-ssh.c (stream_read_string): Initialize LENGTH to zero.
|
||||||
|
@ -72,6 +72,10 @@ struct
|
|||||||
int disable_scdaemon; /* Never use the SCdaemon. */
|
int disable_scdaemon; /* Never use the SCdaemon. */
|
||||||
int no_grab; /* Don't let the pinentry grab the keyboard */
|
int no_grab; /* Don't let the pinentry grab the keyboard */
|
||||||
|
|
||||||
|
/* The name of the file pinentry shall tocuh before exiting. If
|
||||||
|
this is not set the filoe name of the standard socket is used. */
|
||||||
|
const char *pinentry_touch_file;
|
||||||
|
|
||||||
/* The default and maximum TTL of cache entries. */
|
/* The default and maximum TTL of cache entries. */
|
||||||
unsigned long def_cache_ttl; /* Default. */
|
unsigned long def_cache_ttl; /* Default. */
|
||||||
unsigned long def_cache_ttl_ssh; /* for SSH. */
|
unsigned long def_cache_ttl_ssh; /* for SSH. */
|
||||||
@ -186,6 +190,7 @@ cache_mode_t;
|
|||||||
|
|
||||||
/*-- gpg-agent.c --*/
|
/*-- gpg-agent.c --*/
|
||||||
void agent_exit (int rc) JNLIB_GCC_A_NR; /* Also implemented in other tools */
|
void agent_exit (int rc) JNLIB_GCC_A_NR; /* Also implemented in other tools */
|
||||||
|
const char *get_agent_socket_name (void);
|
||||||
|
|
||||||
/*-- command.c --*/
|
/*-- command.c --*/
|
||||||
gpg_error_t agent_write_status (ctrl_t ctrl, const char *keyword, ...);
|
gpg_error_t agent_write_status (ctrl_t ctrl, const char *keyword, ...);
|
||||||
|
@ -181,6 +181,7 @@ start_pinentry (ctrl_t ctrl)
|
|||||||
int no_close_list[3];
|
int no_close_list[3];
|
||||||
int i;
|
int i;
|
||||||
pth_event_t evt;
|
pth_event_t evt;
|
||||||
|
const char *tmpstr;
|
||||||
|
|
||||||
evt = pth_event (PTH_EVENT_TIME, pth_timeout (LOCK_TIMEOUT, 0));
|
evt = pth_event (PTH_EVENT_TIME, pth_timeout (LOCK_TIMEOUT, 0));
|
||||||
if (!pth_mutex_acquire (&entry_lock, 0, evt))
|
if (!pth_mutex_acquire (&entry_lock, 0, evt))
|
||||||
@ -297,6 +298,30 @@ start_pinentry (ctrl_t ctrl)
|
|||||||
if (rc)
|
if (rc)
|
||||||
return unlock_pinentry (rc);
|
return unlock_pinentry (rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Tell the pinentry the name of a file it shall touch after having
|
||||||
|
messed with the tty. This is optional and only supported by
|
||||||
|
newer pinentries and thus we do no error checking. */
|
||||||
|
tmpstr = opt.pinentry_touch_file;
|
||||||
|
if (tmpstr && !strcmp (tmpstr, "/dev/null"))
|
||||||
|
tmpstr = NULL;
|
||||||
|
else if (!tmpstr)
|
||||||
|
tmpstr = get_agent_socket_name ();
|
||||||
|
if (tmpstr)
|
||||||
|
{
|
||||||
|
char *optstr;
|
||||||
|
|
||||||
|
if (asprintf (&optstr, "OPTION touch-file=%s", tmpstr ) < 0 )
|
||||||
|
;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
assuan_transact (entry_ctx, optstr, NULL, NULL, NULL, NULL, NULL,
|
||||||
|
NULL);
|
||||||
|
free (optstr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,6 +78,7 @@ enum cmd_and_opt_values
|
|||||||
oBatch,
|
oBatch,
|
||||||
|
|
||||||
oPinentryProgram,
|
oPinentryProgram,
|
||||||
|
oPinentryTouchFile,
|
||||||
oDisplay,
|
oDisplay,
|
||||||
oTTYname,
|
oTTYname,
|
||||||
oTTYtype,
|
oTTYtype,
|
||||||
@ -131,6 +132,7 @@ static ARGPARSE_OPTS opts[] = {
|
|||||||
|
|
||||||
{ oPinentryProgram, "pinentry-program", 2 ,
|
{ oPinentryProgram, "pinentry-program", 2 ,
|
||||||
N_("|PGM|use PGM as the PIN-Entry program") },
|
N_("|PGM|use PGM as the PIN-Entry program") },
|
||||||
|
{ oPinentryTouchFile, "pinentry-touch-file", 2 , "@" },
|
||||||
{ oScdaemonProgram, "scdaemon-program", 2 ,
|
{ oScdaemonProgram, "scdaemon-program", 2 ,
|
||||||
N_("|PGM|use PGM as the SCdaemon program") },
|
N_("|PGM|use PGM as the SCdaemon program") },
|
||||||
{ oDisableScdaemon, "disable-scdaemon", 0, N_("do not use the SCdaemon") },
|
{ oDisableScdaemon, "disable-scdaemon", 0, N_("do not use the SCdaemon") },
|
||||||
@ -401,6 +403,7 @@ parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread)
|
|||||||
opt.debug = 0;
|
opt.debug = 0;
|
||||||
opt.no_grab = 0;
|
opt.no_grab = 0;
|
||||||
opt.pinentry_program = NULL;
|
opt.pinentry_program = NULL;
|
||||||
|
opt.pinentry_touch_file = NULL;
|
||||||
opt.scdaemon_program = NULL;
|
opt.scdaemon_program = NULL;
|
||||||
opt.def_cache_ttl = DEFAULT_CACHE_TTL;
|
opt.def_cache_ttl = DEFAULT_CACHE_TTL;
|
||||||
opt.def_cache_ttl_ssh = DEFAULT_CACHE_TTL_SSH;
|
opt.def_cache_ttl_ssh = DEFAULT_CACHE_TTL_SSH;
|
||||||
@ -437,6 +440,7 @@ parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread)
|
|||||||
case oNoGrab: opt.no_grab = 1; break;
|
case oNoGrab: opt.no_grab = 1; break;
|
||||||
|
|
||||||
case oPinentryProgram: opt.pinentry_program = pargs->r.ret_str; break;
|
case oPinentryProgram: opt.pinentry_program = pargs->r.ret_str; break;
|
||||||
|
case oPinentryTouchFile: opt.pinentry_touch_file = pargs->r.ret_str; break;
|
||||||
case oScdaemonProgram: opt.scdaemon_program = pargs->r.ret_str; break;
|
case oScdaemonProgram: opt.scdaemon_program = pargs->r.ret_str; break;
|
||||||
case oDisableScdaemon: opt.disable_scdaemon = 1; break;
|
case oDisableScdaemon: opt.disable_scdaemon = 1; break;
|
||||||
|
|
||||||
@ -1186,6 +1190,16 @@ reread_configuration (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Return the file name of the socket we are using for native
|
||||||
|
requests. */
|
||||||
|
const char *
|
||||||
|
get_agent_socket_name (void)
|
||||||
|
{
|
||||||
|
const char *s = socket_name;
|
||||||
|
|
||||||
|
return (s && *s)? s : NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Create a name for the socket. With USE_STANDARD_SOCKET given as
|
/* Create a name for the socket. With USE_STANDARD_SOCKET given as
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2007-02-14 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* gpg-agent.texi (Agent Options): Doc --pinentry-touch-file.
|
||||||
|
|
||||||
2007-02-05 Werner Koch <wk@g10code.com>
|
2007-02-05 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* debugging.texi (Common Problems): Tell how to export a private
|
* debugging.texi (Common Problems): Tell how to export a private
|
||||||
|
@ -344,6 +344,17 @@ shorter than this value a warning will be displayed. Defaults to 8.
|
|||||||
Use program @var{filename} as the PIN entry. The default is installation
|
Use program @var{filename} as the PIN entry. The default is installation
|
||||||
dependend and can be shown with the @code{--version} command.
|
dependend and can be shown with the @code{--version} command.
|
||||||
|
|
||||||
|
@item --pinentry-touch-file @var{filename}
|
||||||
|
@opindex pinentry-touch-file
|
||||||
|
By default the file name of the socket gpg-agent is listening for
|
||||||
|
requests is passed to Pinentry, so that it can touch that file before
|
||||||
|
exiting (it does this only in curses mode). This option changes the
|
||||||
|
file passed to Pinentry to @var{filename}. The special name
|
||||||
|
@code{/dev/null} may be used to completely disable this feature. Note
|
||||||
|
that Pinentry will not create that file, it will only change the
|
||||||
|
modification and access time.
|
||||||
|
|
||||||
|
|
||||||
@item --scdaemon-program @var{filename}
|
@item --scdaemon-program @var{filename}
|
||||||
@opindex scdaemon-program
|
@opindex scdaemon-program
|
||||||
Use program @var{filename} as the Smartcard daemon. The default is
|
Use program @var{filename} as the Smartcard daemon. The default is
|
||||||
|
@ -311,7 +311,7 @@ used by @command{gpgsm}.
|
|||||||
@subsection The DINSIG card application ``dinsig''
|
@subsection The DINSIG card application ``dinsig''
|
||||||
|
|
||||||
This is an application as described in the German draft standard
|
This is an application as described in the German draft standard
|
||||||
@emph{DIN V 66291-1}. It is intended to be used by cards supporteing
|
@emph{DIN V 66291-1}. It is intended to be used by cards supporting
|
||||||
the German signature law and its bylaws (SigG and SigV).
|
the German signature law and its bylaws (SigG and SigV).
|
||||||
|
|
||||||
@node PKCS#15 Card
|
@node PKCS#15 Card
|
||||||
|
Loading…
x
Reference in New Issue
Block a user