*/
#include "includes.h"
-RCSID("$OpenBSD: auth2.c,v 1.104 2003/11/04 08:54:09 djm Exp $");
+RCSID("$OpenBSD: auth2.c,v 1.102 2003/08/26 09:58:43 markus Exp $");
#include "ssh2.h"
#include "xmalloc.h"
extern u_char *session_id2;
extern u_int session_id2_len;
+Authctxt *x_authctxt = NULL;
+
/* methods */
extern Authmethod method_none;
static Authmethod *authmethod_lookup(const char *);
static char *authmethods_get(void);
int user_key_allowed(struct passwd *, Key *);
+int hostbased_key_allowed(struct passwd *, const char *, char *, Key *);
/*
* loop until authctxt->success == TRUE
*/
-void
-do_authentication2(Authctxt *authctxt)
+Authctxt *
+do_authentication2(void)
{
+ Authctxt *authctxt = authctxt_new();
+
+ x_authctxt = authctxt; /*XXX*/
+
/* challenge-response is implemented via keyboard interactive */
if (options.challenge_response_authentication)
options.kbd_interactive_authentication = 1;
dispatch_init(&dispatch_protocol_error);
dispatch_set(SSH2_MSG_SERVICE_REQUEST, &input_service_request);
dispatch_run(DISPATCH_BLOCK, &authctxt->success, authctxt);
+
+ return (authctxt);
}
static void
}
}
+/* get current user */
+
+struct passwd*
+auth_get_user(void)
+{
+ return (x_authctxt != NULL && x_authctxt->valid) ? x_authctxt->pw : NULL;
+}
+
#define DELIM ","
static char *