130 lines
3.4 KiB
C
130 lines
3.4 KiB
C
#ifndef PAM_APPL_H
|
|
#define PAM_APPL_H
|
|
|
|
#include <stddef.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef int pam_item_type;
|
|
|
|
#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_PERM_DENIED 6
|
|
#define PAM_AUTH_ERR 7
|
|
#define PAM_CRED_INSUFFICIENT 8
|
|
#define PAM_AUTHINFO_UNAVAIL 9
|
|
#define PAM_USER_UNKNOWN 10
|
|
#define PAM_MAXTRIES 11
|
|
#define PAM_NEW_AUTHTOK_REQD 12
|
|
#define PAM_ACCT_EXPIRED 13
|
|
#define PAM_SESSION_ERR 14
|
|
#define PAM_CRED_UNAVAIL 15
|
|
#define PAM_CRED_EXPIRED 16
|
|
#define PAM_CRED_ERR 17
|
|
#define PAM_NO_MODULE_DATA 18
|
|
#define PAM_CONV_ERR 19
|
|
#define PAM_AUTHTOK_ERR 20
|
|
#define PAM_AUTHTOK_RECOVER_ERR 21
|
|
#define PAM_AUTHTOK_LOCK_BUSY 22
|
|
#define PAM_AUTHTOK_DISABLE_AGING 23
|
|
#define PAM_TRY_AGAIN 24
|
|
#define PAM_IGNORE 25
|
|
#define PAM_ABORT 26
|
|
#define PAM_AUTHTOK_EXPIRED 27
|
|
#define PAM_BAD_ITEM 29
|
|
#define PAM_BAD_STATE 30
|
|
#define PAM_NO_MODULE_DATA_CRIT 31
|
|
|
|
#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
|
|
#define PAM_FAIL_DELAY 10
|
|
#define PAM_XDISPLAY 11
|
|
#define PAM_XAUTHDATA 12
|
|
#define PAM_AUTHTOK_TYPE 13
|
|
|
|
#define PAM_SILENT 0x8000
|
|
#define PAM_DISALLOW_NULL_AUTHTOK 0x0001
|
|
#define PAM_ESTABLISH_CRED 0x0002
|
|
#define PAM_DELETE_CRED 0x0004
|
|
#define PAM_REINITIALIZE_CRED 0x0008
|
|
#define PAM_REFRESH_CRED 0x0010
|
|
#define PAM_CHANGE_EXPIRED_AUTHTOK 0x0020
|
|
|
|
#define PAM_MAX_NUM_MSG 32
|
|
|
|
#define PAM_PROMPT_ECHO_OFF 1
|
|
#define PAM_PROMPT_ECHO_ON 2
|
|
#define PAM_ERROR_MSG 3
|
|
#define PAM_TEXT_INFO 4
|
|
|
|
struct pam_message {
|
|
int msg_style;
|
|
const char *msg;
|
|
};
|
|
|
|
struct pam_response {
|
|
char *resp;
|
|
int resp_retcode;
|
|
};
|
|
|
|
struct pam_conv {
|
|
int (*conv)(int num_msg, const struct pam_message **msg,
|
|
struct pam_response **resp, void *appdata_ptr);
|
|
void *appdata_ptr;
|
|
};
|
|
|
|
typedef struct pam_handle pam_handle_t;
|
|
|
|
int pam_start(const char *service_name, const char *user,
|
|
const struct pam_conv *conv, pam_handle_t **pamh);
|
|
|
|
int pam_end(pam_handle_t *pamh, int pam_status);
|
|
|
|
int pam_set_item(pam_handle_t *pamh, int item_type, const void *item);
|
|
|
|
int pam_get_item(const pam_handle_t *pamh, int item_type, const void **item);
|
|
|
|
int pam_get_data(const pam_handle_t *pamh, const char *module_data_name, void **data);
|
|
|
|
int pam_set_data(pam_handle_t *pamh, const char *module_data_name, void *data,
|
|
void (*cleanup)(pam_handle_t *pamh, void *data, int error_status));
|
|
|
|
int pam_authenticate(pam_handle_t *pamh, int flags);
|
|
|
|
int pam_acct_mgmt(pam_handle_t *pamh, int flags);
|
|
|
|
int pam_open_session(pam_handle_t *pamh, int flags);
|
|
|
|
int pam_close_session(pam_handle_t *pamh, int flags);
|
|
|
|
int pam_setcred(pam_handle_t *pamh, int flags);
|
|
|
|
int pam_chauthtok(pam_handle_t *pamh, int flags);
|
|
|
|
const char *pam_strerror(pam_handle_t *pamh, int errnum);
|
|
|
|
int pam_putenv(pam_handle_t *pamh, const char *name_value);
|
|
|
|
char **pam_getenvlist(pam_handle_t *pamh);
|
|
|
|
const char *pam_getenv(pam_handle_t *pamh, const char *name);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|