Mercurial > crates > nonstick
comparison 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 |
comparison
equal
deleted
inserted
replaced
124:f469b8d9ad78 | 125:2b255c92417b |
---|---|
1 /* | |
2 * The contents of this header are copied directly from the X/SSO PAM spec, | |
3 * with comments and unpopular functions removed. | |
4 * | |
5 * https://pubs.opengroup.org/onlinepubs/8329799/apdxa.htm | |
6 */ | |
7 #define PAM_SUCCESS 0 | |
8 #define PAM_OPEN_ERR 1 | |
9 #define PAM_SYMBOL_ERR 2 | |
10 #define PAM_SERVICE_ERR 3 | |
11 #define PAM_SYSTEM_ERR 4 | |
12 #define PAM_BUF_ERR 5 | |
13 #define PAM_CONV_ERR 6 | |
14 #define PAM_PERM_DENIED 7 | |
15 #define PAM_MAXTRIES 8 | |
16 #define PAM_AUTH_ERR 9 | |
17 #define PAM_NEW_AUTHTOK_REQD 10 | |
18 #define PAM_CRED_INSUFFICIENT 11 | |
19 #define PAM_AUTHINFO_UNAVAIL 12 | |
20 #define PAM_USER_UNKNOWN 13 | |
21 #define PAM_CRED_UNAVAIL 14 | |
22 #define PAM_CRED_EXPIRED 15 | |
23 #define PAM_CRED_ERR 16 | |
24 #define PAM_ACCT_EXPIRED 17 | |
25 #define PAM_AUTHTOK_EXPIRED 18 | |
26 #define PAM_SESSION_ERR 19 | |
27 #define PAM_AUTHTOK_ERR 20 | |
28 #define PAM_AUTHTOK_RECOVERY_ERR 21 | |
29 #define PAM_AUTHTOK_LOCK_BUSY 22 | |
30 #define PAM_AUTHTOK_DISABLE_AGING 23 | |
31 #define PAM_NO_MODULE_DATA 24 | |
32 #define PAM_IGNORE 25 | |
33 #define PAM_ABORT 26 | |
34 #define PAM_TRY_AGAIN 27 | |
35 /* PAM_MODULE_UNKNOWN and PAM_DOMAIN_UNKNOWN are not universal. */ | |
36 | |
37 struct pam_message { | |
38 int msg_style; | |
39 char *msg; | |
40 }; | |
41 | |
42 #define PAM_PROMPT_ECHO_OFF 1 | |
43 #define PAM_PROMPT_ECHO_ON 2 | |
44 #define PAM_ERROR_MSG 3 | |
45 #define PAM_TEXT_INFO 4 | |
46 | |
47 #define PAM_MAX_NUM_MSG 32 | |
48 #define PAM_MAX_MSG_SIZE 512 | |
49 #define PAM_MAX_RESP_SIZE 512 | |
50 | |
51 struct pam_response { | |
52 char *resp; | |
53 int resp_retcode; | |
54 }; | |
55 | |
56 struct pam_conv { | |
57 int (*conv)(int, struct pam_message **, struct pam_response **, void *); | |
58 void *appdata_ptr; | |
59 }; | |
60 | |
61 typedef struct pam_handle pam_handle_t; | |
62 | |
63 extern int pam_start(const char *service_name, | |
64 const char *user, | |
65 const struct pam_conv *pam_conv, | |
66 pam_handle_t **pamh); | |
67 | |
68 extern int pam_end(pam_handle_t *pamh, int status); | |
69 | |
70 extern int pam_set_item(pam_handle_t *pamh, int item_type, const void *item); | |
71 | |
72 extern int pam_get_item(const pam_handle_t *pamh, int item_type, void **item); | |
73 | |
74 #define PAM_SERVICE 1 | |
75 #define PAM_USER 2 | |
76 #define PAM_TTY 3 | |
77 #define PAM_RHOST 4 | |
78 #define PAM_CONV 5 | |
79 #define PAM_AUTHTOK 6 | |
80 #define PAM_OLDAUTHTOK 7 | |
81 #define PAM_RUSER 8 | |
82 #define PAM_USER_PROMPT 9 | |
83 | |
84 extern int pam_get_user(pam_handle_t *pamh, char **user, const char *prompt); | |
85 | |
86 extern int pam_set_data(pam_handle_t *pamh, | |
87 const char *module_data_name, | |
88 const void *data, | |
89 void (*cleanup)(pam_handle_t *pamh, | |
90 void *data, | |
91 int pam_end_status)); | |
92 | |
93 extern int pam_get_data(const pam_handle_t *pamh, | |
94 const char *module_data_name, | |
95 void **data); | |
96 | |
97 extern char *pam_strerror(pam_handle_t *pamh, int errnum); | |
98 | |
99 #define PAM_SILENT 0x80000000 | |
100 | |
101 extern int pam_authenticate(pam_handle_t *pamh, int flags); | |
102 | |
103 #define PAM_DISALLOW_NULL_AUTHTOK 0x1 | |
104 | |
105 /* Nobody implements pam_authenticate_secondary. */ | |
106 | |
107 extern int pam_acct_mgmt(pam_handle_t *pamh, int flags); | |
108 | |
109 extern int pam_open_session(pam_handle_t *pamh, int flags); | |
110 | |
111 extern int pam_close_session(pam_handle_t *pamh, int flags); | |
112 | |
113 extern int pam_setcred(pam_handle_t *pamh, int flags); | |
114 | |
115 #define PAM_ESTABLISH_CRED 0x1 | |
116 #define PAM_DELETE_CRED 0x2 | |
117 #define PAM_REINITIALIZE_CRED 0x4 | |
118 | |
119 #define PAM_REFRESH_CRED 0x8 | |
120 | |
121 extern int pam_chauthtok(pam_handle_t *pamh, int flags); | |
122 | |
123 #define PAM_CHANGE_EXPIRED_AUTHTOK 0x4 | |
124 | |
125 extern char *pam_getenv(pam_handle_t *pamh, const char *name); | |
126 | |
127 extern char **pam_getenvlist(pam_handle_t *pamh); | |
128 | |
129 extern int pam_putenv(pam_handle_t *pamh, const char *namevalue); | |
130 | |
131 /* Nobody implements the _mapped functions. */ | |
132 | |
133 extern int pam_get_user(pam_handle_t *pamh, char **user, const char *prompt); | |
134 | |
135 /* The following constants come from the `pam_module.h` part of the page. */ | |
136 #define PAM_PRELIM_CHECK 0x1 | |
137 #define PAM_UPDATE_AUTHTOK 0x2 | |
138 | |
139 /* The _sm functions are not exported symbols, but prototypes for modules. */ |