xref: /freebsd/crypto/openssh/auth-pam.h (revision 5521ff5a4d1929056e7ffc982fac3341ca54df7c)
1 /*
2  * OpenSSH PAM authentication support.
3  *
4  * $FreeBSD$
5  */
6 #ifndef AUTH_PAM_H
7 #define AUTH_PAM_H
8 #include "includes.h"
9 #ifdef USE_PAM
10 
11 #include "auth.h"
12 #include <pwd.h> /* For struct passwd */
13 
14 void start_pam(struct passwd *pw);
15 void finish_pam(void);
16 int auth_pam_password(Authctxt *authctxt, const char *password);
17 char **fetch_pam_environment(void);
18 int do_pam_account(char *username, char *remote_user);
19 void do_pam_session(char *username, const char *ttyname);
20 void do_pam_setcred(void);
21 void print_pam_messages(void);
22 int pam_password_change_required(void);
23 void do_pam_chauthtok(void);
24 
25 struct inverted_pam_cookie {
26     int state;			/* Which state have we reached? */
27     pid_t pid;			/* PID of child process */
28 
29     /* Only valid in state STATE_CONV */
30     int num_msg;		/* Number of messages */
31     struct pam_message **msg;	/* Message structures */
32     struct pam_response **resp;	/* Response structures */
33     struct inverted_pam_userdata *userdata;
34 };
35 void ipam_free_cookie(struct inverted_pam_cookie *cookie);
36 struct inverted_pam_cookie *ipam_start_auth(const char *, const char *);
37 
38 #endif /* USE_PAM */
39 #endif /* AUTH_PAM_H */
40