#include <security/pam_appl.h>
A credential is something that the user possesses. It is some property, such as a Kerberos ticket, or a supplementary group membership that make up the uniqueness of a given user. On a Linux system the user's UID and GID's are credentials too. However, it has been decided that these properties (along with the default supplementary groups of which the user is a member) are credentials that should be set directly by the application and not by PAM. Such credentials should be established, by the application, prior to a call to this function. For example, initgroups(2) (or equivalent) should have been performed.
Valid flags, any one of which, may be logically OR'd with PAM_SILENT, are:
PAM_ESTABLISH_CRED
PAM_DELETE_CRED
PAM_REINITIALIZE_CRED
PAM_REFRESH_CRED
PAM_BUF_ERR
PAM_CRED_ERR
PAM_CRED_EXPIRED
PAM_CRED_UNAVAIL
PAM_SUCCESS
PAM_SYSTEM_ERR
PAM_USER_UNKNOWN
pam_authenticate(3), pam_open_session(3), pam_close_session(3), pam_strerror(3)