mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-10 13:04:23 +01:00
* g10.c, options.h: New option --gpg-agent-info
* passphrase.c (agent_open): Let it override the environment info. * seckey-cert.c (check_secret_key): Always try 3 times when the agent is enabled. * options.skel: Describe --use-agent.
This commit is contained in:
parent
441eb085c9
commit
806a4fa16e
@ -1,3 +1,11 @@
|
|||||||
|
2002-01-26 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* g10.c, options.h: New option --gpg-agent-info
|
||||||
|
* passphrase.c (agent_open): Let it override the environment info.
|
||||||
|
* seckey-cert.c (check_secret_key): Always try 3 times when the
|
||||||
|
agent is enabled.
|
||||||
|
* options.skel: Describe --use-agent.
|
||||||
|
|
||||||
2002-01-24 David Shaw <dshaw@jabberwocky.com>
|
2002-01-24 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
* pubkey-enc.c (is_algo_in_prefs, get_it): Only check preferences
|
* pubkey-enc.c (is_algo_in_prefs, get_it): Only check preferences
|
||||||
|
@ -247,6 +247,7 @@ enum cmd_and_opt_values { aNull = 0,
|
|||||||
oAutoKeyRetrieve,
|
oAutoKeyRetrieve,
|
||||||
oNoAutoKeyRetrieve,
|
oNoAutoKeyRetrieve,
|
||||||
oUseAgent,
|
oUseAgent,
|
||||||
|
oGpgAgentInfo,
|
||||||
oMergeOnly,
|
oMergeOnly,
|
||||||
oTryAllSecrets,
|
oTryAllSecrets,
|
||||||
oTrustedKey,
|
oTrustedKey,
|
||||||
@ -358,6 +359,7 @@ static ARGPARSE_OPTS opts[] = {
|
|||||||
{ oDryRun, "dry-run", 0, N_("do not make any changes") },
|
{ oDryRun, "dry-run", 0, N_("do not make any changes") },
|
||||||
/*{ oInteractive, "interactive", 0, N_("prompt before overwriting") }, */
|
/*{ oInteractive, "interactive", 0, N_("prompt before overwriting") }, */
|
||||||
{ oUseAgent, "use-agent",0, N_("use the gpg-agent")},
|
{ oUseAgent, "use-agent",0, N_("use the gpg-agent")},
|
||||||
|
{ oGpgAgentInfo, "gpg-agent-info",2, "@"},
|
||||||
{ oBatch, "batch", 0, N_("batch mode: never ask")},
|
{ oBatch, "batch", 0, N_("batch mode: never ask")},
|
||||||
{ oAnswerYes, "yes", 0, N_("assume yes on most questions")},
|
{ oAnswerYes, "yes", 0, N_("assume yes on most questions")},
|
||||||
{ oAnswerNo, "no", 0, N_("assume no on most questions")},
|
{ oAnswerNo, "no", 0, N_("assume no on most questions")},
|
||||||
@ -952,6 +954,7 @@ main( int argc, char **argv )
|
|||||||
not_implemented("use-agent");
|
not_implemented("use-agent");
|
||||||
#endif /* __riscos__ */
|
#endif /* __riscos__ */
|
||||||
break;
|
break;
|
||||||
|
case oGpgAgentInfo: opt.gpg_agent_info = pargs.r.ret_str; break;
|
||||||
case oAnswerYes: opt.answer_yes = 1; break;
|
case oAnswerYes: opt.answer_yes = 1; break;
|
||||||
case oAnswerNo: opt.answer_no = 1; break;
|
case oAnswerNo: opt.answer_no = 1; break;
|
||||||
case oKeyring: append_to_strlist( &nrings, pargs.r.ret_str); break;
|
case oKeyring: append_to_strlist( &nrings, pargs.r.ret_str); break;
|
||||||
|
@ -133,6 +133,7 @@ struct {
|
|||||||
const char *override_session_key;
|
const char *override_session_key;
|
||||||
int show_session_key;
|
int show_session_key;
|
||||||
int use_agent;
|
int use_agent;
|
||||||
|
const char *gpg_agent_info;
|
||||||
int merge_only;
|
int merge_only;
|
||||||
int try_all_secrets;
|
int try_all_secrets;
|
||||||
int no_expensive_trust_checks;
|
int no_expensive_trust_checks;
|
||||||
|
@ -180,3 +180,27 @@ lock-once
|
|||||||
#
|
#
|
||||||
# Use your MIME handler to view photos:
|
# Use your MIME handler to view photos:
|
||||||
# photo-viewer "metamail -q -d -b -c image/jpeg -s 'KeyID 0x%k' -f GnuPG"
|
# photo-viewer "metamail -q -d -b -c image/jpeg -s 'KeyID 0x%k' -f GnuPG"
|
||||||
|
|
||||||
|
|
||||||
|
# Passphrase agent
|
||||||
|
#
|
||||||
|
# We support the old experimental passphrase agent protocol as well
|
||||||
|
# as the new Assuan based one (currently available in the "newpg" package
|
||||||
|
# at ftp.gnupg.org/gcrypt/alpha/aegypten/). To make use of the agent, you have
|
||||||
|
# to run an agent as daemon and use the option
|
||||||
|
#
|
||||||
|
# use-agent
|
||||||
|
#
|
||||||
|
# which tries to use the agent but will fallback to the regular mode
|
||||||
|
# if there is a problem connecting to the agent. The normal way to
|
||||||
|
# locate the agent is by looking at the environment variable
|
||||||
|
# GPG_AGENT_INFO which should have been set during gpg-agent startup.
|
||||||
|
# In certain situations the use of this variable is not possible, thus
|
||||||
|
# the option
|
||||||
|
#
|
||||||
|
# --gpg-agent-info=<path>:<pid>:1
|
||||||
|
#
|
||||||
|
# may be used to override it.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
@ -368,13 +368,19 @@ agent_open (int *ret_prot)
|
|||||||
size_t len;
|
size_t len;
|
||||||
int prot;
|
int prot;
|
||||||
|
|
||||||
infostr = getenv ( "GPG_AGENT_INFO" );
|
if (opt.gpg_agent_info)
|
||||||
if ( !infostr ) {
|
infostr = m_strdup (opt.gpg_agent_info);
|
||||||
log_error (_("gpg-agent is not available in this session\n"));
|
else
|
||||||
opt.use_agent = 0;
|
{
|
||||||
return -1;
|
infostr = getenv ( "GPG_AGENT_INFO" );
|
||||||
}
|
if ( !infostr ) {
|
||||||
infostr = m_strdup ( infostr );
|
log_error (_("gpg-agent is not available in this session\n"));
|
||||||
|
opt.use_agent = 0;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
infostr = m_strdup ( infostr );
|
||||||
|
}
|
||||||
|
|
||||||
if ( !(p = strchr ( infostr, ':')) || p == infostr
|
if ( !(p = strchr ( infostr, ':')) || p == infostr
|
||||||
|| (p-infostr)+1 >= sizeof client_addr.sun_path ) {
|
|| (p-infostr)+1 >= sizeof client_addr.sun_path ) {
|
||||||
log_error( _("malformed GPG_AGENT_INFO environment variable\n"));
|
log_error( _("malformed GPG_AGENT_INFO environment variable\n"));
|
||||||
|
@ -178,7 +178,7 @@ check_secret_key( PKT_secret_key *sk, int n )
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
if( n < 1 )
|
if( n < 1 )
|
||||||
n = opt.batch? 1 : 3; /* use the default value */
|
n = (opt.batch && !opt.use_agent)? 1 : 3; /* use the default value */
|
||||||
|
|
||||||
for(i=0; i < n && rc == G10ERR_BAD_PASS; i++ ) {
|
for(i=0; i < n && rc == G10ERR_BAD_PASS; i++ ) {
|
||||||
const char *tryagain = NULL;
|
const char *tryagain = NULL;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user