Add support for keyboard-interactive auth via userAuthCb #803
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add support for keyboard-interactive auth via userAuthCb
This PR adds support for keyboard-interactive authentication using the
userAuthCbcallback, while preserving backward compatibility with the existingwolfSSH_SetKeyboardAuthPromptsmethod.Changes
Modified the
SendUserAuthKeyboardRequestfunction to:responseCountto 0 when callinguserAuthCbfor prompt setupWOLFSSH_USERAUTH_SUCCESS_ANOTHERreturn value to proceed with sending promptskeyboardAuthCbmethod ifuserAuthCbis not set or doesn't returnSUCCESS_ANOTHERAdded documentation to
wolfssh/ssh.hexplaining the new keyboard-interactive authentication flowCreated tests in
tests/auth.cto verify both authentication methods:useUserAuthCbflag to control which authentication method to testHow It Works
When a keyboard-interactive authentication request is received:
userAuthCbis called withresponseCountset to 0WOLFSSH_USERAUTH_SUCCESS_ANOTHER, the code proceeds with sending promptskeyboardAuthCbmethodThis implementation preserves backward compatibility while adding the requested functionality.
Testing
Added tests to verify both authentication methods work correctly.
Link to Devin run: https://app.devin.ai/sessions/55433dc32bf946d397bcc854e1cbf66f
Requested by: andrew@wolfssl.com