int passwd_init(struct passwd *pw, sudo_auth *auth) { #ifdef HAVE_SKEYACCESS if (skeyaccess(pw, user_tty, NULL, NULL) == 0) return AUTH_FAILURE; #endif sudo_setspent(); auth->data = sudo_getepw(pw); sudo_endspent(); return AUTH_SUCCESS; }
int secureware_init(struct passwd *pw, char **promptp, sudo_auth *auth) { #ifdef __alpha extern int crypt_type; if (crypt_type == INT_MAX) return AUTH_FAILURE; /* no shadow */ #endif sudo_setspent(); auth->data = sudo_getepw(pw); sudo_endspent(); return AUTH_SUCCESS; }
#include "sudo_auth.h" #define DESLEN 13 #define HAS_AGEINFO(p, l) (l == 18 && p[DESLEN] == ',') int sudo_passwd_init(struct passwd *pw, sudo_auth *auth) { debug_decl(sudo_passwd_init, SUDOERS_DEBUG_AUTH) #ifdef HAVE_SKEYACCESS if (skeyaccess(pw, user_tty, NULL, NULL) == 0) debug_return_int(AUTH_FAILURE); #endif sudo_setspent(); auth->data = sudo_getepw(pw); sudo_endspent(); debug_return_int(auth->data ? AUTH_SUCCESS : AUTH_FATAL); } int sudo_passwd_verify(struct passwd *pw, char *pass, sudo_auth *auth, struct sudo_conv_callback *callback) { char sav, *epass; char *pw_epasswd = auth->data; size_t pw_len; int matched = 0; debug_decl(sudo_passwd_verify, SUDOERS_DEBUG_AUTH) /* An empty plain-text password must match an empty encrypted password. */ if (pass[0] == '\0')