}
}
+void RemoteClient::resetChosenMech()
+{
+ if (chosen_mech == AUTH_MECHANISM_SRP) {
+ srp_verifier_delete((SRPVerifier *) auth_data);
+ auth_data = nullptr;
+ }
+ chosen_mech = AUTH_MECHANISM_NONE;
+}
+
u64 RemoteClient::uptime() const
{
return porting::getTimeS() - m_connection_time;
u32 allowed_auth_mechs = 0;
u32 allowed_sudo_mechs = 0;
+ void resetChosenMech();
+
bool isSudoMechAllowed(AuthMechanism mech)
{ return allowed_sudo_mechs & mech; }
bool isMechAllowed(AuthMechanism mech)
<< std::endl;
if (wantSudo) {
DenySudoAccess(peer_id);
+ client->resetChosenMech();
return;
}
<< " tried to change their password, but supplied wrong"
<< " (SRP) password for authentication." << std::endl;
DenySudoAccess(peer_id);
+ client->resetChosenMech();
return;
}