1ade90846SJoerg Sonnenberger /*- 2ade90846SJoerg Sonnenberger * Copyright (c) 2002-2003 Networks Associates Technology, Inc. 3*10b5fe87SSascha Wildner * Copyright (c) 2004-2017 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_appl.h 938 2017-04-30 21:34:42Z des $ 36ade90846SJoerg Sonnenberger */ 37ade90846SJoerg Sonnenberger 38f23594ceSHasso Tepper #ifndef SECURITY_PAM_APPL_H_INCLUDED 39f23594ceSHasso Tepper #define SECURITY_PAM_APPL_H_INCLUDED 40ade90846SJoerg Sonnenberger 41ade90846SJoerg Sonnenberger #include <security/pam_types.h> 42ade90846SJoerg Sonnenberger #include <security/pam_constants.h> 43f23594ceSHasso Tepper #include <security/openpam_attr.h> 44ade90846SJoerg Sonnenberger 45ade90846SJoerg Sonnenberger #ifdef __cplusplus 46ade90846SJoerg Sonnenberger extern "C" { 47ade90846SJoerg Sonnenberger #endif 48ade90846SJoerg Sonnenberger 49ade90846SJoerg Sonnenberger /* 50ade90846SJoerg Sonnenberger * XSSO 4.2.1, 6 51ade90846SJoerg Sonnenberger */ 52ade90846SJoerg Sonnenberger 53ade90846SJoerg Sonnenberger int 54ade90846SJoerg Sonnenberger pam_acct_mgmt(pam_handle_t *_pamh, 55f23594ceSHasso Tepper int _flags) 56f23594ceSHasso Tepper OPENPAM_NONNULL((1)); 57ade90846SJoerg Sonnenberger 58ade90846SJoerg Sonnenberger int 59ade90846SJoerg Sonnenberger pam_authenticate(pam_handle_t *_pamh, 60f23594ceSHasso Tepper int _flags) 61f23594ceSHasso Tepper OPENPAM_NONNULL((1)); 62ade90846SJoerg Sonnenberger 63ade90846SJoerg Sonnenberger int 64ade90846SJoerg Sonnenberger pam_chauthtok(pam_handle_t *_pamh, 65f23594ceSHasso Tepper int _flags) 66f23594ceSHasso Tepper OPENPAM_NONNULL((1)); 67ade90846SJoerg Sonnenberger 68ade90846SJoerg Sonnenberger int 69ade90846SJoerg Sonnenberger pam_close_session(pam_handle_t *_pamh, 70f23594ceSHasso Tepper int _flags) 71f23594ceSHasso Tepper OPENPAM_NONNULL((1)); 72ade90846SJoerg Sonnenberger 73ade90846SJoerg Sonnenberger int 74ade90846SJoerg Sonnenberger pam_end(pam_handle_t *_pamh, 75a474e9feSPeter Avalos int _status); 76ade90846SJoerg Sonnenberger 77ade90846SJoerg Sonnenberger int 78f23594ceSHasso Tepper pam_get_data(const pam_handle_t *_pamh, 79ade90846SJoerg Sonnenberger const char *_module_data_name, 80f23594ceSHasso Tepper const void **_data) 816329e2f6SSascha Wildner OPENPAM_NONNULL((2,3)); 82ade90846SJoerg Sonnenberger 83ade90846SJoerg Sonnenberger int 84f23594ceSHasso Tepper pam_get_item(const pam_handle_t *_pamh, 85ade90846SJoerg Sonnenberger int _item_type, 86f23594ceSHasso Tepper const void **_item) 876329e2f6SSascha Wildner OPENPAM_NONNULL((3)); 88ade90846SJoerg Sonnenberger 89ade90846SJoerg Sonnenberger int 90ade90846SJoerg Sonnenberger pam_get_user(pam_handle_t *_pamh, 91ade90846SJoerg Sonnenberger const char **_user, 926329e2f6SSascha Wildner const char *_prompt); 93ade90846SJoerg Sonnenberger 94ade90846SJoerg Sonnenberger const char * 95ade90846SJoerg Sonnenberger pam_getenv(pam_handle_t *_pamh, 966329e2f6SSascha Wildner const char *_name); 97ade90846SJoerg Sonnenberger 98ade90846SJoerg Sonnenberger char ** 996329e2f6SSascha Wildner pam_getenvlist(pam_handle_t *_pamh); 100ade90846SJoerg Sonnenberger 101ade90846SJoerg Sonnenberger int 102ade90846SJoerg Sonnenberger pam_open_session(pam_handle_t *_pamh, 103f23594ceSHasso Tepper int _flags) 104f23594ceSHasso Tepper OPENPAM_NONNULL((1)); 105ade90846SJoerg Sonnenberger 106ade90846SJoerg Sonnenberger int 107ade90846SJoerg Sonnenberger pam_putenv(pam_handle_t *_pamh, 1086329e2f6SSascha Wildner const char *_namevalue); 109ade90846SJoerg Sonnenberger 110ade90846SJoerg Sonnenberger int 111ade90846SJoerg Sonnenberger pam_set_data(pam_handle_t *_pamh, 112ade90846SJoerg Sonnenberger const char *_module_data_name, 113ade90846SJoerg Sonnenberger void *_data, 114ade90846SJoerg Sonnenberger void (*_cleanup)(pam_handle_t *_pamh, 115ade90846SJoerg Sonnenberger void *_data, 116f23594ceSHasso Tepper int _pam_end_status)) 1176329e2f6SSascha Wildner OPENPAM_NONNULL((2)); 118ade90846SJoerg Sonnenberger 119ade90846SJoerg Sonnenberger int 120ade90846SJoerg Sonnenberger pam_set_item(pam_handle_t *_pamh, 121ade90846SJoerg Sonnenberger int _item_type, 1226329e2f6SSascha Wildner const void *_item); 123ade90846SJoerg Sonnenberger 124ade90846SJoerg Sonnenberger int 125ade90846SJoerg Sonnenberger pam_setcred(pam_handle_t *_pamh, 126f23594ceSHasso Tepper int _flags) 127f23594ceSHasso Tepper OPENPAM_NONNULL((1)); 128ade90846SJoerg Sonnenberger 129ade90846SJoerg Sonnenberger int 130ade90846SJoerg Sonnenberger pam_start(const char *_service, 131ade90846SJoerg Sonnenberger const char *_user, 132ade90846SJoerg Sonnenberger const struct pam_conv *_pam_conv, 133f23594ceSHasso Tepper pam_handle_t **_pamh) 134f23594ceSHasso Tepper OPENPAM_NONNULL((4)); 135ade90846SJoerg Sonnenberger 136ade90846SJoerg Sonnenberger const char * 137f23594ceSHasso Tepper pam_strerror(const pam_handle_t *_pamh, 138ade90846SJoerg Sonnenberger int _error_number); 139ade90846SJoerg Sonnenberger 140ade90846SJoerg Sonnenberger /* 141ade90846SJoerg Sonnenberger * Single Sign-On extensions 142ade90846SJoerg Sonnenberger */ 143ade90846SJoerg Sonnenberger #if 0 144ade90846SJoerg Sonnenberger int 145ade90846SJoerg Sonnenberger pam_authenticate_secondary(pam_handle_t *_pamh, 146ade90846SJoerg Sonnenberger char *_target_username, 147ade90846SJoerg Sonnenberger char *_target_module_type, 148ade90846SJoerg Sonnenberger char *_target_authn_domain, 149ade90846SJoerg Sonnenberger char *_target_supp_data, 150ade90846SJoerg Sonnenberger char *_target_module_authtok, 151ade90846SJoerg Sonnenberger int _flags); 152ade90846SJoerg Sonnenberger 153ade90846SJoerg Sonnenberger int 154ade90846SJoerg Sonnenberger pam_get_mapped_authtok(pam_handle_t *_pamh, 155ade90846SJoerg Sonnenberger const char *_target_module_username, 156ade90846SJoerg Sonnenberger const char *_target_module_type, 157ade90846SJoerg Sonnenberger const char *_target_authn_domain, 158ade90846SJoerg Sonnenberger size_t *_target_authtok_len, 159ade90846SJoerg Sonnenberger unsigned char **_target_module_authtok); 160ade90846SJoerg Sonnenberger 161ade90846SJoerg Sonnenberger int 162ade90846SJoerg Sonnenberger pam_get_mapped_username(pam_handle_t *_pamh, 163ade90846SJoerg Sonnenberger const char *_src_username, 164ade90846SJoerg Sonnenberger const char *_src_module_type, 165ade90846SJoerg Sonnenberger const char *_src_authn_domain, 166ade90846SJoerg Sonnenberger const char *_target_module_type, 167ade90846SJoerg Sonnenberger const char *_target_authn_domain, 168ade90846SJoerg Sonnenberger char **_target_module_username); 169ade90846SJoerg Sonnenberger 170ade90846SJoerg Sonnenberger int 171ade90846SJoerg Sonnenberger pam_set_mapped_authtok(pam_handle_t *_pamh, 172ade90846SJoerg Sonnenberger const char *_target_module_username, 173ade90846SJoerg Sonnenberger size_t _target_authtok_len, 174ade90846SJoerg Sonnenberger unsigned char *_target_module_authtok, 175ade90846SJoerg Sonnenberger const char *_target_module_type, 176ade90846SJoerg Sonnenberger const char *_target_authn_domain); 177ade90846SJoerg Sonnenberger 178ade90846SJoerg Sonnenberger int 179ade90846SJoerg Sonnenberger pam_set_mapped_username(pam_handle_t *_pamh, 180ade90846SJoerg Sonnenberger char *_src_username, 181ade90846SJoerg Sonnenberger char *_src_module_type, 182ade90846SJoerg Sonnenberger char *_src_authn_domain, 183ade90846SJoerg Sonnenberger char *_target_module_username, 184ade90846SJoerg Sonnenberger char *_target_module_type, 185ade90846SJoerg Sonnenberger char *_target_authn_domain); 186ade90846SJoerg Sonnenberger #endif /* 0 */ 187ade90846SJoerg Sonnenberger 188ade90846SJoerg Sonnenberger #ifdef __cplusplus 189ade90846SJoerg Sonnenberger } 190ade90846SJoerg Sonnenberger #endif 191ade90846SJoerg Sonnenberger 192f23594ceSHasso Tepper #endif /* !SECURITY_PAM_APPL_H_INCLUDED */ 193