/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _PAM_IMPL_H
#define _PAM_IMPL_H
#ifdef __cplusplus
extern "C" {
#endif
#include <limits.h>
#include <shadow.h>
#ifdef _LP64
#else /* !_LP64 */
#endif /* _LP64 */
/* Service Module Types */
/*
* If new service types are added, they should be named in
* pam_framework.c::pam_snames[] as well.
*/
#define PAM_ACCOUNT_MODULE 0
/* Control Flags */
/* Function Indicators */
/* PAM tracing */
/* authentication module functions */
/* session module functions */
/* password module functions */
/* account module functions */
/* max # of authentication token attributes */
/* max size (in chars) of an authentication token attribute */
/* utility function prototypes */
/* source values when calling __pam_get_authtok() */
#if PASS_MAX >= PAM_MAX_RESP_SIZE
#endif /* PASS_MAX >= PAM_MAX_RESP_SIZE */
extern int
char **authtok);
extern int
extern void
/* file handle for pam.conf */
struct pam_fh {
/* the content of pam.conf */
};
struct pam_item {
};
/* module specific data stored in the pam handle */
struct pam_module_data {
};
/* each entry from pam.conf is stored here (in the pam handle) */
typedef struct pamtab {
char **module_argv;
} pamtab_t;
/* list of open fd's (modules that were dlopen'd) */
typedef struct fd_list {
} fd_list;
/* list of PAM environment varialbes */
typedef struct env_list {
char *name;
char *value;
} env_list;
/* pam_inmodule values for pam item checking */
/* the pam handle */
struct pam_handle {
int include_depth;
};
/*
* the function_ptr field in pamtab_t
* will point to one of these modules
*/
struct auth_module {
const char **argv);
const char **argv);
};
struct password_module {
const char **argv);
};
struct session_module {
const char **argv);
const char **argv);
};
struct account_module {
const char **argv);
};
#ifdef __cplusplus
}
#endif
#endif /* _PAM_IMPL_H */