1ade90846SJoerg Sonnenberger /*- 2ade90846SJoerg Sonnenberger * Copyright (c) 2002-2003 Networks Associates Technology, Inc. 3a474e9feSPeter Avalos * Copyright (c) 2004-2011 Dag-Erling Smørgrav 4ade90846SJoerg Sonnenberger * All rights reserved. 5ade90846SJoerg Sonnenberger * 6ade90846SJoerg Sonnenberger * This software was developed for the FreeBSD Project by ThinkSec AS and 7ade90846SJoerg Sonnenberger * Network Associates Laboratories, the Security Research Division of 8ade90846SJoerg Sonnenberger * Network Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 9ade90846SJoerg Sonnenberger * ("CBOSS"), as part of the DARPA CHATS research program. 10ade90846SJoerg Sonnenberger * 11ade90846SJoerg Sonnenberger * Redistribution and use in source and binary forms, with or without 12ade90846SJoerg Sonnenberger * modification, are permitted provided that the following conditions 13ade90846SJoerg Sonnenberger * are met: 14ade90846SJoerg Sonnenberger * 1. Redistributions of source code must retain the above copyright 15ade90846SJoerg Sonnenberger * notice, this list of conditions and the following disclaimer. 16ade90846SJoerg Sonnenberger * 2. Redistributions in binary form must reproduce the above copyright 17ade90846SJoerg Sonnenberger * notice, this list of conditions and the following disclaimer in the 18ade90846SJoerg Sonnenberger * documentation and/or other materials provided with the distribution. 19ade90846SJoerg Sonnenberger * 3. The name of the author may not be used to endorse or promote 20ade90846SJoerg Sonnenberger * products derived from this software without specific prior written 21ade90846SJoerg Sonnenberger * permission. 22ade90846SJoerg Sonnenberger * 23ade90846SJoerg Sonnenberger * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 24ade90846SJoerg Sonnenberger * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25ade90846SJoerg Sonnenberger * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26ade90846SJoerg Sonnenberger * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 27ade90846SJoerg Sonnenberger * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28ade90846SJoerg Sonnenberger * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29ade90846SJoerg Sonnenberger * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30ade90846SJoerg Sonnenberger * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31ade90846SJoerg Sonnenberger * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32ade90846SJoerg Sonnenberger * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33ade90846SJoerg Sonnenberger * SUCH DAMAGE. 34ade90846SJoerg Sonnenberger * 35*10b5fe87SSascha Wildner * $OpenPAM: pam_modules.h 938 2017-04-30 21:34:42Z des $ 36ade90846SJoerg Sonnenberger */ 37ade90846SJoerg Sonnenberger 38f23594ceSHasso Tepper #ifndef SECURITY_PAM_MODULES_H_INCLUDED 39f23594ceSHasso Tepper #define SECURITY_PAM_MODULES_H_INCLUDED 40ade90846SJoerg Sonnenberger 41ade90846SJoerg Sonnenberger #include <security/pam_types.h> 42ade90846SJoerg Sonnenberger #include <security/pam_constants.h> 43ade90846SJoerg Sonnenberger #include <security/openpam.h> 44ade90846SJoerg Sonnenberger 45ade90846SJoerg Sonnenberger #ifdef __cplusplus 46ade90846SJoerg Sonnenberger extern "C" { 47ade90846SJoerg Sonnenberger #endif 48ade90846SJoerg Sonnenberger 49ade90846SJoerg Sonnenberger /* 50ade90846SJoerg Sonnenberger * XSSO 4.2.2, 6 51ade90846SJoerg Sonnenberger */ 52ade90846SJoerg Sonnenberger 53ade90846SJoerg Sonnenberger #if defined(PAM_SM_ACCOUNT) 54ade90846SJoerg Sonnenberger PAM_EXTERN int 55ade90846SJoerg Sonnenberger pam_sm_acct_mgmt(pam_handle_t *_pamh, 56ade90846SJoerg Sonnenberger int _flags, 57ade90846SJoerg Sonnenberger int _argc, 58ade90846SJoerg Sonnenberger const char **_argv); 59ade90846SJoerg Sonnenberger #endif 60ade90846SJoerg Sonnenberger 61ade90846SJoerg Sonnenberger #if defined(PAM_SM_AUTH) 62ade90846SJoerg Sonnenberger PAM_EXTERN int 63ade90846SJoerg Sonnenberger pam_sm_authenticate(pam_handle_t *_pamh, 64ade90846SJoerg Sonnenberger int _flags, 65ade90846SJoerg Sonnenberger int _argc, 66ade90846SJoerg Sonnenberger const char **_argv); 67ade90846SJoerg Sonnenberger #endif 68ade90846SJoerg Sonnenberger 69ade90846SJoerg Sonnenberger #if defined(PAM_SM_PASSWORD) 70ade90846SJoerg Sonnenberger PAM_EXTERN int 71ade90846SJoerg Sonnenberger pam_sm_chauthtok(pam_handle_t *_pamh, 72ade90846SJoerg Sonnenberger int _flags, 73ade90846SJoerg Sonnenberger int _argc, 74ade90846SJoerg Sonnenberger const char **_argv); 75ade90846SJoerg Sonnenberger #endif 76ade90846SJoerg Sonnenberger 77ade90846SJoerg Sonnenberger #if defined(PAM_SM_SESSION) 78ade90846SJoerg Sonnenberger PAM_EXTERN int 79ade90846SJoerg Sonnenberger pam_sm_close_session(pam_handle_t *_pamh, 80ade90846SJoerg Sonnenberger int _flags, 81ade90846SJoerg Sonnenberger int _args, 82ade90846SJoerg Sonnenberger const char **_argv); 83ade90846SJoerg Sonnenberger #endif 84ade90846SJoerg Sonnenberger 85ade90846SJoerg Sonnenberger #if defined(PAM_SM_SESSION) 86ade90846SJoerg Sonnenberger PAM_EXTERN int 87ade90846SJoerg Sonnenberger pam_sm_open_session(pam_handle_t *_pamh, 88ade90846SJoerg Sonnenberger int _flags, 89ade90846SJoerg Sonnenberger int _argc, 90ade90846SJoerg Sonnenberger const char **_argv); 91ade90846SJoerg Sonnenberger #endif 92ade90846SJoerg Sonnenberger 93ade90846SJoerg Sonnenberger #if defined(PAM_SM_AUTH) 94ade90846SJoerg Sonnenberger PAM_EXTERN int 95ade90846SJoerg Sonnenberger pam_sm_setcred(pam_handle_t *_pamh, 96ade90846SJoerg Sonnenberger int _flags, 97ade90846SJoerg Sonnenberger int _argc, 98ade90846SJoerg Sonnenberger const char **_argv); 99ade90846SJoerg Sonnenberger #endif 100ade90846SJoerg Sonnenberger 101ade90846SJoerg Sonnenberger /* 102ade90846SJoerg Sonnenberger * Single Sign-On extensions 103ade90846SJoerg Sonnenberger */ 104ade90846SJoerg Sonnenberger #if 0 105ade90846SJoerg Sonnenberger PAM_EXTERN int 106ade90846SJoerg Sonnenberger pam_sm_authenticate_secondary(pam_handle_t *_pamh, 107ade90846SJoerg Sonnenberger char *_target_username, 108ade90846SJoerg Sonnenberger char *_target_module_type, 109ade90846SJoerg Sonnenberger char *_target_authn_domain, 110ade90846SJoerg Sonnenberger char *_target_supp_data, 111ade90846SJoerg Sonnenberger unsigned char *_target_module_authtok, 112ade90846SJoerg Sonnenberger int _flags, 113ade90846SJoerg Sonnenberger int _argc, 114ade90846SJoerg Sonnenberger const char **_argv); 115ade90846SJoerg Sonnenberger 116ade90846SJoerg Sonnenberger PAM_EXTERN int 117ade90846SJoerg Sonnenberger pam_sm_get_mapped_authtok(pam_handle_t *_pamh, 118ade90846SJoerg Sonnenberger char *_target_module_username, 119ade90846SJoerg Sonnenberger char *_target_module_type, 120ade90846SJoerg Sonnenberger char *_target_authn_domain, 121ade90846SJoerg Sonnenberger size_t *_target_authtok_len, 122ade90846SJoerg Sonnenberger unsigned char **_target_module_authtok, 123ade90846SJoerg Sonnenberger int _argc, 124ade90846SJoerg Sonnenberger char *_argv); 125ade90846SJoerg Sonnenberger 126ade90846SJoerg Sonnenberger PAM_EXTERN int 127ade90846SJoerg Sonnenberger pam_sm_get_mapped_username(pam_handle_t *_pamh, 128ade90846SJoerg Sonnenberger char *_src_username, 129ade90846SJoerg Sonnenberger char *_src_module_type, 130ade90846SJoerg Sonnenberger char *_src_authn_domain, 131ade90846SJoerg Sonnenberger char *_target_module_type, 132ade90846SJoerg Sonnenberger char *_target_authn_domain, 133ade90846SJoerg Sonnenberger char **_target_module_username, 134ade90846SJoerg Sonnenberger int _argc, 135ade90846SJoerg Sonnenberger const char **_argv); 136ade90846SJoerg Sonnenberger 137ade90846SJoerg Sonnenberger PAM_EXTERN int 138ade90846SJoerg Sonnenberger pam_sm_set_mapped_authtok(pam_handle_t *_pamh, 139ade90846SJoerg Sonnenberger char *_target_module_username, 140ade90846SJoerg Sonnenberger size_t _target_authtok_len, 141ade90846SJoerg Sonnenberger unsigned char *_target_module_authtok, 142ade90846SJoerg Sonnenberger char *_target_module_type, 143ade90846SJoerg Sonnenberger char *_target_authn_domain, 144ade90846SJoerg Sonnenberger int _argc, 145ade90846SJoerg Sonnenberger const char *_argv); 146ade90846SJoerg Sonnenberger 147ade90846SJoerg Sonnenberger PAM_EXTERN int 148ade90846SJoerg Sonnenberger pam_sm_set_mapped_username(pam_handle_t *_pamh, 149ade90846SJoerg Sonnenberger char *_target_module_username, 150ade90846SJoerg Sonnenberger char *_target_module_type, 151ade90846SJoerg Sonnenberger char *_target_authn_domain, 152ade90846SJoerg Sonnenberger int _argc, 153ade90846SJoerg Sonnenberger const char **_argv); 154ade90846SJoerg Sonnenberger 155ade90846SJoerg Sonnenberger #endif /* 0 */ 156ade90846SJoerg Sonnenberger 157ade90846SJoerg Sonnenberger #ifdef __cplusplus 158ade90846SJoerg Sonnenberger } 159ade90846SJoerg Sonnenberger #endif 160ade90846SJoerg Sonnenberger 161f23594ceSHasso Tepper #endif /* !SECURITY_PAM_MODULES_H_INCLUDED */ 162