diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2013-07-01 00:08:44 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2013-07-13 15:23:33 +0200 |
commit | 2ab7f2be75df1432fa7caad39ea40518ada95af3 (patch) | |
tree | 51f87fe91da8723fec775de9b1330d99f9e916af /src | |
parent | 47a4eea827adcd1bc1c42646827c1045c156ad4e (diff) | |
download | libssh-2ab7f2be75df1432fa7caad39ea40518ada95af3.tar.gz libssh-2ab7f2be75df1432fa7caad39ea40518ada95af3.tar.xz libssh-2ab7f2be75df1432fa7caad39ea40518ada95af3.zip |
server: add pubkey auth callback
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/messages.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/messages.c b/src/messages.c index d1e88765..d7d06ac7 100644 --- a/src/messages.c +++ b/src/messages.c @@ -116,6 +116,19 @@ static int ssh_execute_server_callbacks(ssh_session session, ssh_message msg){ } return SSH_OK; } + } else if(msg->auth_request.method == SSH_AUTH_METHOD_PUBLICKEY){ + if(ssh_callbacks_exists(session->server_callbacks, auth_pubkey_function)){ + rc = session->server_callbacks->auth_pubkey_function(session, + msg->auth_request.username, msg->auth_request.pubkey, + msg->auth_request.signature_state, + session->server_callbacks->userdata); + if (rc == SSH_AUTH_SUCCESS || rc == SSH_AUTH_PARTIAL){ + ssh_message_auth_reply_success(msg, rc == SSH_AUTH_PARTIAL); + } else { + ssh_message_reply_default(msg); + } + return SSH_OK; + } } break; case SSH_REQUEST_CHANNEL_OPEN: |