1 /*-
2  * Copyright (c) 2001-2003 Networks Associates Technology, Inc.
3  * Copyright (c) 2004-2011 Dag-Erling Smørgrav
4  * All rights reserved.
5  *
6  * This software was developed for the FreeBSD Project by ThinkSec AS and
7  * Network Associates Laboratories, the Security Research Division of
8  * Network Associates, Inc.  under DARPA/SPAWAR contract N66001-01-C-8035
9  * ("CBOSS"), as part of the DARPA CHATS research program.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions and the following disclaimer.
16  * 2. Redistributions in binary form must reproduce the above copyright
17  *    notice, this list of conditions and the following disclaimer in the
18  *    documentation and/or other materials provided with the distribution.
19  * 3. The name of the author may not be used to endorse or promote
20  *    products derived from this software without specific prior written
21  *    permission.
22  *
23  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
24  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
27  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33  * SUCH DAMAGE.
34  *
35  * $Id: openpam_constants.c 690 2013-08-15 13:22:51Z des $
36  */
37 
38 #ifdef HAVE_CONFIG_H
39 # include "config.h"
40 #endif
41 
42 #include <security/pam_appl.h>
43 
44 #include "openpam_impl.h"
45 
46 const char *pam_err_name[PAM_NUM_ERRORS] = {
47 	"PAM_SUCCESS",
48 	"PAM_OPEN_ERR",
49 	"PAM_SYMBOL_ERR",
50 	"PAM_SERVICE_ERR",
51 	"PAM_SYSTEM_ERR",
52 	"PAM_BUF_ERR",
53 	"PAM_CONV_ERR",
54 	"PAM_PERM_DENIED",
55 	"PAM_MAXTRIES",
56 	"PAM_AUTH_ERR",
57 	"PAM_NEW_AUTHTOK_REQD",
58 	"PAM_CRED_INSUFFICIENT",
59 	"PAM_AUTHINFO_UNAVAIL",
60 	"PAM_USER_UNKNOWN",
61 	"PAM_CRED_UNAVAIL",
62 	"PAM_CRED_EXPIRED",
63 	"PAM_CRED_ERR",
64 	"PAM_ACCT_EXPIRED",
65 	"PAM_AUTHTOK_EXPIRED",
66 	"PAM_SESSION_ERR",
67 	"PAM_AUTHTOK_ERR",
68 	"PAM_AUTHTOK_RECOVERY_ERR",
69 	"PAM_AUTHTOK_LOCK_BUSY",
70 	"PAM_AUTHTOK_DISABLE_AGING",
71 	"PAM_NO_MODULE_DATA",
72 	"PAM_IGNORE",
73 	"PAM_ABORT",
74 	"PAM_TRY_AGAIN",
75 	"PAM_MODULE_UNKNOWN",
76 	"PAM_DOMAIN_UNKNOWN"
77 };
78 
79 const char *pam_item_name[PAM_NUM_ITEMS] = {
80 	"(NO ITEM)",
81 	"PAM_SERVICE",
82 	"PAM_USER",
83 	"PAM_TTY",
84 	"PAM_RHOST",
85 	"PAM_CONV",
86 	"PAM_AUTHTOK",
87 	"PAM_OLDAUTHTOK",
88 	"PAM_RUSER",
89 	"PAM_USER_PROMPT",
90 	"PAM_REPOSITORY",
91 	"PAM_AUTHTOK_PROMPT",
92 	"PAM_OLDAUTHTOK_PROMPT",
93 	"PAM_HOST",
94 };
95 
96 const char *pam_facility_name[PAM_NUM_FACILITIES] = {
97 	[PAM_ACCOUNT]		= "account",
98 	[PAM_AUTH]		= "auth",
99 	[PAM_PASSWORD]		= "password",
100 	[PAM_SESSION]		= "session",
101 };
102 
103 const char *pam_control_flag_name[PAM_NUM_CONTROL_FLAGS] = {
104 	[PAM_BINDING]		= "binding",
105 	[PAM_OPTIONAL]		= "optional",
106 	[PAM_REQUIRED]		= "required",
107 	[PAM_REQUISITE]		= "requisite",
108 	[PAM_SUFFICIENT]	= "sufficient",
109 };
110 
111 const char *pam_func_name[PAM_NUM_PRIMITIVES] = {
112 	"pam_authenticate",
113 	"pam_setcred",
114 	"pam_acct_mgmt",
115 	"pam_open_session",
116 	"pam_close_session",
117 	"pam_chauthtok"
118 };
119 
120 const char *pam_sm_func_name[PAM_NUM_PRIMITIVES] = {
121 	"pam_sm_authenticate",
122 	"pam_sm_setcred",
123 	"pam_sm_acct_mgmt",
124 	"pam_sm_open_session",
125 	"pam_sm_close_session",
126 	"pam_sm_chauthtok"
127 };
128 
129 const char *openpam_policy_path[] = {
130 	"/etc/pam.d/",
131 	"/etc/pam.conf",
132 	"/usr/local/etc/pam.d/",
133 	"/usr/local/etc/pam.conf",
134 	NULL
135 };
136 
137 const char *openpam_module_path[] = {
138 #ifdef OPENPAM_MODULES_DIRECTORY
139 	OPENPAM_MODULES_DIRECTORY,
140 #elif COMPAT_32BIT
141 	"/usr/lib32",
142 	"/usr/local/lib32",
143 #else
144 	"/usr/lib",
145 	"/usr/local/lib",
146 #endif
147 	NULL
148 };
149