pam_modules.h revision 302408
111499Sjkh/*-
211499Sjkh * Copyright (c) 2002-2003 Networks Associates Technology, Inc.
311499Sjkh * Copyright (c) 2004-2011 Dag-Erling Sm��rgrav
411499Sjkh * All rights reserved.
511499Sjkh *
611499Sjkh * This software was developed for the FreeBSD Project by ThinkSec AS and
716823Sjkh * Network Associates Laboratories, the Security Research Division of
811499Sjkh * Network Associates, Inc.  under DARPA/SPAWAR contract N66001-01-C-8035
911499Sjkh * ("CBOSS"), as part of the DARPA CHATS research program.
1011499Sjkh *
1111499Sjkh * Redistribution and use in source and binary forms, with or without
1211499Sjkh * modification, are permitted provided that the following conditions
1311499Sjkh * are met:
1411499Sjkh * 1. Redistributions of source code must retain the above copyright
1511499Sjkh *    notice, this list of conditions and the following disclaimer.
1611499Sjkh * 2. Redistributions in binary form must reproduce the above copyright
1711499Sjkh *    notice, this list of conditions and the following disclaimer in the
1811499Sjkh *    documentation and/or other materials provided with the distribution.
1911499Sjkh * 3. The name of the author may not be used to endorse or promote
2011499Sjkh *    products derived from this software without specific prior written
2111499Sjkh *    permission.
2211499Sjkh *
2311499Sjkh * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
2411499Sjkh * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2511499Sjkh * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2611499Sjkh * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
2711499Sjkh * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2811499Sjkh * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2911499Sjkh * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
3011499Sjkh * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
3111499Sjkh * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3211499Sjkh * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3311499Sjkh * SUCH DAMAGE.
3411499Sjkh *
3511499Sjkh * $Id: pam_modules.h 648 2013-03-05 17:54:27Z des $
3611499Sjkh */
3711499Sjkh
3811499Sjkh#ifndef SECURITY_PAM_MODULES_H_INCLUDED
3911499Sjkh#define SECURITY_PAM_MODULES_H_INCLUDED
4011499Sjkh
4115883Sjkh#include <security/pam_types.h>
4211499Sjkh#include <security/pam_constants.h>
4311499Sjkh#include <security/openpam.h>
4411499Sjkh
4511499Sjkh#ifdef __cplusplus
4611499Sjkhextern "C" {
4711650Sjkh#endif
4811650Sjkh
4911650Sjkh/*
5011650Sjkh * XSSO 4.2.2, 6
5111650Sjkh */
5215242Sjkh
5314738Sjkh#if defined(PAM_SM_ACCOUNT)
5411650SjkhPAM_EXTERN int
5511650Sjkhpam_sm_acct_mgmt(pam_handle_t *_pamh,
5615788Sjkh	int _flags,
5715788Sjkh	int _argc,
5815788Sjkh	const char **_argv);
5916688Sjkh#endif
6016688Sjkh
6115788Sjkh#if defined(PAM_SM_AUTH)
6216688SjkhPAM_EXTERN int
6316688Sjkhpam_sm_authenticate(pam_handle_t *_pamh,
6416688Sjkh	int _flags,
6516688Sjkh	int _argc,
6616688Sjkh	const char **_argv);
6716688Sjkh#endif
6816688Sjkh
6915788Sjkh#if defined(PAM_SM_PASSWORD)
7015788SjkhPAM_EXTERN int
7115788Sjkhpam_sm_chauthtok(pam_handle_t *_pamh,
7215788Sjkh	int _flags,
7315788Sjkh	int _argc,
7415942Sjkh	const char **_argv);
7515942Sjkh#endif
7615942Sjkh
7715942Sjkh#if defined(PAM_SM_SESSION)
7815942SjkhPAM_EXTERN int
7915942Sjkhpam_sm_close_session(pam_handle_t *_pamh,
8015942Sjkh	int _flags,
8115942Sjkh	int _args,
8215942Sjkh	const char **_argv);
8311499Sjkh#endif
8411499Sjkh
8514738Sjkh#if defined(PAM_SM_SESSION)
8611499SjkhPAM_EXTERN int
8711499Sjkhpam_sm_open_session(pam_handle_t *_pamh,
8811718Sjkh	int _flags,
8911499Sjkh	int _argc,
9012232Sjkh	const char **_argv);
9112232Sjkh#endif
9212232Sjkh
9312232Sjkh#if defined(PAM_SM_AUTH)
9415788SjkhPAM_EXTERN int
9515788Sjkhpam_sm_setcred(pam_handle_t *_pamh,
9615242Sjkh	int _flags,
9711536Sjkh	int _argc,
9811553Sjkh	const char **_argv);
9911672Sjkh#endif
10015242Sjkh
10111553Sjkh/*
10211499Sjkh * Single Sign-On extensions
10314738Sjkh */
10415467Sjkh#if 0
10512129SjkhPAM_EXTERN int
10612129Sjkhpam_sm_authenticate_secondary(pam_handle_t *_pamh,
10712129Sjkh	char *_target_username,
10812129Sjkh	char *_target_module_type,
10914670Sjkh	char *_target_authn_domain,
11014670Sjkh	char *_target_supp_data,
11112129Sjkh	unsigned char *_target_module_authtok,
11212129Sjkh	int _flags,
11316823Sjkh	int _argc,
11416823Sjkh	const char **_argv);
11516823Sjkh
11616823SjkhPAM_EXTERN int
11711553Sjkhpam_sm_get_mapped_authtok(pam_handle_t *_pamh,
11811499Sjkh	char *_target_module_username,
11914670Sjkh	char *_target_module_type,
12014670Sjkh	char *_target_authn_domain,
12112184Sjkh	size_t *_target_authtok_len,
12214738Sjkh	unsigned char **_target_module_authtok,
12315942Sjkh	int _argc,
12414670Sjkh	char *_argv);
12514670Sjkh
12614670SjkhPAM_EXTERN int
12714670Sjkhpam_sm_get_mapped_username(pam_handle_t *_pamh,
12814670Sjkh	char *_src_username,
12915419Sjkh	char *_src_module_type,
13014670Sjkh	char *_src_authn_domain,
13114670Sjkh	char *_target_module_type,
13211499Sjkh	char *_target_authn_domain,
13314670Sjkh	char **_target_module_username,
13411499Sjkh	int _argc,
13511672Sjkh	const char **_argv);
13614670Sjkh
13715419SjkhPAM_EXTERN int
13815883Sjkhpam_sm_set_mapped_authtok(pam_handle_t *_pamh,
13914670Sjkh	char *_target_module_username,
14015470Sjkh	size_t _target_authtok_len,
14114670Sjkh	unsigned char *_target_module_authtok,
14215883Sjkh	char *_target_module_type,
14315883Sjkh	char *_target_authn_domain,
14415942Sjkh	int _argc,
14515883Sjkh	const char *_argv);
14615242Sjkh
14714670SjkhPAM_EXTERN int
14815883Sjkhpam_sm_set_mapped_username(pam_handle_t *_pamh,
14915883Sjkh	char *_target_module_username,
15015883Sjkh	char *_target_module_type,
15115883Sjkh	char *_target_authn_domain,
15215883Sjkh	int _argc,
15315883Sjkh	const char **_argv);
15415883Sjkh
15515883Sjkh#endif /* 0 */
15615883Sjkh
15715883Sjkh#ifdef __cplusplus
15815883Sjkh}
15915883Sjkh#endif
16015883Sjkh
16115883Sjkh#endif /* !SECURITY_PAM_MODULES_H_INCLUDED */
16215883Sjkh