Make sure getpass() is available

It's not on Android for example.
This commit is contained in:
Tobias Brunner 2014-05-29 12:25:21 +02:00
parent 95d13fcc3f
commit b2b54bd71d
3 changed files with 9 additions and 3 deletions

View File

@ -72,7 +72,7 @@ static shared_key_t* callback_shared(private_cmd_creds_t *this,
id_match_t *match_me, id_match_t *match_other)
{
shared_key_t *shared;
char *label, *pwd;
char *label, *pwd = NULL;
if (type == this->prompted)
{
@ -95,7 +95,9 @@ static shared_key_t* callback_shared(private_cmd_creds_t *this,
default:
return NULL;
}
#ifdef HAVE_GETPASS
pwd = getpass(label);
#endif
if (!pwd || strlen(pwd) == 0)
{
return NULL;

View File

@ -165,7 +165,7 @@ static shared_key_t* cb(void *data, shared_key_type_t type,
identification_t *me, identification_t *other,
id_match_t *match_me, id_match_t *match_other)
{
char buf[64], *label, *secret;
char buf[64], *label, *secret = NULL;
switch (type)
{
@ -179,7 +179,9 @@ static shared_key_t* cb(void *data, shared_key_type_t type,
return NULL;
}
snprintf(buf, sizeof(buf), "%s: ", label);
#ifdef HAVE_GETPASS
secret = getpass(buf);
#endif
if (secret)
{
if (match_me)

View File

@ -144,13 +144,15 @@ CALLBACK(password_cb, shared_key_t*,
identification_t *me, identification_t *other,
id_match_t *match_me, id_match_t *match_other)
{
char *pwd;
char *pwd = NULL;
if (type != SHARED_PRIVATE_KEY_PASS)
{
return NULL;
}
#ifdef HAVE_GETPASS
pwd = getpass(prompt);
#endif
if (!pwd || strlen(pwd) == 0)
{
return NULL;