15c1eca55SDag-Erling Smørgrav /*- 231c521e9SDag-Erling Smørgrav * Copyright (c) 2002-2003 Networks Associates Technology, Inc. 3fe980754SDag-Erling Smørgrav * Copyright (c) 2004-2007 Dag-Erling Smørgrav 45c1eca55SDag-Erling Smørgrav * All rights reserved. 55c1eca55SDag-Erling Smørgrav * 65c1eca55SDag-Erling Smørgrav * This software was developed for the FreeBSD Project by ThinkSec AS and 7ee02aaa9SDag-Erling Smørgrav * Network Associates Laboratories, the Security Research Division of 8ee02aaa9SDag-Erling Smørgrav * Network Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 9ee02aaa9SDag-Erling Smørgrav * ("CBOSS"), as part of the DARPA CHATS research program. 105c1eca55SDag-Erling Smørgrav * 115c1eca55SDag-Erling Smørgrav * Redistribution and use in source and binary forms, with or without 125c1eca55SDag-Erling Smørgrav * modification, are permitted provided that the following conditions 135c1eca55SDag-Erling Smørgrav * are met: 145c1eca55SDag-Erling Smørgrav * 1. Redistributions of source code must retain the above copyright 155c1eca55SDag-Erling Smørgrav * notice, this list of conditions and the following disclaimer. 165c1eca55SDag-Erling Smørgrav * 2. Redistributions in binary form must reproduce the above copyright 175c1eca55SDag-Erling Smørgrav * notice, this list of conditions and the following disclaimer in the 185c1eca55SDag-Erling Smørgrav * documentation and/or other materials provided with the distribution. 195c1eca55SDag-Erling Smørgrav * 3. The name of the author may not be used to endorse or promote 205c1eca55SDag-Erling Smørgrav * products derived from this software without specific prior written 215c1eca55SDag-Erling Smørgrav * permission. 225c1eca55SDag-Erling Smørgrav * 235c1eca55SDag-Erling Smørgrav * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 245c1eca55SDag-Erling Smørgrav * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 255c1eca55SDag-Erling Smørgrav * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 265c1eca55SDag-Erling Smørgrav * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 275c1eca55SDag-Erling Smørgrav * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 285c1eca55SDag-Erling Smørgrav * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 295c1eca55SDag-Erling Smørgrav * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 305c1eca55SDag-Erling Smørgrav * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 315c1eca55SDag-Erling Smørgrav * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 325c1eca55SDag-Erling Smørgrav * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 335c1eca55SDag-Erling Smørgrav * SUCH DAMAGE. 345c1eca55SDag-Erling Smørgrav * 35fe980754SDag-Erling Smørgrav * $Id: pam_appl.h 408 2007-12-21 11:36:24Z des $ 365c1eca55SDag-Erling Smørgrav */ 375c1eca55SDag-Erling Smørgrav 38fe980754SDag-Erling Smørgrav #ifndef SECURITY_PAM_APPL_H_INCLUDED 39fe980754SDag-Erling Smørgrav #define SECURITY_PAM_APPL_H_INCLUDED 405c1eca55SDag-Erling Smørgrav 415c1eca55SDag-Erling Smørgrav #include <security/pam_types.h> 425c1eca55SDag-Erling Smørgrav #include <security/pam_constants.h> 43fe980754SDag-Erling Smørgrav #include <security/openpam_attr.h> 445c1eca55SDag-Erling Smørgrav 455c1eca55SDag-Erling Smørgrav #ifdef __cplusplus 465c1eca55SDag-Erling Smørgrav extern "C" { 475c1eca55SDag-Erling Smørgrav #endif 485c1eca55SDag-Erling Smørgrav 495c1eca55SDag-Erling Smørgrav /* 505c1eca55SDag-Erling Smørgrav * XSSO 4.2.1, 6 515c1eca55SDag-Erling Smørgrav */ 525c1eca55SDag-Erling Smørgrav 535c1eca55SDag-Erling Smørgrav int 545c1eca55SDag-Erling Smørgrav pam_acct_mgmt(pam_handle_t *_pamh, 55fe980754SDag-Erling Smørgrav int _flags) 56fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((1)); 575c1eca55SDag-Erling Smørgrav 585c1eca55SDag-Erling Smørgrav int 595c1eca55SDag-Erling Smørgrav pam_authenticate(pam_handle_t *_pamh, 60fe980754SDag-Erling Smørgrav int _flags) 61fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((1)); 625c1eca55SDag-Erling Smørgrav 635c1eca55SDag-Erling Smørgrav int 645c1eca55SDag-Erling Smørgrav pam_chauthtok(pam_handle_t *_pamh, 65fe980754SDag-Erling Smørgrav int _flags) 66fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((1)); 675c1eca55SDag-Erling Smørgrav 685c1eca55SDag-Erling Smørgrav int 695c1eca55SDag-Erling Smørgrav pam_close_session(pam_handle_t *_pamh, 70fe980754SDag-Erling Smørgrav int _flags) 71fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((1)); 725c1eca55SDag-Erling Smørgrav 735c1eca55SDag-Erling Smørgrav int 745c1eca55SDag-Erling Smørgrav pam_end(pam_handle_t *_pamh, 75fe980754SDag-Erling Smørgrav int _status) 76fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((1)); 775c1eca55SDag-Erling Smørgrav 785c1eca55SDag-Erling Smørgrav int 79fe980754SDag-Erling Smørgrav pam_get_data(const pam_handle_t *_pamh, 805c1eca55SDag-Erling Smørgrav const char *_module_data_name, 81fe980754SDag-Erling Smørgrav const void **_data) 82fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((1,2,3)); 835c1eca55SDag-Erling Smørgrav 845c1eca55SDag-Erling Smørgrav int 85fe980754SDag-Erling Smørgrav pam_get_item(const pam_handle_t *_pamh, 865c1eca55SDag-Erling Smørgrav int _item_type, 87fe980754SDag-Erling Smørgrav const void **_item) 88fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((1,3)); 895c1eca55SDag-Erling Smørgrav 905c1eca55SDag-Erling Smørgrav int 915c1eca55SDag-Erling Smørgrav pam_get_user(pam_handle_t *_pamh, 925c1eca55SDag-Erling Smørgrav const char **_user, 93fe980754SDag-Erling Smørgrav const char *_prompt) 94fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((1,2)); 955c1eca55SDag-Erling Smørgrav 964cb68ea5SDag-Erling Smørgrav const char * 975c1eca55SDag-Erling Smørgrav pam_getenv(pam_handle_t *_pamh, 98fe980754SDag-Erling Smørgrav const char *_name) 99fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((1,2)); 1005c1eca55SDag-Erling Smørgrav 1015c1eca55SDag-Erling Smørgrav char ** 102fe980754SDag-Erling Smørgrav pam_getenvlist(pam_handle_t *_pamh) 103fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((1)); 1045c1eca55SDag-Erling Smørgrav 1055c1eca55SDag-Erling Smørgrav int 1065c1eca55SDag-Erling Smørgrav pam_open_session(pam_handle_t *_pamh, 107fe980754SDag-Erling Smørgrav int _flags) 108fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((1)); 1095c1eca55SDag-Erling Smørgrav 1105c1eca55SDag-Erling Smørgrav int 1115c1eca55SDag-Erling Smørgrav pam_putenv(pam_handle_t *_pamh, 112fe980754SDag-Erling Smørgrav const char *_namevalue) 113fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((1,2)); 1145c1eca55SDag-Erling Smørgrav 1155c1eca55SDag-Erling Smørgrav int 1165c1eca55SDag-Erling Smørgrav pam_set_data(pam_handle_t *_pamh, 1175c1eca55SDag-Erling Smørgrav const char *_module_data_name, 1185c1eca55SDag-Erling Smørgrav void *_data, 1195c1eca55SDag-Erling Smørgrav void (*_cleanup)(pam_handle_t *_pamh, 1205c1eca55SDag-Erling Smørgrav void *_data, 121fe980754SDag-Erling Smørgrav int _pam_end_status)) 122fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((1,2)); 1235c1eca55SDag-Erling Smørgrav 1245c1eca55SDag-Erling Smørgrav int 1255c1eca55SDag-Erling Smørgrav pam_set_item(pam_handle_t *_pamh, 1265c1eca55SDag-Erling Smørgrav int _item_type, 127fe980754SDag-Erling Smørgrav const void *_item) 128fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((1)); 1295c1eca55SDag-Erling Smørgrav 1305c1eca55SDag-Erling Smørgrav int 1315c1eca55SDag-Erling Smørgrav pam_setcred(pam_handle_t *_pamh, 132fe980754SDag-Erling Smørgrav int _flags) 133fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((1)); 1345c1eca55SDag-Erling Smørgrav 1355c1eca55SDag-Erling Smørgrav int 1365c1eca55SDag-Erling Smørgrav pam_start(const char *_service, 1375c1eca55SDag-Erling Smørgrav const char *_user, 1385c1eca55SDag-Erling Smørgrav const struct pam_conv *_pam_conv, 139fe980754SDag-Erling Smørgrav pam_handle_t **_pamh) 140fe980754SDag-Erling Smørgrav OPENPAM_NONNULL((4)); 1415c1eca55SDag-Erling Smørgrav 1425c1eca55SDag-Erling Smørgrav const char * 143fe980754SDag-Erling Smørgrav pam_strerror(const pam_handle_t *_pamh, 1445c1eca55SDag-Erling Smørgrav int _error_number); 1455c1eca55SDag-Erling Smørgrav 1465c1eca55SDag-Erling Smørgrav /* 1475c1eca55SDag-Erling Smørgrav * Single Sign-On extensions 1485c1eca55SDag-Erling Smørgrav */ 1495c1eca55SDag-Erling Smørgrav #if 0 1505c1eca55SDag-Erling Smørgrav int 1515c1eca55SDag-Erling Smørgrav pam_authenticate_secondary(pam_handle_t *_pamh, 1525c1eca55SDag-Erling Smørgrav char *_target_username, 1535c1eca55SDag-Erling Smørgrav char *_target_module_type, 1545c1eca55SDag-Erling Smørgrav char *_target_authn_domain, 1555c1eca55SDag-Erling Smørgrav char *_target_supp_data, 1565c1eca55SDag-Erling Smørgrav char *_target_module_authtok, 1575c1eca55SDag-Erling Smørgrav int _flags); 1585c1eca55SDag-Erling Smørgrav 1595c1eca55SDag-Erling Smørgrav int 1605c1eca55SDag-Erling Smørgrav pam_get_mapped_authtok(pam_handle_t *_pamh, 1615c1eca55SDag-Erling Smørgrav const char *_target_module_username, 1625c1eca55SDag-Erling Smørgrav const char *_target_module_type, 1635c1eca55SDag-Erling Smørgrav const char *_target_authn_domain, 1645c1eca55SDag-Erling Smørgrav size_t *_target_authtok_len, 1655c1eca55SDag-Erling Smørgrav unsigned char **_target_module_authtok); 1665c1eca55SDag-Erling Smørgrav 1675c1eca55SDag-Erling Smørgrav int 1685c1eca55SDag-Erling Smørgrav pam_get_mapped_username(pam_handle_t *_pamh, 1695c1eca55SDag-Erling Smørgrav const char *_src_username, 1705c1eca55SDag-Erling Smørgrav const char *_src_module_type, 1715c1eca55SDag-Erling Smørgrav const char *_src_authn_domain, 1725c1eca55SDag-Erling Smørgrav const char *_target_module_type, 1735c1eca55SDag-Erling Smørgrav const char *_target_authn_domain, 1745c1eca55SDag-Erling Smørgrav char **_target_module_username); 1755c1eca55SDag-Erling Smørgrav 1765c1eca55SDag-Erling Smørgrav int 1775c1eca55SDag-Erling Smørgrav pam_set_mapped_authtok(pam_handle_t *_pamh, 1785c1eca55SDag-Erling Smørgrav const char *_target_module_username, 1795c1eca55SDag-Erling Smørgrav size_t _target_authtok_len, 1805c1eca55SDag-Erling Smørgrav unsigned char *_target_module_authtok, 1815c1eca55SDag-Erling Smørgrav const char *_target_module_type, 1825c1eca55SDag-Erling Smørgrav const char *_target_authn_domain); 1835c1eca55SDag-Erling Smørgrav 1845c1eca55SDag-Erling Smørgrav int 1855c1eca55SDag-Erling Smørgrav pam_set_mapped_username(pam_handle_t *_pamh, 1865c1eca55SDag-Erling Smørgrav char *_src_username, 1875c1eca55SDag-Erling Smørgrav char *_src_module_type, 1885c1eca55SDag-Erling Smørgrav char *_src_authn_domain, 1895c1eca55SDag-Erling Smørgrav char *_target_module_username, 1905c1eca55SDag-Erling Smørgrav char *_target_module_type, 1915c1eca55SDag-Erling Smørgrav char *_target_authn_domain); 1925c1eca55SDag-Erling Smørgrav #endif /* 0 */ 1935c1eca55SDag-Erling Smørgrav 1945c1eca55SDag-Erling Smørgrav #ifdef __cplusplus 1955c1eca55SDag-Erling Smørgrav } 1965c1eca55SDag-Erling Smørgrav #endif 1975c1eca55SDag-Erling Smørgrav 198fe980754SDag-Erling Smørgrav #endif /* !SECURITY_PAM_APPL_H_INCLUDED */ 199