version 1.24.2.2, 2002/05/18 04:50:37 |
version 1.24.2.3, 2002/06/26 15:30:37 |
|
|
auth_password(Authctxt *authctxt, const char *password) |
auth_password(Authctxt *authctxt, const char *password) |
{ |
{ |
struct passwd * pw = authctxt->pw; |
struct passwd * pw = authctxt->pw; |
char *encrypted_password; |
|
|
|
/* deny if no user. */ |
/* deny if no user. */ |
if (pw == NULL) |
if (pw == NULL) |
|
|
return 0; |
return 0; |
else |
else |
return 1; |
return 1; |
#endif |
#else |
/* Check for users with no password. */ |
/* Check for users with no password. */ |
if (strcmp(password, "") == 0 && strcmp(pw->pw_passwd, "") == 0) |
if (strcmp(password, "") == 0 && strcmp(pw->pw_passwd, "") == 0) |
return 1; |
return 1; |
/* Encrypt the candidate password using the proper salt. */ |
else { |
encrypted_password = crypt(password, |
/* Encrypt the candidate password using the proper salt. */ |
(pw->pw_passwd[0] && pw->pw_passwd[1]) ? pw->pw_passwd : "xx"); |
char *encrypted_password = crypt(password, |
|
(pw->pw_passwd[0] && pw->pw_passwd[1]) ? |
/* Authentication is accepted if the encrypted passwords are identical. */ |
pw->pw_passwd : "xx"); |
return (strcmp(encrypted_password, pw->pw_passwd) == 0); |
/* |
|
* Authentication is accepted if the encrypted passwords |
|
* are identical. |
|
*/ |
|
return (strcmp(encrypted_password, pw->pw_passwd) == 0); |
|
} |
|
#endif |
} |
} |