Lines Matching refs:authctxt

90 static char *authmethods_check_abandonment(Authctxt *authctxt,
106 Authctxt *authctxt = authctxt_new(); in do_authentication2() local
108 x_authctxt = authctxt; /*XXX*/ in do_authentication2()
111 fatal_add_cleanup(audit_failed_login_cleanup, authctxt); in do_authentication2()
116 dispatch_run(DISPATCH_BLOCK, &authctxt->success, authctxt); in do_authentication2()
118 return (authctxt); in do_authentication2()
124 Authctxt *authctxt = ctxt; in input_service_request() local
130 if (authctxt == NULL) in input_service_request()
134 if (!authctxt->success) { in input_service_request()
157 Authctxt *authctxt = ctxt; in input_userauth_request() local
162 if (authctxt == NULL) in input_userauth_request()
171 authctxt->attempt, authctxt->init_attempt, in input_userauth_request()
172 authctxt->failures, authctxt->init_failures); in input_userauth_request()
179 authctxt->attempt++; in input_userauth_request()
181 authctxt->init_attempt++; in input_userauth_request()
190 if (authctxt->attempt == 1) { in input_userauth_request()
192 authctxt->pw = getpwnamallow(user); in input_userauth_request()
194 if (authctxt->pw && strcmp(service, "ssh-connection")==0) { in input_userauth_request()
197 authctxt->valid = 1; in input_userauth_request()
203 setproctitle("%s", authctxt->pw ? user : "unknown"); in input_userauth_request()
204 authctxt->user = xstrdup(user); in input_userauth_request()
205 authctxt->service = xstrdup(service); in input_userauth_request()
206 authctxt->style = style ? xstrdup(style) : NULL; in input_userauth_request()
217 abandoned = authmethods_check_abandonment(authctxt, m); in input_userauth_request()
220 authctxt->failures > options.max_auth_tries) { in input_userauth_request()
222 userauth_finish(authctxt, abandoned); in input_userauth_request()
227 userauth_user_svc_change(authctxt, user, service); in input_userauth_request()
230 authctxt->method = m; in input_userauth_request()
241 authctxt->init_failures < options.max_init_auth_tries) in input_userauth_request()
242 m->userauth(authctxt); in input_userauth_request()
246 if (authctxt->unwind_dispatch_loop) { in input_userauth_request()
252 authctxt->unwind_dispatch_loop = 0; in input_userauth_request()
261 auth_log(authctxt, 0, method, " ssh2"); in input_userauth_request()
266 userauth_finish(authctxt, method); in input_userauth_request()
275 userauth_finish(Authctxt *authctxt, char *method) in userauth_finish() argument
279 if (authctxt == NULL) in userauth_finish()
283 if (authctxt->method == NULL) { in userauth_finish()
291 if (authctxt->method->authenticated && in userauth_finish()
292 authctxt->pw != NULL && authctxt->pw->pw_uid == 0 && in userauth_finish()
294 authctxt->method->authenticated = 0; in userauth_finish()
298 if (authctxt->method->authenticated && in userauth_finish()
299 cray_access_denied(authctxt->user)) { in userauth_finish()
300 authctxt->method->authenticated = 0; in userauth_finish()
301 fatal("Access denied for user %s.",authctxt->user); in userauth_finish()
305 partial = userauth_check_partial_failure(authctxt); in userauth_finish()
306 authenticated = authctxt->method->authenticated; in userauth_finish()
313 if (authenticated && !AUTHPAM_DONE(authctxt)) in userauth_finish()
327 if (!authctxt->valid && authenticated) { in userauth_finish()
334 authctxt->method->authenticated = 0; in userauth_finish()
337 authctxt->user); in userauth_finish()
338 auth_log(authctxt, 0, method, " ssh2"); in userauth_finish()
342 auth_log(authctxt, authenticated, method, " ssh2"); in userauth_finish()
352 authctxt->success = 1; in userauth_finish()
356 if (authctxt->method && authctxt->method->is_initial) in userauth_finish()
357 authctxt->init_failures++; in userauth_finish()
359 authctxt->method = NULL; in userauth_finish()
367 authctxt->pam_retval = AUTHPAM_ERROR(authctxt, PAM_PERM_DENIED); in userauth_finish()
370 if (authctxt->failures++ > options.max_auth_tries) { in userauth_finish()
373 authctxt); in userauth_finish()
375 authctxt->user); in userauth_finish()
377 packet_disconnect(AUTH_FAIL_MSG, authctxt->user); in userauth_finish()
382 cray_login_failure(authctxt->user, IA_UDBERR); in userauth_finish()
428 userauth_user_svc_change(Authctxt *authctxt, char *user, char *service) in userauth_user_svc_change() argument
444 if (service != NULL && strcmp(service, authctxt->service) != 0) { in userauth_user_svc_change()
447 authctxt->service, service); in userauth_user_svc_change()
449 if (user != NULL && authctxt->user != NULL && in userauth_user_svc_change()
450 strcmp(user, authctxt->user) == 0) in userauth_user_svc_change()
454 xfree(authctxt->user); in userauth_user_svc_change()
455 authctxt->user = xstrdup(user); in userauth_user_svc_change()
456 pwfree(&authctxt->pw); in userauth_user_svc_change()
457 authctxt->pw = getpwnamallow(user); in userauth_user_svc_change()
458 authctxt->valid = (authctxt->pw != NULL); in userauth_user_svc_change()
465 userauth_check_partial_failure(Authctxt *authctxt) in userauth_check_partial_failure() argument
475 if (authctxt->method == NULL) in userauth_check_partial_failure()
486 return !authctxt->method->authenticated; in userauth_check_partial_failure()
488 if (required == 1 && authctxt->method->required) in userauth_check_partial_failure()
489 return !authctxt->method->authenticated; in userauth_check_partial_failure()
491 if (sufficient && authctxt->method->sufficient) in userauth_check_partial_failure()
492 return !authctxt->method->authenticated; in userauth_check_partial_failure()
543 authmethods_check_abandonment(Authctxt *authctxt, Authmethod *method) in authmethods_check_abandonment() argument
551 method->abandon(authctxt, method); in authmethods_check_abandonment()
554 authctxt->failures++; /* abandonment -> failure */ in authmethods_check_abandonment()
556 authctxt->init_failures++; in authmethods_check_abandonment()
573 authmethods[i]->abandon(authctxt, in authmethods_check_abandonment()
577 authctxt->failures++; in authmethods_check_abandonment()
579 authctxt->init_failures++; in authmethods_check_abandonment()