xref: /dflybsd-src/contrib/openpam/lib/libpam/openpam_constants.c (revision 7031abe4d1ef8c309d4113438494530b74f3f3fe)
1*10b5fe87SSascha Wildner /*-
2*10b5fe87SSascha Wildner  * Copyright (c) 2001-2003 Networks Associates Technology, Inc.
3*10b5fe87SSascha Wildner  * Copyright (c) 2004-2017 Dag-Erling Smørgrav
4*10b5fe87SSascha Wildner  * All rights reserved.
5*10b5fe87SSascha Wildner  *
6*10b5fe87SSascha Wildner  * This software was developed for the FreeBSD Project by ThinkSec AS and
7*10b5fe87SSascha Wildner  * Network Associates Laboratories, the Security Research Division of
8*10b5fe87SSascha Wildner  * Network Associates, Inc.  under DARPA/SPAWAR contract N66001-01-C-8035
9*10b5fe87SSascha Wildner  * ("CBOSS"), as part of the DARPA CHATS research program.
10*10b5fe87SSascha Wildner  *
11*10b5fe87SSascha Wildner  * Redistribution and use in source and binary forms, with or without
12*10b5fe87SSascha Wildner  * modification, are permitted provided that the following conditions
13*10b5fe87SSascha Wildner  * are met:
14*10b5fe87SSascha Wildner  * 1. Redistributions of source code must retain the above copyright
15*10b5fe87SSascha Wildner  *    notice, this list of conditions and the following disclaimer.
16*10b5fe87SSascha Wildner  * 2. Redistributions in binary form must reproduce the above copyright
17*10b5fe87SSascha Wildner  *    notice, this list of conditions and the following disclaimer in the
18*10b5fe87SSascha Wildner  *    documentation and/or other materials provided with the distribution.
19*10b5fe87SSascha Wildner  * 3. The name of the author may not be used to endorse or promote
20*10b5fe87SSascha Wildner  *    products derived from this software without specific prior written
21*10b5fe87SSascha Wildner  *    permission.
22*10b5fe87SSascha Wildner  *
23*10b5fe87SSascha Wildner  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
24*10b5fe87SSascha Wildner  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25*10b5fe87SSascha Wildner  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26*10b5fe87SSascha Wildner  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
27*10b5fe87SSascha Wildner  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28*10b5fe87SSascha Wildner  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29*10b5fe87SSascha Wildner  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30*10b5fe87SSascha Wildner  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31*10b5fe87SSascha Wildner  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32*10b5fe87SSascha Wildner  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33*10b5fe87SSascha Wildner  * SUCH DAMAGE.
34*10b5fe87SSascha Wildner  *
35*10b5fe87SSascha Wildner  * $OpenPAM: openpam_constants.c 938 2017-04-30 21:34:42Z des $
36*10b5fe87SSascha Wildner  */
37*10b5fe87SSascha Wildner 
38*10b5fe87SSascha Wildner #ifdef HAVE_CONFIG_H
39*10b5fe87SSascha Wildner # include "config.h"
40*10b5fe87SSascha Wildner #endif
41*10b5fe87SSascha Wildner 
42*10b5fe87SSascha Wildner #include <security/pam_appl.h>
43*10b5fe87SSascha Wildner 
44*10b5fe87SSascha Wildner #include "openpam_impl.h"
45*10b5fe87SSascha Wildner 
46*10b5fe87SSascha Wildner const char *pam_err_name[PAM_NUM_ERRORS] = {
47*10b5fe87SSascha Wildner 	[PAM_SUCCESS]			 = "PAM_SUCCESS",
48*10b5fe87SSascha Wildner 	[PAM_OPEN_ERR]			 = "PAM_OPEN_ERR",
49*10b5fe87SSascha Wildner 	[PAM_SYMBOL_ERR]		 = "PAM_SYMBOL_ERR",
50*10b5fe87SSascha Wildner 	[PAM_SERVICE_ERR]		 = "PAM_SERVICE_ERR",
51*10b5fe87SSascha Wildner 	[PAM_SYSTEM_ERR]		 = "PAM_SYSTEM_ERR",
52*10b5fe87SSascha Wildner 	[PAM_BUF_ERR]			 = "PAM_BUF_ERR",
53*10b5fe87SSascha Wildner 	[PAM_CONV_ERR]			 = "PAM_CONV_ERR",
54*10b5fe87SSascha Wildner 	[PAM_PERM_DENIED]		 = "PAM_PERM_DENIED",
55*10b5fe87SSascha Wildner 	[PAM_MAXTRIES]			 = "PAM_MAXTRIES",
56*10b5fe87SSascha Wildner 	[PAM_AUTH_ERR]			 = "PAM_AUTH_ERR",
57*10b5fe87SSascha Wildner 	[PAM_NEW_AUTHTOK_REQD]		 = "PAM_NEW_AUTHTOK_REQD",
58*10b5fe87SSascha Wildner 	[PAM_CRED_INSUFFICIENT]		 = "PAM_CRED_INSUFFICIENT",
59*10b5fe87SSascha Wildner 	[PAM_AUTHINFO_UNAVAIL]		 = "PAM_AUTHINFO_UNAVAIL",
60*10b5fe87SSascha Wildner 	[PAM_USER_UNKNOWN]		 = "PAM_USER_UNKNOWN",
61*10b5fe87SSascha Wildner 	[PAM_CRED_UNAVAIL]		 = "PAM_CRED_UNAVAIL",
62*10b5fe87SSascha Wildner 	[PAM_CRED_EXPIRED]		 = "PAM_CRED_EXPIRED",
63*10b5fe87SSascha Wildner 	[PAM_CRED_ERR]			 = "PAM_CRED_ERR",
64*10b5fe87SSascha Wildner 	[PAM_ACCT_EXPIRED]		 = "PAM_ACCT_EXPIRED",
65*10b5fe87SSascha Wildner 	[PAM_AUTHTOK_EXPIRED]		 = "PAM_AUTHTOK_EXPIRED",
66*10b5fe87SSascha Wildner 	[PAM_SESSION_ERR]		 = "PAM_SESSION_ERR",
67*10b5fe87SSascha Wildner 	[PAM_AUTHTOK_ERR]		 = "PAM_AUTHTOK_ERR",
68*10b5fe87SSascha Wildner 	[PAM_AUTHTOK_RECOVERY_ERR]	 = "PAM_AUTHTOK_RECOVERY_ERR",
69*10b5fe87SSascha Wildner 	[PAM_AUTHTOK_LOCK_BUSY]		 = "PAM_AUTHTOK_LOCK_BUSY",
70*10b5fe87SSascha Wildner 	[PAM_AUTHTOK_DISABLE_AGING]	 = "PAM_AUTHTOK_DISABLE_AGING",
71*10b5fe87SSascha Wildner 	[PAM_NO_MODULE_DATA]		 = "PAM_NO_MODULE_DATA",
72*10b5fe87SSascha Wildner 	[PAM_IGNORE]			 = "PAM_IGNORE",
73*10b5fe87SSascha Wildner 	[PAM_ABORT]			 = "PAM_ABORT",
74*10b5fe87SSascha Wildner 	[PAM_TRY_AGAIN]			 = "PAM_TRY_AGAIN",
75*10b5fe87SSascha Wildner 	[PAM_MODULE_UNKNOWN]		 = "PAM_MODULE_UNKNOWN",
76*10b5fe87SSascha Wildner 	[PAM_DOMAIN_UNKNOWN]		 = "PAM_DOMAIN_UNKNOWN",
77*10b5fe87SSascha Wildner 	[PAM_BAD_HANDLE]		 = "PAM_BAD_HANDLE",
78*10b5fe87SSascha Wildner 	[PAM_BAD_ITEM]			 = "PAM_BAD_ITEM",
79*10b5fe87SSascha Wildner 	[PAM_BAD_FEATURE]		 = "PAM_BAD_FEATURE",
80*10b5fe87SSascha Wildner 	[PAM_BAD_CONSTANT]		 = "PAM_BAD_CONSTANT",
81*10b5fe87SSascha Wildner };
82*10b5fe87SSascha Wildner 
83*10b5fe87SSascha Wildner const char *pam_err_text[PAM_NUM_ERRORS] = {
84*10b5fe87SSascha Wildner 	[PAM_SUCCESS]			 = "Success",
85*10b5fe87SSascha Wildner 	[PAM_OPEN_ERR]			 = "Failed to load module",
86*10b5fe87SSascha Wildner 	[PAM_SYMBOL_ERR]		 = "Invalid symbol",
87*10b5fe87SSascha Wildner 	[PAM_SERVICE_ERR]		 = "Error in service module",
88*10b5fe87SSascha Wildner 	[PAM_SYSTEM_ERR]		 = "System error",
89*10b5fe87SSascha Wildner 	[PAM_BUF_ERR]			 = "Memory buffer error",
90*10b5fe87SSascha Wildner 	[PAM_CONV_ERR]			 = "Conversation failure",
91*10b5fe87SSascha Wildner 	[PAM_PERM_DENIED]		 = "Permission denied",
92*10b5fe87SSascha Wildner 	[PAM_MAXTRIES]			 = "Maximum number of tries exceeded",
93*10b5fe87SSascha Wildner 	[PAM_AUTH_ERR]			 = "Authentication error",
94*10b5fe87SSascha Wildner 	[PAM_NEW_AUTHTOK_REQD]		 = "New authentication token required",
95*10b5fe87SSascha Wildner 	[PAM_CRED_INSUFFICIENT]		 = "Insufficient credentials",
96*10b5fe87SSascha Wildner 	[PAM_AUTHINFO_UNAVAIL]		 = "Authentication information is unavailable",
97*10b5fe87SSascha Wildner 	[PAM_USER_UNKNOWN]		 = "Unknown user",
98*10b5fe87SSascha Wildner 	[PAM_CRED_UNAVAIL]		 = "Failed to retrieve user credentials",
99*10b5fe87SSascha Wildner 	[PAM_CRED_EXPIRED]		 = "User credentials have expired",
100*10b5fe87SSascha Wildner 	[PAM_CRED_ERR]			 = "Failed to set user credentials",
101*10b5fe87SSascha Wildner 	[PAM_ACCT_EXPIRED]		 = "User account has expired",
102*10b5fe87SSascha Wildner 	[PAM_AUTHTOK_EXPIRED]		 = "Password has expired",
103*10b5fe87SSascha Wildner 	[PAM_SESSION_ERR]		 = "Session failure",
104*10b5fe87SSascha Wildner 	[PAM_AUTHTOK_ERR]		 = "Authentication token failure",
105*10b5fe87SSascha Wildner 	[PAM_AUTHTOK_RECOVERY_ERR]	 = "Failed to recover old authentication token",
106*10b5fe87SSascha Wildner 	[PAM_AUTHTOK_LOCK_BUSY]		 = "Authentication token lock busy",
107*10b5fe87SSascha Wildner 	[PAM_AUTHTOK_DISABLE_AGING]	 = "Authentication token aging disabled",
108*10b5fe87SSascha Wildner 	[PAM_NO_MODULE_DATA]		 = "Module data not found",
109*10b5fe87SSascha Wildner 	[PAM_IGNORE]			 = "Ignore this module",
110*10b5fe87SSascha Wildner 	[PAM_ABORT]			 = "General failure",
111*10b5fe87SSascha Wildner 	[PAM_TRY_AGAIN]			 = "Try again",
112*10b5fe87SSascha Wildner 	[PAM_MODULE_UNKNOWN]		 = "Unknown module type",
113*10b5fe87SSascha Wildner 	[PAM_DOMAIN_UNKNOWN]		 = "Unknown authentication domain",
114*10b5fe87SSascha Wildner 	[PAM_BAD_HANDLE]		 = "Invalid PAM handle",
115*10b5fe87SSascha Wildner 	[PAM_BAD_ITEM]			 = "Unrecognized or restricted item",
116*10b5fe87SSascha Wildner 	[PAM_BAD_FEATURE]		 = "Unrecognized or restricted feature",
117*10b5fe87SSascha Wildner 	[PAM_BAD_CONSTANT]		 = "Invalid constant",
118*10b5fe87SSascha Wildner };
119*10b5fe87SSascha Wildner 
120*10b5fe87SSascha Wildner const char *pam_item_name[PAM_NUM_ITEMS] = {
121*10b5fe87SSascha Wildner 	[PAM_SERVICE]		 = "PAM_SERVICE",
122*10b5fe87SSascha Wildner 	[PAM_USER]		 = "PAM_USER",
123*10b5fe87SSascha Wildner 	[PAM_TTY]		 = "PAM_TTY",
124*10b5fe87SSascha Wildner 	[PAM_RHOST]		 = "PAM_RHOST",
125*10b5fe87SSascha Wildner 	[PAM_CONV]		 = "PAM_CONV",
126*10b5fe87SSascha Wildner 	[PAM_AUTHTOK]		 = "PAM_AUTHTOK",
127*10b5fe87SSascha Wildner 	[PAM_OLDAUTHTOK]	 = "PAM_OLDAUTHTOK",
128*10b5fe87SSascha Wildner 	[PAM_RUSER]		 = "PAM_RUSER",
129*10b5fe87SSascha Wildner 	[PAM_USER_PROMPT]	 = "PAM_USER_PROMPT",
130*10b5fe87SSascha Wildner 	[PAM_REPOSITORY]	 = "PAM_REPOSITORY",
131*10b5fe87SSascha Wildner 	[PAM_AUTHTOK_PROMPT]	 = "PAM_AUTHTOK_PROMPT",
132*10b5fe87SSascha Wildner 	[PAM_OLDAUTHTOK_PROMPT]	 = "PAM_OLDAUTHTOK_PROMPT",
133*10b5fe87SSascha Wildner 	[PAM_HOST]		 = "PAM_HOST",
134*10b5fe87SSascha Wildner };
135*10b5fe87SSascha Wildner 
136*10b5fe87SSascha Wildner const char *pam_facility_name[PAM_NUM_FACILITIES] = {
137*10b5fe87SSascha Wildner 	[PAM_ACCOUNT]		 = "account",
138*10b5fe87SSascha Wildner 	[PAM_AUTH]		 = "auth",
139*10b5fe87SSascha Wildner 	[PAM_PASSWORD]		 = "password",
140*10b5fe87SSascha Wildner 	[PAM_SESSION]		 = "session",
141*10b5fe87SSascha Wildner };
142*10b5fe87SSascha Wildner 
143*10b5fe87SSascha Wildner const char *pam_control_flag_name[PAM_NUM_CONTROL_FLAGS] = {
144*10b5fe87SSascha Wildner 	[PAM_BINDING]		 = "binding",
145*10b5fe87SSascha Wildner 	[PAM_OPTIONAL]		 = "optional",
146*10b5fe87SSascha Wildner 	[PAM_REQUIRED]		 = "required",
147*10b5fe87SSascha Wildner 	[PAM_REQUISITE]		 = "requisite",
148*10b5fe87SSascha Wildner 	[PAM_SUFFICIENT]	 = "sufficient",
149*10b5fe87SSascha Wildner };
150*10b5fe87SSascha Wildner 
151*10b5fe87SSascha Wildner const char *pam_func_name[PAM_NUM_PRIMITIVES] = {
152*10b5fe87SSascha Wildner 	[PAM_SM_AUTHENTICATE]	 = "pam_authenticate",
153*10b5fe87SSascha Wildner 	[PAM_SM_SETCRED]	 = "pam_setcred",
154*10b5fe87SSascha Wildner 	[PAM_SM_ACCT_MGMT]	 = "pam_acct_mgmt",
155*10b5fe87SSascha Wildner 	[PAM_SM_OPEN_SESSION]	 = "pam_open_session",
156*10b5fe87SSascha Wildner 	[PAM_SM_CLOSE_SESSION]	 = "pam_close_session",
157*10b5fe87SSascha Wildner 	[PAM_SM_CHAUTHTOK]	 = "pam_chauthtok"
158*10b5fe87SSascha Wildner };
159*10b5fe87SSascha Wildner 
160*10b5fe87SSascha Wildner const char *pam_sm_func_name[PAM_NUM_PRIMITIVES] = {
161*10b5fe87SSascha Wildner 	[PAM_SM_AUTHENTICATE]	 = "pam_sm_authenticate",
162*10b5fe87SSascha Wildner 	[PAM_SM_SETCRED]	 = "pam_sm_setcred",
163*10b5fe87SSascha Wildner 	[PAM_SM_ACCT_MGMT]	 = "pam_sm_acct_mgmt",
164*10b5fe87SSascha Wildner 	[PAM_SM_OPEN_SESSION]	 = "pam_sm_open_session",
165*10b5fe87SSascha Wildner 	[PAM_SM_CLOSE_SESSION]	 = "pam_sm_close_session",
166*10b5fe87SSascha Wildner 	[PAM_SM_CHAUTHTOK]	 = "pam_sm_chauthtok"
167*10b5fe87SSascha Wildner };
168*10b5fe87SSascha Wildner 
169*10b5fe87SSascha Wildner const char *openpam_policy_path[] = {
170*10b5fe87SSascha Wildner 	"/etc/pam.d/",
171*10b5fe87SSascha Wildner 	"/etc/pam.conf",
172*10b5fe87SSascha Wildner 	"/usr/local/etc/pam.d/",
173*10b5fe87SSascha Wildner 	"/usr/local/etc/pam.conf",
174*10b5fe87SSascha Wildner 	NULL
175*10b5fe87SSascha Wildner };
176*10b5fe87SSascha Wildner 
177*10b5fe87SSascha Wildner const char *openpam_module_path[] = {
178*10b5fe87SSascha Wildner #ifdef OPENPAM_MODULES_DIRECTORY
179*10b5fe87SSascha Wildner 	OPENPAM_MODULES_DIRECTORY,
180*10b5fe87SSascha Wildner #else
181*10b5fe87SSascha Wildner 	"/usr/lib",
182*10b5fe87SSascha Wildner 	"/usr/local/lib",
183*10b5fe87SSascha Wildner #endif
184*10b5fe87SSascha Wildner 	NULL
185*10b5fe87SSascha Wildner };
186