feat(net): implement all of GruntLogin::NextSecurityState

This commit is contained in:
fallenoak 2025-09-30 21:15:38 -05:00
parent 8e1df61749
commit cb986335f6
No known key found for this signature in database
GPG Key ID: 7628F8E61AEA070D
2 changed files with 29 additions and 2 deletions

View File

@ -137,6 +137,12 @@ void GruntLogin::Logon(const char* loginServer, const char* loginPortal) {
// TODO
this->m_pinEnabled = false;
this->m_matrixEnabled = false;
this->m_tokenEnabled = false;
// TODO
this->m_loginResponse->UpdateLoginStatus(
LOGIN_STATE_CONNECTING,
LOGIN_OK,
@ -274,8 +280,25 @@ void GruntLogin::LogonResult(Grunt::Result result, const uint8_t* sessionKey, ui
}
LOGIN_STATE GruntLogin::NextSecurityState(LOGIN_STATE state) {
// TODO
return LOGIN_STATE_CHECKINGVERSIONS;
switch (state) {
case LOGIN_STATE_FIRST_SECURITY:
if (this->m_pinEnabled) {
return LOGIN_STATE_PIN;
}
case LOGIN_STATE_PIN:
if (this->m_matrixEnabled) {
return LOGIN_STATE_MATRIX;
}
case LOGIN_STATE_MATRIX:
if (this->m_tokenEnabled) {
return LOGIN_STATE_TOKEN;
}
default:
return LOGIN_STATE_CHECKINGVERSIONS;
}
}
void GruntLogin::ProveVersion(const uint8_t* versionChecksum) {

View File

@ -9,6 +9,10 @@ class GruntLogin : public Login {
public:
// Member variables
uint8_t m_versionChallenge[LOGIN_VERSION_CHALLENGE_LEN];
uint8_t m_pinEnabled;
uint8_t m_matrixEnabled;
uint8_t m_tokenEnabled;
uint8_t m_tokenRequired;
Grunt::ClientLink* m_clientLink = nullptr;
// Virtual member functions