source: openpam/trunk/lib/libpam/openpam_constants.c @ 931

Last change on this file since 931 was 931, checked in by Dag-Erling Smørgrav, 4 years ago

Introduce an array of error strings and use it wherever applicable.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 6.8 KB
Line 
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 931 2017-04-26 19:23:50Z 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
46const char *pam_err_name[PAM_NUM_ERRORS] = {
47        [PAM_SUCCESS]                    = "PAM_SUCCESS",
48        [PAM_OPEN_ERR]                   = "PAM_OPEN_ERR",
49        [PAM_SYMBOL_ERR]                 = "PAM_SYMBOL_ERR",
50        [PAM_SERVICE_ERR]                = "PAM_SERVICE_ERR",
51        [PAM_SYSTEM_ERR]                 = "PAM_SYSTEM_ERR",
52        [PAM_BUF_ERR]                    = "PAM_BUF_ERR",
53        [PAM_CONV_ERR]                   = "PAM_CONV_ERR",
54        [PAM_PERM_DENIED]                = "PAM_PERM_DENIED",
55        [PAM_MAXTRIES]                   = "PAM_MAXTRIES",
56        [PAM_AUTH_ERR]                   = "PAM_AUTH_ERR",
57        [PAM_NEW_AUTHTOK_REQD]           = "PAM_NEW_AUTHTOK_REQD",
58        [PAM_CRED_INSUFFICIENT]          = "PAM_CRED_INSUFFICIENT",
59        [PAM_AUTHINFO_UNAVAIL]           = "PAM_AUTHINFO_UNAVAIL",
60        [PAM_USER_UNKNOWN]               = "PAM_USER_UNKNOWN",
61        [PAM_CRED_UNAVAIL]               = "PAM_CRED_UNAVAIL",
62        [PAM_CRED_EXPIRED]               = "PAM_CRED_EXPIRED",
63        [PAM_CRED_ERR]                   = "PAM_CRED_ERR",
64        [PAM_ACCT_EXPIRED]               = "PAM_ACCT_EXPIRED",
65        [PAM_AUTHTOK_EXPIRED]            = "PAM_AUTHTOK_EXPIRED",
66        [PAM_SESSION_ERR]                = "PAM_SESSION_ERR",
67        [PAM_AUTHTOK_ERR]                = "PAM_AUTHTOK_ERR",
68        [PAM_AUTHTOK_RECOVERY_ERR]       = "PAM_AUTHTOK_RECOVERY_ERR",
69        [PAM_AUTHTOK_LOCK_BUSY]          = "PAM_AUTHTOK_LOCK_BUSY",
70        [PAM_AUTHTOK_DISABLE_AGING]      = "PAM_AUTHTOK_DISABLE_AGING",
71        [PAM_NO_MODULE_DATA]             = "PAM_NO_MODULE_DATA",
72        [PAM_IGNORE]                     = "PAM_IGNORE",
73        [PAM_ABORT]                      = "PAM_ABORT",
74        [PAM_TRY_AGAIN]                  = "PAM_TRY_AGAIN",
75        [PAM_MODULE_UNKNOWN]             = "PAM_MODULE_UNKNOWN",
76        [PAM_DOMAIN_UNKNOWN]             = "PAM_DOMAIN_UNKNOWN",
77        [PAM_BAD_HANDLE]                 = "PAM_BAD_HANDLE",
78        [PAM_BAD_ITEM]                   = "PAM_BAD_ITEM",
79};
80
81const char *pam_err_text[PAM_NUM_ERRORS] = {
82        [PAM_SUCCESS]                    = "Success",
83        [PAM_OPEN_ERR]                   = "Failed to load module",
84        [PAM_SYMBOL_ERR]                 = "Invalid symbol",
85        [PAM_SERVICE_ERR]                = "Error in service module",
86        [PAM_SYSTEM_ERR]                 = "System error",
87        [PAM_BUF_ERR]                    = "Memory buffer error",
88        [PAM_CONV_ERR]                   = "Conversation failure",
89        [PAM_PERM_DENIED]                = "Permission denied",
90        [PAM_MAXTRIES]                   = "Maximum number of tries exceeded",
91        [PAM_AUTH_ERR]                   = "Authentication error",
92        [PAM_NEW_AUTHTOK_REQD]           = "New authentication token required",
93        [PAM_CRED_INSUFFICIENT]          = "Insufficient credentials",
94        [PAM_AUTHINFO_UNAVAIL]           = "Authentication information is unavailable",
95        [PAM_USER_UNKNOWN]               = "Unknown user",
96        [PAM_CRED_UNAVAIL]               = "Failed to retrieve user credentials",
97        [PAM_CRED_EXPIRED]               = "User credentials have expired",
98        [PAM_CRED_ERR]                   = "Failed to set user credentials",
99        [PAM_ACCT_EXPIRED]               = "User account has expired",
100        [PAM_AUTHTOK_EXPIRED]            = "Password has expired",
101        [PAM_SESSION_ERR]                = "Session failure",
102        [PAM_AUTHTOK_ERR]                = "Authentication token failure",
103        [PAM_AUTHTOK_RECOVERY_ERR]       = "Failed to recover old authentication token",
104        [PAM_AUTHTOK_LOCK_BUSY]          = "Authentication token lock busy",
105        [PAM_AUTHTOK_DISABLE_AGING]      = "Authentication token aging disabled",
106        [PAM_NO_MODULE_DATA]             = "Module data not found",
107        [PAM_IGNORE]                     = "Ignore this module",
108        [PAM_ABORT]                      = "General failure",
109        [PAM_TRY_AGAIN]                  = "Try again",
110        [PAM_MODULE_UNKNOWN]             = "Unknown module type",
111        [PAM_DOMAIN_UNKNOWN]             = "Unknown authentication domain",
112        [PAM_BAD_HANDLE]                 = "Invalid PAM handle",
113        [PAM_BAD_ITEM]                   = "Unrecognized or restricted item",
114};
115
116const char *pam_item_name[PAM_NUM_ITEMS] = {
117        [PAM_SERVICE]            = "PAM_SERVICE",
118        [PAM_USER]               = "PAM_USER",
119        [PAM_TTY]                = "PAM_TTY",
120        [PAM_RHOST]              = "PAM_RHOST",
121        [PAM_CONV]               = "PAM_CONV",
122        [PAM_AUTHTOK]            = "PAM_AUTHTOK",
123        [PAM_OLDAUTHTOK]         = "PAM_OLDAUTHTOK",
124        [PAM_RUSER]              = "PAM_RUSER",
125        [PAM_USER_PROMPT]        = "PAM_USER_PROMPT",
126        [PAM_REPOSITORY]         = "PAM_REPOSITORY",
127        [PAM_AUTHTOK_PROMPT]     = "PAM_AUTHTOK_PROMPT",
128        [PAM_OLDAUTHTOK_PROMPT]  = "PAM_OLDAUTHTOK_PROMPT",
129        [PAM_HOST]               = "PAM_HOST",
130};
131
132const char *pam_facility_name[PAM_NUM_FACILITIES] = {
133        [PAM_ACCOUNT]            = "account",
134        [PAM_AUTH]               = "auth",
135        [PAM_PASSWORD]           = "password",
136        [PAM_SESSION]            = "session",
137};
138
139const char *pam_control_flag_name[PAM_NUM_CONTROL_FLAGS] = {
140        [PAM_BINDING]            = "binding",
141        [PAM_OPTIONAL]           = "optional",
142        [PAM_REQUIRED]           = "required",
143        [PAM_REQUISITE]          = "requisite",
144        [PAM_SUFFICIENT]         = "sufficient",
145};
146
147const char *pam_func_name[PAM_NUM_PRIMITIVES] = {
148        [PAM_SM_AUTHENTICATE]    = "pam_authenticate",
149        [PAM_SM_SETCRED]         = "pam_setcred",
150        [PAM_SM_ACCT_MGMT]       = "pam_acct_mgmt",
151        [PAM_SM_OPEN_SESSION]    = "pam_open_session",
152        [PAM_SM_CLOSE_SESSION]   = "pam_close_session",
153        [PAM_SM_CHAUTHTOK]       = "pam_chauthtok"
154};
155
156const char *pam_sm_func_name[PAM_NUM_PRIMITIVES] = {
157        [PAM_SM_AUTHENTICATE]    = "pam_sm_authenticate",
158        [PAM_SM_SETCRED]         = "pam_sm_setcred",
159        [PAM_SM_ACCT_MGMT]       = "pam_sm_acct_mgmt",
160        [PAM_SM_OPEN_SESSION]    = "pam_sm_open_session",
161        [PAM_SM_CLOSE_SESSION]   = "pam_sm_close_session",
162        [PAM_SM_CHAUTHTOK]       = "pam_sm_chauthtok"
163};
164
165const char *openpam_policy_path[] = {
166        "/etc/pam.d/",
167        "/etc/pam.conf",
168        "/usr/local/etc/pam.d/",
169        "/usr/local/etc/pam.conf",
170        NULL
171};
172
173const char *openpam_module_path[] = {
174#ifdef OPENPAM_MODULES_DIRECTORY
175        OPENPAM_MODULES_DIRECTORY,
176#else
177        "/usr/lib",
178        "/usr/local/lib",
179#endif
180        NULL
181};
Note: See TracBrowser for help on using the repository browser.