Pam service function for user authentication
#define PAM_SM_AUTH
#include <security/pam_modules.h>
PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv);
The pam_sm_authenticate function is the service module's implementation of the pam_authenticate(3) interface.
This function performs the task of authenticating the user.
Valid flags, which may be logically OR'd with PAM_SILENT, are:
PAM_SILENT
Do not emit any messages.
PAM_DISALLOW_NULL_AUTHTOK
Return PAM_AUTH_ERR if the database of authentication tokens for this authentication mechanism has a NULL entry for the user. Without this flag, such a NULL token will lead to a success without the user being prompted.
PAM_AUTH_ERR
Authentication failure.
PAM_CRED_INSUFFICIENT
For some reason the application does not have sufficient credentials to authenticate the user.
PAM_AUTHINFO_UNAVAIL
The modules were not able to access the authentication information. This might be due to a network or hardware failure etc.
PAM_SUCCESS
The authentication token was successfully updated.
PAM_USER_UNKNOWN
The supplied username is not known to the authentication service.
PAM_MAXTRIES
One or more of the authentication modules has reached its limit of tries authenticating the user. Do not try again.