aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAris Adamantiadis <aris@0xbadc0de.be>2013-07-01 00:08:44 +0200
committerAndreas Schneider <asn@cryptomilk.org>2013-07-13 15:23:33 +0200
commit2ab7f2be75df1432fa7caad39ea40518ada95af3 (patch)
tree51f87fe91da8723fec775de9b1330d99f9e916af /src
parent47a4eea827adcd1bc1c42646827c1045c156ad4e (diff)
downloadlibssh-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.c13
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: