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