xref: /freebsd/contrib/openpam/lib/libpam/openpam_constants.c (revision d00a98d639ca2e977d6f3396d7c429cb2f836c49)
1f7e6344dSDag-Erling Smørgrav /*-
2f7e6344dSDag-Erling Smørgrav  * Copyright (c) 2001-2003 Networks Associates Technology, Inc.
345538173SDag-Erling Smørgrav  * Copyright (c) 2004-2025 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  */
35f7e6344dSDag-Erling Smørgrav 
36f7e6344dSDag-Erling Smørgrav #ifdef HAVE_CONFIG_H
37f7e6344dSDag-Erling Smørgrav # include "config.h"
38f7e6344dSDag-Erling Smørgrav #endif
39f7e6344dSDag-Erling Smørgrav 
40f7e6344dSDag-Erling Smørgrav #include <security/pam_appl.h>
41f7e6344dSDag-Erling Smørgrav 
42f7e6344dSDag-Erling Smørgrav #include "openpam_impl.h"
43f7e6344dSDag-Erling Smørgrav 
44f7e6344dSDag-Erling Smørgrav const char *pam_err_name[PAM_NUM_ERRORS] = {
4549e56509SDag-Erling Smørgrav 	[PAM_SUCCESS]			 = "PAM_SUCCESS",
4649e56509SDag-Erling Smørgrav 	[PAM_OPEN_ERR]			 = "PAM_OPEN_ERR",
4749e56509SDag-Erling Smørgrav 	[PAM_SYMBOL_ERR]		 = "PAM_SYMBOL_ERR",
4849e56509SDag-Erling Smørgrav 	[PAM_SERVICE_ERR]		 = "PAM_SERVICE_ERR",
4949e56509SDag-Erling Smørgrav 	[PAM_SYSTEM_ERR]		 = "PAM_SYSTEM_ERR",
5049e56509SDag-Erling Smørgrav 	[PAM_BUF_ERR]			 = "PAM_BUF_ERR",
5149e56509SDag-Erling Smørgrav 	[PAM_CONV_ERR]			 = "PAM_CONV_ERR",
5249e56509SDag-Erling Smørgrav 	[PAM_PERM_DENIED]		 = "PAM_PERM_DENIED",
5349e56509SDag-Erling Smørgrav 	[PAM_MAXTRIES]			 = "PAM_MAXTRIES",
5449e56509SDag-Erling Smørgrav 	[PAM_AUTH_ERR]			 = "PAM_AUTH_ERR",
5549e56509SDag-Erling Smørgrav 	[PAM_NEW_AUTHTOK_REQD]		 = "PAM_NEW_AUTHTOK_REQD",
5649e56509SDag-Erling Smørgrav 	[PAM_CRED_INSUFFICIENT]		 = "PAM_CRED_INSUFFICIENT",
5749e56509SDag-Erling Smørgrav 	[PAM_AUTHINFO_UNAVAIL]		 = "PAM_AUTHINFO_UNAVAIL",
5849e56509SDag-Erling Smørgrav 	[PAM_USER_UNKNOWN]		 = "PAM_USER_UNKNOWN",
5949e56509SDag-Erling Smørgrav 	[PAM_CRED_UNAVAIL]		 = "PAM_CRED_UNAVAIL",
6049e56509SDag-Erling Smørgrav 	[PAM_CRED_EXPIRED]		 = "PAM_CRED_EXPIRED",
6149e56509SDag-Erling Smørgrav 	[PAM_CRED_ERR]			 = "PAM_CRED_ERR",
6249e56509SDag-Erling Smørgrav 	[PAM_ACCT_EXPIRED]		 = "PAM_ACCT_EXPIRED",
6349e56509SDag-Erling Smørgrav 	[PAM_AUTHTOK_EXPIRED]		 = "PAM_AUTHTOK_EXPIRED",
6449e56509SDag-Erling Smørgrav 	[PAM_SESSION_ERR]		 = "PAM_SESSION_ERR",
6549e56509SDag-Erling Smørgrav 	[PAM_AUTHTOK_ERR]		 = "PAM_AUTHTOK_ERR",
6649e56509SDag-Erling Smørgrav 	[PAM_AUTHTOK_RECOVERY_ERR]	 = "PAM_AUTHTOK_RECOVERY_ERR",
6749e56509SDag-Erling Smørgrav 	[PAM_AUTHTOK_LOCK_BUSY]		 = "PAM_AUTHTOK_LOCK_BUSY",
6849e56509SDag-Erling Smørgrav 	[PAM_AUTHTOK_DISABLE_AGING]	 = "PAM_AUTHTOK_DISABLE_AGING",
6949e56509SDag-Erling Smørgrav 	[PAM_NO_MODULE_DATA]		 = "PAM_NO_MODULE_DATA",
7049e56509SDag-Erling Smørgrav 	[PAM_IGNORE]			 = "PAM_IGNORE",
7149e56509SDag-Erling Smørgrav 	[PAM_ABORT]			 = "PAM_ABORT",
7249e56509SDag-Erling Smørgrav 	[PAM_TRY_AGAIN]			 = "PAM_TRY_AGAIN",
7349e56509SDag-Erling Smørgrav 	[PAM_MODULE_UNKNOWN]		 = "PAM_MODULE_UNKNOWN",
7449e56509SDag-Erling Smørgrav 	[PAM_DOMAIN_UNKNOWN]		 = "PAM_DOMAIN_UNKNOWN",
7549e56509SDag-Erling Smørgrav 	[PAM_BAD_HANDLE]		 = "PAM_BAD_HANDLE",
7649e56509SDag-Erling Smørgrav 	[PAM_BAD_ITEM]			 = "PAM_BAD_ITEM",
7749e56509SDag-Erling Smørgrav 	[PAM_BAD_FEATURE]		 = "PAM_BAD_FEATURE",
7849e56509SDag-Erling Smørgrav 	[PAM_BAD_CONSTANT]		 = "PAM_BAD_CONSTANT",
7949e56509SDag-Erling Smørgrav };
8049e56509SDag-Erling Smørgrav 
8149e56509SDag-Erling Smørgrav const char *pam_err_text[PAM_NUM_ERRORS] = {
8249e56509SDag-Erling Smørgrav 	[PAM_SUCCESS]			 = "Success",
8349e56509SDag-Erling Smørgrav 	[PAM_OPEN_ERR]			 = "Failed to load module",
8449e56509SDag-Erling Smørgrav 	[PAM_SYMBOL_ERR]		 = "Invalid symbol",
8549e56509SDag-Erling Smørgrav 	[PAM_SERVICE_ERR]		 = "Error in service module",
8649e56509SDag-Erling Smørgrav 	[PAM_SYSTEM_ERR]		 = "System error",
8749e56509SDag-Erling Smørgrav 	[PAM_BUF_ERR]			 = "Memory buffer error",
8849e56509SDag-Erling Smørgrav 	[PAM_CONV_ERR]			 = "Conversation failure",
8949e56509SDag-Erling Smørgrav 	[PAM_PERM_DENIED]		 = "Permission denied",
9049e56509SDag-Erling Smørgrav 	[PAM_MAXTRIES]			 = "Maximum number of tries exceeded",
9149e56509SDag-Erling Smørgrav 	[PAM_AUTH_ERR]			 = "Authentication error",
9249e56509SDag-Erling Smørgrav 	[PAM_NEW_AUTHTOK_REQD]		 = "New authentication token required",
9349e56509SDag-Erling Smørgrav 	[PAM_CRED_INSUFFICIENT]		 = "Insufficient credentials",
9449e56509SDag-Erling Smørgrav 	[PAM_AUTHINFO_UNAVAIL]		 = "Authentication information is unavailable",
9549e56509SDag-Erling Smørgrav 	[PAM_USER_UNKNOWN]		 = "Unknown user",
9649e56509SDag-Erling Smørgrav 	[PAM_CRED_UNAVAIL]		 = "Failed to retrieve user credentials",
9749e56509SDag-Erling Smørgrav 	[PAM_CRED_EXPIRED]		 = "User credentials have expired",
9849e56509SDag-Erling Smørgrav 	[PAM_CRED_ERR]			 = "Failed to set user credentials",
9949e56509SDag-Erling Smørgrav 	[PAM_ACCT_EXPIRED]		 = "User account has expired",
10049e56509SDag-Erling Smørgrav 	[PAM_AUTHTOK_EXPIRED]		 = "Password has expired",
10149e56509SDag-Erling Smørgrav 	[PAM_SESSION_ERR]		 = "Session failure",
10249e56509SDag-Erling Smørgrav 	[PAM_AUTHTOK_ERR]		 = "Authentication token failure",
10349e56509SDag-Erling Smørgrav 	[PAM_AUTHTOK_RECOVERY_ERR]	 = "Failed to recover old authentication token",
10449e56509SDag-Erling Smørgrav 	[PAM_AUTHTOK_LOCK_BUSY]		 = "Authentication token lock busy",
10549e56509SDag-Erling Smørgrav 	[PAM_AUTHTOK_DISABLE_AGING]	 = "Authentication token aging disabled",
10649e56509SDag-Erling Smørgrav 	[PAM_NO_MODULE_DATA]		 = "Module data not found",
10749e56509SDag-Erling Smørgrav 	[PAM_IGNORE]			 = "Ignore this module",
10849e56509SDag-Erling Smørgrav 	[PAM_ABORT]			 = "General failure",
10949e56509SDag-Erling Smørgrav 	[PAM_TRY_AGAIN]			 = "Try again",
11049e56509SDag-Erling Smørgrav 	[PAM_MODULE_UNKNOWN]		 = "Unknown module type",
11149e56509SDag-Erling Smørgrav 	[PAM_DOMAIN_UNKNOWN]		 = "Unknown authentication domain",
11249e56509SDag-Erling Smørgrav 	[PAM_BAD_HANDLE]		 = "Invalid PAM handle",
11349e56509SDag-Erling Smørgrav 	[PAM_BAD_ITEM]			 = "Unrecognized or restricted item",
11449e56509SDag-Erling Smørgrav 	[PAM_BAD_FEATURE]		 = "Unrecognized or restricted feature",
11549e56509SDag-Erling Smørgrav 	[PAM_BAD_CONSTANT]		 = "Invalid constant",
116f7e6344dSDag-Erling Smørgrav };
117f7e6344dSDag-Erling Smørgrav 
118f7e6344dSDag-Erling Smørgrav const char *pam_item_name[PAM_NUM_ITEMS] = {
11949e56509SDag-Erling Smørgrav 	[PAM_SERVICE]		 = "PAM_SERVICE",
12049e56509SDag-Erling Smørgrav 	[PAM_USER]		 = "PAM_USER",
12149e56509SDag-Erling Smørgrav 	[PAM_TTY]		 = "PAM_TTY",
12249e56509SDag-Erling Smørgrav 	[PAM_RHOST]		 = "PAM_RHOST",
12349e56509SDag-Erling Smørgrav 	[PAM_CONV]		 = "PAM_CONV",
12449e56509SDag-Erling Smørgrav 	[PAM_AUTHTOK]		 = "PAM_AUTHTOK",
12549e56509SDag-Erling Smørgrav 	[PAM_OLDAUTHTOK]	 = "PAM_OLDAUTHTOK",
12649e56509SDag-Erling Smørgrav 	[PAM_RUSER]		 = "PAM_RUSER",
12749e56509SDag-Erling Smørgrav 	[PAM_USER_PROMPT]	 = "PAM_USER_PROMPT",
12849e56509SDag-Erling Smørgrav 	[PAM_REPOSITORY]	 = "PAM_REPOSITORY",
12949e56509SDag-Erling Smørgrav 	[PAM_AUTHTOK_PROMPT]	 = "PAM_AUTHTOK_PROMPT",
13049e56509SDag-Erling Smørgrav 	[PAM_OLDAUTHTOK_PROMPT]	 = "PAM_OLDAUTHTOK_PROMPT",
13149e56509SDag-Erling Smørgrav 	[PAM_HOST]		 = "PAM_HOST",
132f7e6344dSDag-Erling Smørgrav };
133f7e6344dSDag-Erling Smørgrav 
134f7e6344dSDag-Erling Smørgrav const char *pam_facility_name[PAM_NUM_FACILITIES] = {
135f7e6344dSDag-Erling Smørgrav 	[PAM_ACCOUNT]		 = "account",
136f7e6344dSDag-Erling Smørgrav 	[PAM_AUTH]		 = "auth",
137f7e6344dSDag-Erling Smørgrav 	[PAM_PASSWORD]		 = "password",
138f7e6344dSDag-Erling Smørgrav 	[PAM_SESSION]		 = "session",
139f7e6344dSDag-Erling Smørgrav };
140f7e6344dSDag-Erling Smørgrav 
141f7e6344dSDag-Erling Smørgrav const char *pam_control_flag_name[PAM_NUM_CONTROL_FLAGS] = {
142f7e6344dSDag-Erling Smørgrav 	[PAM_BINDING]		 = "binding",
143f7e6344dSDag-Erling Smørgrav 	[PAM_OPTIONAL]		 = "optional",
144f7e6344dSDag-Erling Smørgrav 	[PAM_REQUIRED]		 = "required",
145f7e6344dSDag-Erling Smørgrav 	[PAM_REQUISITE]		 = "requisite",
146f7e6344dSDag-Erling Smørgrav 	[PAM_SUFFICIENT]	 = "sufficient",
147f7e6344dSDag-Erling Smørgrav };
148f7e6344dSDag-Erling Smørgrav 
149f7e6344dSDag-Erling Smørgrav const char *pam_func_name[PAM_NUM_PRIMITIVES] = {
15049e56509SDag-Erling Smørgrav 	[PAM_SM_AUTHENTICATE]	 = "pam_authenticate",
15149e56509SDag-Erling Smørgrav 	[PAM_SM_SETCRED]	 = "pam_setcred",
15249e56509SDag-Erling Smørgrav 	[PAM_SM_ACCT_MGMT]	 = "pam_acct_mgmt",
15349e56509SDag-Erling Smørgrav 	[PAM_SM_OPEN_SESSION]	 = "pam_open_session",
15449e56509SDag-Erling Smørgrav 	[PAM_SM_CLOSE_SESSION]	 = "pam_close_session",
15549e56509SDag-Erling Smørgrav 	[PAM_SM_CHAUTHTOK]	 = "pam_chauthtok"
156f7e6344dSDag-Erling Smørgrav };
157f7e6344dSDag-Erling Smørgrav 
158f7e6344dSDag-Erling Smørgrav const char *pam_sm_func_name[PAM_NUM_PRIMITIVES] = {
15949e56509SDag-Erling Smørgrav 	[PAM_SM_AUTHENTICATE]	 = "pam_sm_authenticate",
16049e56509SDag-Erling Smørgrav 	[PAM_SM_SETCRED]	 = "pam_sm_setcred",
16149e56509SDag-Erling Smørgrav 	[PAM_SM_ACCT_MGMT]	 = "pam_sm_acct_mgmt",
16249e56509SDag-Erling Smørgrav 	[PAM_SM_OPEN_SESSION]	 = "pam_sm_open_session",
16349e56509SDag-Erling Smørgrav 	[PAM_SM_CLOSE_SESSION]	 = "pam_sm_close_session",
16449e56509SDag-Erling Smørgrav 	[PAM_SM_CHAUTHTOK]	 = "pam_sm_chauthtok"
165f7e6344dSDag-Erling Smørgrav };
166ce77a8d6SDag-Erling Smørgrav 
167ce77a8d6SDag-Erling Smørgrav const char *openpam_policy_path[] = {
168ce77a8d6SDag-Erling Smørgrav 	"/etc/pam.d/",
169ce77a8d6SDag-Erling Smørgrav 	"/etc/pam.conf",
17045538173SDag-Erling Smørgrav #ifdef LOCALBASE
17145538173SDag-Erling Smørgrav 	LOCALBASE "/etc/pam.d/",
17245538173SDag-Erling Smørgrav 	LOCALBASE "/etc/pam.conf",
17345538173SDag-Erling Smørgrav #endif
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,
1800ade2f8cSJessica Clarke #elif defined(COMPAT_libcompat)
1810ade2f8cSJessica Clarke 	"/usr/lib" COMPAT_libcompat,
182*d00a98d6SDag-Erling Smørgrav #ifdef LOCALBASE
183*d00a98d6SDag-Erling Smørgrav 	LOCALBASE "/lib" COMPAT_libcompat,
184*d00a98d6SDag-Erling Smørgrav #endif
185ce77a8d6SDag-Erling Smørgrav #else
186ce77a8d6SDag-Erling Smørgrav 	"/usr/lib",
18745538173SDag-Erling Smørgrav #ifdef LOCALBASE
18845538173SDag-Erling Smørgrav 	LOCALBASE "/lib",
18945538173SDag-Erling Smørgrav #endif
190ce77a8d6SDag-Erling Smørgrav #endif
191ce77a8d6SDag-Erling Smørgrav 	NULL
192ce77a8d6SDag-Erling Smørgrav };
193