To support a Password and PIN XAuth combo, additionally support multiple
prompts for different credential types.
callback_cred_t *cb;
/**
- * Already prompted for password?
+ * Kind of secret we recently prompted
*/
- bool prompted;
+ shared_key_type_t prompted;
/**
* Path to ssh-agent socket
shared_key_t *shared;
char *label, *pwd;
- if (this->prompted)
+ if (type == this->prompted)
{
return NULL;
}
case SHARED_PRIVATE_KEY_PASS:
label = "Password: ";
break;
+ case SHARED_PIN:
+ label = "PIN: ";
+ break;
default:
return NULL;
}
{
return NULL;
}
- this->prompted = TRUE;
+ this->prompted = type;
if (match_me)
{
*match_me = ID_MATCH_PERFECT;
.destroy = _destroy,
},
.creds = mem_cred_create(),
+ .prompted = SHARED_ANY,
);
this->cb = callback_cred_create_shared((void*)callback_shared, this);