Authentication Management Function: PAM_EXTERN int pam_sm_authenticate(pam_handle_t* pamh, int flags, int argc, const char** argv); Macro used: PAM_SM_AUTH This function should authenticate the user. It may get converse with the application to request prompting the user for input (such as a password), and verify that the user is realy who they claim to be. The name of the user to authenticate may be taken from the PAM "items", as will be explained later. The parameters are taken from the PAM configuration file of the application. The return value should be one of: PAM_SUCCESS - the user was authenticated. PAM_IGNORE - this module does not support authentication management. PAM_AUTH_ERR - the user was not authenticated. PAM_CRED_INSUFFICIENT - the application does not have sufficient credentials to authenticate the user. PAM_AUTHINFO_UNAVAIL - the module couldn't access the authentication information. PAM_USER_UNKNOWN - the module' authentication service does not know the supplied user. PAM_MAXTRIES - the module reached the maximum number of tries of authenticating the user. do not try again.