xref: /dflybsd-src/contrib/openpam/include/security/pam_modules.h (revision 7031abe4d1ef8c309d4113438494530b74f3f3fe)
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