Mercurial > crates > nonstick
view libpam-sys/libpam-sys-test/xsso_pam_appl.h @ 125:2b255c92417b
Introduce base PAM functions; use the real X/SSO PAM header for tests.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Mon, 30 Jun 2025 17:47:32 -0400 |
parents | libpam-sys/libpam-sys-test/xsso_constants.h@f469b8d9ad78 |
children |
line wrap: on
line source
/* * The contents of this header are copied directly from the X/SSO PAM spec, * with comments and unpopular functions removed. * * https://pubs.opengroup.org/onlinepubs/8329799/apdxa.htm */ #define PAM_SUCCESS 0 #define PAM_OPEN_ERR 1 #define PAM_SYMBOL_ERR 2 #define PAM_SERVICE_ERR 3 #define PAM_SYSTEM_ERR 4 #define PAM_BUF_ERR 5 #define PAM_CONV_ERR 6 #define PAM_PERM_DENIED 7 #define PAM_MAXTRIES 8 #define PAM_AUTH_ERR 9 #define PAM_NEW_AUTHTOK_REQD 10 #define PAM_CRED_INSUFFICIENT 11 #define PAM_AUTHINFO_UNAVAIL 12 #define PAM_USER_UNKNOWN 13 #define PAM_CRED_UNAVAIL 14 #define PAM_CRED_EXPIRED 15 #define PAM_CRED_ERR 16 #define PAM_ACCT_EXPIRED 17 #define PAM_AUTHTOK_EXPIRED 18 #define PAM_SESSION_ERR 19 #define PAM_AUTHTOK_ERR 20 #define PAM_AUTHTOK_RECOVERY_ERR 21 #define PAM_AUTHTOK_LOCK_BUSY 22 #define PAM_AUTHTOK_DISABLE_AGING 23 #define PAM_NO_MODULE_DATA 24 #define PAM_IGNORE 25 #define PAM_ABORT 26 #define PAM_TRY_AGAIN 27 /* PAM_MODULE_UNKNOWN and PAM_DOMAIN_UNKNOWN are not universal. */ struct pam_message { int msg_style; char *msg; }; #define PAM_PROMPT_ECHO_OFF 1 #define PAM_PROMPT_ECHO_ON 2 #define PAM_ERROR_MSG 3 #define PAM_TEXT_INFO 4 #define PAM_MAX_NUM_MSG 32 #define PAM_MAX_MSG_SIZE 512 #define PAM_MAX_RESP_SIZE 512 struct pam_response { char *resp; int resp_retcode; }; struct pam_conv { int (*conv)(int, struct pam_message **, struct pam_response **, void *); void *appdata_ptr; }; typedef struct pam_handle pam_handle_t; extern int pam_start(const char *service_name, const char *user, const struct pam_conv *pam_conv, pam_handle_t **pamh); extern int pam_end(pam_handle_t *pamh, int status); extern int pam_set_item(pam_handle_t *pamh, int item_type, const void *item); extern int pam_get_item(const pam_handle_t *pamh, int item_type, void **item); #define PAM_SERVICE 1 #define PAM_USER 2 #define PAM_TTY 3 #define PAM_RHOST 4 #define PAM_CONV 5 #define PAM_AUTHTOK 6 #define PAM_OLDAUTHTOK 7 #define PAM_RUSER 8 #define PAM_USER_PROMPT 9 extern int pam_get_user(pam_handle_t *pamh, char **user, const char *prompt); extern int pam_set_data(pam_handle_t *pamh, const char *module_data_name, const void *data, void (*cleanup)(pam_handle_t *pamh, void *data, int pam_end_status)); extern int pam_get_data(const pam_handle_t *pamh, const char *module_data_name, void **data); extern char *pam_strerror(pam_handle_t *pamh, int errnum); #define PAM_SILENT 0x80000000 extern int pam_authenticate(pam_handle_t *pamh, int flags); #define PAM_DISALLOW_NULL_AUTHTOK 0x1 /* Nobody implements pam_authenticate_secondary. */ extern int pam_acct_mgmt(pam_handle_t *pamh, int flags); extern int pam_open_session(pam_handle_t *pamh, int flags); extern int pam_close_session(pam_handle_t *pamh, int flags); extern int pam_setcred(pam_handle_t *pamh, int flags); #define PAM_ESTABLISH_CRED 0x1 #define PAM_DELETE_CRED 0x2 #define PAM_REINITIALIZE_CRED 0x4 #define PAM_REFRESH_CRED 0x8 extern int pam_chauthtok(pam_handle_t *pamh, int flags); #define PAM_CHANGE_EXPIRED_AUTHTOK 0x4 extern char *pam_getenv(pam_handle_t *pamh, const char *name); extern char **pam_getenvlist(pam_handle_t *pamh); extern int pam_putenv(pam_handle_t *pamh, const char *namevalue); /* Nobody implements the _mapped functions. */ extern int pam_get_user(pam_handle_t *pamh, char **user, const char *prompt); /* The following constants come from the `pam_module.h` part of the page. */ #define PAM_PRELIM_CHECK 0x1 #define PAM_UPDATE_AUTHTOK 0x2 /* The _sm functions are not exported symbols, but prototypes for modules. */