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