Merge pull request #801 from ejohnstown/kb-fix

KeyboardInteractive Fix
pull/802/head
Andrew Hutchings 2025-05-06 07:20:50 +01:00 committed by GitHub
commit ee9bc3b6fd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 4 additions and 38 deletions

View File

@ -7913,11 +7913,6 @@ static int DoUserAuthSuccess(WOLFSSH* ssh,
return ret;
}
#ifdef WOLFSSH_KEYBOARD_INTERACTIVE
if (ssh->serverState == SERVER_USERAUTH_ACCEPT_KEYBOARD)
ssh->serverState = SERVER_USERAUTH_ACCEPT_KEYBOARD_DONE;
else
#endif
ssh->serverState = SERVER_USERAUTH_ACCEPT_DONE;
WLOG(WS_LOG_DEBUG, "Leaving DoUserAuthSuccess(), ret = %d", ret);
@ -7971,7 +7966,6 @@ static int DoUserAuthInfoRequest(WOLFSSH* ssh, byte* buf, word32 len,
if (ssh == NULL || buf == NULL || len == 0 || idx == NULL)
ret = WS_BAD_ARGUMENT;
if (ret == WS_SUCCESS) {
begin = *idx;
ret = GetStringAlloc(ssh->ctx->heap, (char**)&authName, buf, len,
@ -8046,8 +8040,9 @@ static int DoUserAuthInfoRequest(WOLFSSH* ssh, byte* buf, word32 len,
WFREE(language, ssh->ctx->heap, DYNTYPE_STRING);
}
if (ret == WS_SUCCESS)
ssh->serverState = SERVER_USERAUTH_ACCEPT_KEYBOARD;
if (ret == WS_SUCCESS) {
ret = SendUserAuthKeyboardResponse(ssh);
}
WLOG(WS_LOG_DEBUG, "Leaving DoUserAuthInfoRequest(), ret = %d", ret);

View File

@ -890,30 +890,6 @@ int wolfSSH_connect(WOLFSSH* ssh)
return WS_FATAL_ERROR;
}
}
#ifdef WOLFSSH_KEYBOARD_INTERACTIVE
while (ssh->serverState == SERVER_USERAUTH_ACCEPT_KEYBOARD) {
if ( (ssh->error = SendUserAuthKeyboardResponse(ssh)) <
WS_SUCCESS) {
WLOG(WS_LOG_DEBUG, connectError, "CLIENT_USERAUTH_SENT",
ssh->error);
return WS_FATAL_ERROR;
}
ssh->serverState = SERVER_USERAUTH_ACCEPT_KEYBOARD_NEXT;
while (
(ssh->serverState < SERVER_USERAUTH_ACCEPT_KEYBOARD_DONE) &&
(ssh->serverState != SERVER_USERAUTH_ACCEPT_KEYBOARD) &&
(ssh->serverState != SERVER_USERAUTH_ACCEPT_DONE)) {
if (DoReceive(ssh) < WS_SUCCESS) {
WLOG(WS_LOG_DEBUG, connectError,
"CLIENT_USERAUTH_SENT", ssh->error);
return WS_FATAL_ERROR;
}
}
}
#endif
ssh->connectState = CONNECT_SERVER_USERAUTH_ACCEPT_DONE;
WLOG(WS_LOG_DEBUG, connectState, "SERVER_USERAUTH_ACCEPT_DONE");
NO_BREAK;

View File

@ -1164,11 +1164,6 @@ enum ServerStates {
SERVER_KEXINIT_DONE,
SERVER_USERAUTH_REQUEST_DONE,
SERVER_USERAUTH_ACCEPT_DONE,
#ifdef WOLFSSH_KEYBOARD_INTERACTIVE
SERVER_USERAUTH_ACCEPT_KEYBOARD,
SERVER_USERAUTH_ACCEPT_KEYBOARD_NEXT,
SERVER_USERAUTH_ACCEPT_KEYBOARD_DONE,
#endif
SERVER_CHANNEL_OPEN_DONE,
SERVER_DONE
};