Skip to content

Commit ee9bc3b

Browse files
authored
Merge pull request #801 from ejohnstown/kb-fix
KeyboardInteractive Fix
2 parents 24b7629 + 56189a3 commit ee9bc3b

File tree

3 files changed

+4
-38
lines changed

3 files changed

+4
-38
lines changed

src/internal.c

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7913,12 +7913,7 @@ static int DoUserAuthSuccess(WOLFSSH* ssh,
79137913
return ret;
79147914
}
79157915

7916-
#ifdef WOLFSSH_KEYBOARD_INTERACTIVE
7917-
if (ssh->serverState == SERVER_USERAUTH_ACCEPT_KEYBOARD)
7918-
ssh->serverState = SERVER_USERAUTH_ACCEPT_KEYBOARD_DONE;
7919-
else
7920-
#endif
7921-
ssh->serverState = SERVER_USERAUTH_ACCEPT_DONE;
7916+
ssh->serverState = SERVER_USERAUTH_ACCEPT_DONE;
79227917

79237918
WLOG(WS_LOG_DEBUG, "Leaving DoUserAuthSuccess(), ret = %d", ret);
79247919
return ret;
@@ -7971,7 +7966,6 @@ static int DoUserAuthInfoRequest(WOLFSSH* ssh, byte* buf, word32 len,
79717966
if (ssh == NULL || buf == NULL || len == 0 || idx == NULL)
79727967
ret = WS_BAD_ARGUMENT;
79737968

7974-
79757969
if (ret == WS_SUCCESS) {
79767970
begin = *idx;
79777971
ret = GetStringAlloc(ssh->ctx->heap, (char**)&authName, buf, len,
@@ -8046,8 +8040,9 @@ static int DoUserAuthInfoRequest(WOLFSSH* ssh, byte* buf, word32 len,
80468040
WFREE(language, ssh->ctx->heap, DYNTYPE_STRING);
80478041
}
80488042

8049-
if (ret == WS_SUCCESS)
8050-
ssh->serverState = SERVER_USERAUTH_ACCEPT_KEYBOARD;
8043+
if (ret == WS_SUCCESS) {
8044+
ret = SendUserAuthKeyboardResponse(ssh);
8045+
}
80518046

80528047
WLOG(WS_LOG_DEBUG, "Leaving DoUserAuthInfoRequest(), ret = %d", ret);
80538048

src/ssh.c

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -890,30 +890,6 @@ int wolfSSH_connect(WOLFSSH* ssh)
890890
return WS_FATAL_ERROR;
891891
}
892892
}
893-
894-
#ifdef WOLFSSH_KEYBOARD_INTERACTIVE
895-
while (ssh->serverState == SERVER_USERAUTH_ACCEPT_KEYBOARD) {
896-
if ( (ssh->error = SendUserAuthKeyboardResponse(ssh)) <
897-
WS_SUCCESS) {
898-
WLOG(WS_LOG_DEBUG, connectError, "CLIENT_USERAUTH_SENT",
899-
ssh->error);
900-
return WS_FATAL_ERROR;
901-
}
902-
ssh->serverState = SERVER_USERAUTH_ACCEPT_KEYBOARD_NEXT;
903-
while (
904-
(ssh->serverState < SERVER_USERAUTH_ACCEPT_KEYBOARD_DONE) &&
905-
(ssh->serverState != SERVER_USERAUTH_ACCEPT_KEYBOARD) &&
906-
(ssh->serverState != SERVER_USERAUTH_ACCEPT_DONE)) {
907-
908-
if (DoReceive(ssh) < WS_SUCCESS) {
909-
WLOG(WS_LOG_DEBUG, connectError,
910-
"CLIENT_USERAUTH_SENT", ssh->error);
911-
return WS_FATAL_ERROR;
912-
}
913-
}
914-
}
915-
#endif
916-
917893
ssh->connectState = CONNECT_SERVER_USERAUTH_ACCEPT_DONE;
918894
WLOG(WS_LOG_DEBUG, connectState, "SERVER_USERAUTH_ACCEPT_DONE");
919895
NO_BREAK;

wolfssh/internal.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1164,11 +1164,6 @@ enum ServerStates {
11641164
SERVER_KEXINIT_DONE,
11651165
SERVER_USERAUTH_REQUEST_DONE,
11661166
SERVER_USERAUTH_ACCEPT_DONE,
1167-
#ifdef WOLFSSH_KEYBOARD_INTERACTIVE
1168-
SERVER_USERAUTH_ACCEPT_KEYBOARD,
1169-
SERVER_USERAUTH_ACCEPT_KEYBOARD_NEXT,
1170-
SERVER_USERAUTH_ACCEPT_KEYBOARD_DONE,
1171-
#endif
11721167
SERVER_CHANNEL_OPEN_DONE,
11731168
SERVER_DONE
11741169
};

0 commit comments

Comments
 (0)