pam_modules.h revision 94532
1139368Sobrien/*-
268349Sobrien * Copyright (c) 2002 Networks Associates Technology, Inc.
3139368Sobrien * All rights reserved.
4133359Sobrien *
5133359Sobrien * This software was developed for the FreeBSD Project by ThinkSec AS and
6133359Sobrien * NAI Labs, the Security Research Division of Network Associates, Inc.
7133359Sobrien * under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the
868349Sobrien * DARPA CHATS research program.
9133359Sobrien *
10133359Sobrien * Redistribution and use in source and binary forms, with or without
11133359Sobrien * modification, are permitted provided that the following conditions
12133359Sobrien * are met:
1368349Sobrien * 1. Redistributions of source code must retain the above copyright
1468349Sobrien *    notice, this list of conditions and the following disclaimer.
15103373Sobrien * 2. Redistributions in binary form must reproduce the above copyright
1668349Sobrien *    notice, this list of conditions and the following disclaimer in the
1768349Sobrien *    documentation and/or other materials provided with the distribution.
1868349Sobrien * 3. The name of the author may not be used to endorse or promote
1968349Sobrien *    products derived from this software without specific prior written
2068349Sobrien *    permission.
2168349Sobrien *
2268349Sobrien * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
2368349Sobrien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2468349Sobrien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2568349Sobrien * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
2668349Sobrien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2768349Sobrien * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2868349Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2968349Sobrien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
3084685Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3184685Sobrien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32103373Sobrien * SUCH DAMAGE.
3384685Sobrien *
3484685Sobrien * $P4: //depot/projects/openpam/include/security/pam_modules.h#7 $
3584685Sobrien */
3684685Sobrien
3784685Sobrien#ifndef _PAM_MODULES_H_INCLUDED
3884685Sobrien#define _PAM_MODULES_H_INCLUDED
39103373Sobrien
4084685Sobrien#include <security/pam_types.h>
4184685Sobrien#include <security/pam_constants.h>
4284685Sobrien#include <security/openpam.h>
4384685Sobrien
4484685Sobrien#ifdef __cplusplus
4584685Sobrienextern "C" {
4684685Sobrien#endif
4784685Sobrien
4884685Sobrien/*
4984685Sobrien * XSSO 4.2.2, 6
5084685Sobrien */
51103373Sobrien
5284685Sobrien#if defined(PAM_SM_ACCOUNT)
5384685SobrienPAM_EXTERN int
5484685Sobrienpam_sm_acct_mgmt(pam_handle_t *_pamh,
5584685Sobrien	int _flags,
5684685Sobrien	int _argc,
5784685Sobrien	const char **_argv);
5884685Sobrien#endif
5984685Sobrien
6084685Sobrien#if defined(PAM_SM_AUTH)
6184685SobrienPAM_EXTERN int
6284685Sobrienpam_sm_authenticate(pam_handle_t *_pamh,
6384685Sobrien	int _flags,
6484685Sobrien	int _argc,
6584685Sobrien	const char **_argv);
6684685Sobrien#endif
6784685Sobrien
6884685Sobrien#if defined(PAM_SM_PASSWORD)
6984685SobrienPAM_EXTERN int
7084685Sobrienpam_sm_chauthtok(pam_handle_t *_pamh,
7184685Sobrien	int _flags,
7284685Sobrien	int _argc,
7384685Sobrien	const char **_argv);
7484685Sobrien#endif
75103373Sobrien
76103373Sobrien#if defined(PAM_SM_SESSION)
77103373SobrienPAM_EXTERN int
78103373Sobrienpam_sm_close_session(pam_handle_t *_pamh,
79103373Sobrien	int _flags,
80103373Sobrien	int _args,
81103373Sobrien	const char **_argv);
82103373Sobrien#endif
83103373Sobrien
84103373Sobrien#if defined(PAM_SM_SESSION)
85103373SobrienPAM_EXTERN int
8668349Sobrienpam_sm_open_session(pam_handle_t *_pamh,
87103373Sobrien	int _flags,
8868349Sobrien	int _argc,
8968349Sobrien	const char **_argv);
9068349Sobrien#endif
91103373Sobrien
92103373Sobrien#if defined(PAM_SM_AUTH)
93103373SobrienPAM_EXTERN int
94103373Sobrienpam_sm_setcred(pam_handle_t *_pamh,
95103373Sobrien	int _flags,
9668349Sobrien	int _argc,
9768349Sobrien	const char **_argv);
9868349Sobrien#endif
9968349Sobrien
10068349Sobrien/*
10168349Sobrien * Single Sign-On extensions
10268349Sobrien */
10368349Sobrien#if 0
10468349SobrienPAM_EXTERN int
10568349Sobrienpam_sm_authenticate_secondary(pam_handle_t *_pamh,
10668349Sobrien	char *_target_username,
10768349Sobrien	char *_target_module_type,
10868349Sobrien	char *_target_authn_domain,
109103373Sobrien	char *_target_supp_data,
110103373Sobrien	unsigned char *_target_module_authtok,
111103373Sobrien	int _flags,
112103373Sobrien	int _argc,
11368349Sobrien	const char **_argv);
114103373Sobrien
11568349SobrienPAM_EXTERN int
11668349Sobrienpam_sm_get_mapped_authtok(pam_handle_t *_pamh,
11768349Sobrien	char *_target_module_username,
11868349Sobrien	char *_target_module_type,
11968349Sobrien	char *_target_authn_domain,
12068349Sobrien	size_t *_target_authtok_len,
12168349Sobrien	unsigned char **_target_module_authtok,
12268349Sobrien	int _argc,
12368349Sobrien	char *_argv);
12468349Sobrien
12568349SobrienPAM_EXTERN int
12668349Sobrienpam_sm_get_mapped_username(pam_handle_t *_pamh,
12768349Sobrien	char *_src_username,
12868349Sobrien	char *_src_module_type,
12968349Sobrien	char *_src_authn_domain,
13068349Sobrien	char *_target_module_type,
13168349Sobrien	char *_target_authn_domain,
13268349Sobrien	char **_target_module_username,
133103373Sobrien	int _argc,
134103373Sobrien	const char **_argv);
135103373Sobrien
136103373SobrienPAM_EXTERN int
137103373Sobrienpam_sm_set_mapped_authtok(pam_handle_t *_pamh,
138103373Sobrien	char *_target_module_username,
139103373Sobrien	size_t _target_authtok_len,
140103373Sobrien	unsigned char *_target_module_authtok,
14168349Sobrien	char *_target_module_type,
14268349Sobrien	char *_target_authn_domain,
14368349Sobrien	int _argc,
14468349Sobrien	const char *_argv);
14568349Sobrien
14668349SobrienPAM_EXTERN int
147103373Sobrienpam_sm_set_mapped_username(pam_handle_t *_pamh,
148103373Sobrien	char *_target_module_username,
149103373Sobrien	char *_target_module_type,
150103373Sobrien	char *_target_authn_domain,
151103373Sobrien	int _argc,
152103373Sobrien	const char **_argv);
153103373Sobrien
154103373Sobrien#endif /* 0 */
155103373Sobrien
156103373Sobrien#ifdef __cplusplus
157103373Sobrien}
158103373Sobrien#endif
159103373Sobrien
160103373Sobrien#endif
161103373Sobrien