1
|
1 use libc::{c_int, c_uint};
|
|
2
|
|
3 // TODO: Import constants from C header file at compile time.
|
|
4
|
|
5 pub type PamFlag = c_uint;
|
|
6 pub type PamItemType = c_int;
|
|
7 pub type PamMessageStyle = c_int;
|
|
8 pub type PamResultCode = c_int;
|
|
9 pub type AlwaysZero = c_int;
|
|
10
|
|
11 // The Linux-PAM flags
|
|
12 // see /usr/include/security/_pam_types.h
|
|
13 pub const PAM_SILENT: PamFlag = 0x8000;
|
|
14 pub const PAM_DISALLOW_NULL_AUTHTOK: PamFlag = 0x0001;
|
|
15 pub const PAM_ESTABLISH_CRED: PamFlag = 0x0002;
|
|
16 pub const PAM_DELETE_CRED: PamFlag = 0x0004;
|
|
17 pub const PAM_REINITIALIZE_CRED: PamFlag = 0x0008;
|
|
18 pub const PAM_REFRESH_CRED: PamFlag = 0x0010;
|
|
19 pub const PAM_CHANGE_EXPIRED_AUTHTOK: PamFlag = 0x0020;
|
|
20
|
|
21 // The Linux-PAM item types
|
|
22 // see /usr/include/security/_pam_types.h
|
|
23 pub const PAM_SERVICE: PamItemType = 1; /* The service name */
|
|
24 pub const PAM_USER: PamItemType = 2; /* The user name */
|
|
25 pub const PAM_TTY: PamItemType = 3; /* The tty name */
|
|
26 pub const PAM_RHOST: PamItemType = 4; /* The remote host name */
|
|
27 pub const PAM_CONV: PamItemType = 5; /* The pam_conv structure */
|
|
28 pub const PAM_AUTHTOK: PamItemType = 6; /* The authentication token (password) */
|
|
29 pub const PAM_OLDAUTHTOK: PamItemType = 7; /* The old authentication token */
|
|
30 pub const PAM_RUSER: PamItemType = 8; /* The remote user name */
|
|
31 pub const PAM_USER_PROMPT: PamItemType = 9; /* the prompt for getting a username */
|
|
32 /* Linux-PAM :extensionsPamItemType = */
|
|
33 pub const PAM_FAIL_DELAY: PamItemType = 10; /* app supplied function to override failure delays */
|
|
34 pub const PAM_XDISPLAY: PamItemType = 11; /* X :display name */
|
|
35 pub const PAM_XAUTHDATA: PamItemType = 12; /* X :server authentication data */
|
|
36 pub const PAM_AUTHTOK_TYPE: PamItemType = 13; /* The type for pam_get_authtok */
|
|
37
|
|
38 // Message styles
|
|
39 pub const PAM_PROMPT_ECHO_OFF: PamMessageStyle = 1;
|
|
40 pub const PAM_PROMPT_ECHO_ON: PamMessageStyle = 2;
|
|
41 pub const PAM_ERROR_MSG: PamMessageStyle = 3;
|
|
42 pub const PAM_TEXT_INFO: PamMessageStyle = 4;
|
|
43 pub const PAM_RADIO_TYPE: PamMessageStyle = 5; /* yes/no/maybe conditionals */
|
|
44 pub const PAM_BINARY_PROMPT: PamMessageStyle = 7;
|
|
45
|
|
46 // The Linux-PAM return values
|
|
47 // see /usr/include/security/_pam_types.h
|
|
48 pub const PAM_SUCCESS: PamResultCode = 0;
|
|
49 pub const PAM_OPEN_ERR: PamResultCode = 1;
|
|
50 pub const PAM_SYMBOL_ERR: PamResultCode = 2;
|
|
51 pub const PAM_SERVICE_ERR: PamResultCode = 3;
|
|
52 pub const PAM_SYSTEM_ERR: PamResultCode = 4;
|
|
53 pub const PAM_BUF_ERR: PamResultCode = 5;
|
|
54 pub const PAM_PERM_DENIED: PamResultCode = 6;
|
|
55 pub const PAM_AUTH_ERR: PamResultCode = 7;
|
|
56 pub const PAM_CRED_INSUFFICIENT: PamResultCode = 8;
|
|
57 pub const PAM_AUTHINFO_UNAVAIL: PamResultCode = 9;
|
|
58 pub const PAM_USER_UNKNOWN: PamResultCode = 10;
|
|
59 pub const PAM_MAXTRIES: PamResultCode = 11;
|
|
60 pub const PAM_NEW_AUTHTOK_REQD: PamResultCode = 12;
|
|
61 pub const PAM_ACCT_EXPIRED: PamResultCode = 13;
|
|
62 pub const PAM_SESSION_ERR: PamResultCode = 14;
|
|
63 pub const PAM_CRED_UNAVAIL: PamResultCode = 15;
|
|
64 pub const PAM_CRED_EXPIRED: PamResultCode = 16;
|
|
65 pub const PAM_CRED_ERR: PamResultCode = 17;
|
|
66 pub const PAM_NO_MODULE_DATA: PamResultCode = 18;
|
|
67 pub const PAM_CONV_ERR: PamResultCode = 19;
|
|
68 pub const PAM_AUTHTOK_ERR: PamResultCode = 20;
|
|
69 pub const PAM_AUTHTOK_RECOVERY_ERR: PamResultCode = 21;
|
|
70 pub const PAM_AUTHTOK_LOCK_BUSY: PamResultCode = 22;
|
|
71 pub const PAM_AUTHTOK_DISABLE_AGING: PamResultCode = 23;
|
|
72 pub const PAM_TRY_AGAIN: PamResultCode = 24;
|
|
73 pub const PAM_IGNORE: PamResultCode = 25;
|
|
74 pub const PAM_ABORT: PamResultCode = 26;
|
|
75 pub const PAM_AUTHTOK_EXPIRED: PamResultCode = 27;
|
|
76 pub const PAM_MODULE_UNKNOWN: PamResultCode = 28;
|
|
77 pub const PAM_BAD_ITEM: PamResultCode = 29;
|
|
78 pub const PAM_CONV_AGAIN: PamResultCode = 30;
|
|
79 pub const PAM_INCOMPLETE: PamResultCode = 31;
|