blob: 38d276ced38c3a1cd61f9d5e9db0d3c1ad4abb65 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
(* Copyright (c) 2008 Sharvil Nanavati *)
type pam_error =
| Pam_Abort (* 0 *)
| Pam_Session_Err
| Pam_Authtok_Err
| Pam_Authtok_Recover_Err
| Pam_Authtok_Lock_Busy
| Pam_Authtok_Disable_Aging (* 5 *)
| Pam_Try_Again
| Pam_Acct_Expired
| Pam_New_Authtok_Reqd
| Pam_Perm_Denied
| Pam_Cred_Err (* 10 *)
| Pam_Cred_Expired
| Pam_Cred_Unavail
| Pam_Auth_Err
| Pam_Cred_Insufficient
| Pam_Authinfo_Unavail (* 15 *)
| Pam_Maxtries
| Pam_User_Unknown
| Pam_Buf_Err
| Pam_System_Err
| Pam_Bad_Item;; (* 20 *)
exception Pam_Error of pam_error;;
type pam_handle;;
type pam_conv_type =
| Pam_Prompt_Echo_Off
| Pam_Prompt_Echo_On
| Pam_Error_Msg
| Pam_Text_Info;;
type pam_conv = pam_conv_type -> string -> string;;
type pam_auth_flags = Pam_Disallow_Null_Authtok;;
type pam_fail_delay = int -> int -> unit;;
type pam_credentials =
| Pam_Establish_Cred
| Pam_Delete_Cred
| Pam_Reinitialize_Cred
| Pam_Refresh_Cred;;
type pam_token_flags = Pam_Change_Expired_Authtok;;
type pam_item =
| Pam_Service of string
| Pam_User of string
| Pam_User_Prompt of string
| Pam_Tty of string
| Pam_RUser of string
| Pam_RHost of string
| Pam_AuthTok of string
| Pam_OldAuthTok of string
| Pam_Conv of pam_conv
| Pam_Fail_Delay of pam_fail_delay;;
val pam_item_service : pam_item;;
val pam_item_user : pam_item;;
val pam_item_user_prompt : pam_item;;
val pam_item_tty : pam_item;;
val pam_item_ruser : pam_item;;
val pam_item_rhost : pam_item;;
val pam_item_authtok : pam_item;;
val pam_item_oldauthtok : pam_item;;
val pam_item_conv : pam_item;;
val pam_item_fail_delay : pam_item;;
type pam_functions =
{
pam_end : unit -> bool;
pam_set_item : pam_item -> unit;
pam_get_item : pam_item -> pam_item;
pam_fail_delay : int -> unit;
pam_authenticate : pam_auth_flags list -> ?silent:bool -> unit;
pam_setcred : pam_credentials -> ?silent:bool -> unit;
pam_acct_mgmt : pam_auth_flags list -> ?silent:bool -> unit;
pam_chauthtok : pam_token_flags list -> ?silent:bool -> unit;
pam_open_session : ?silent:bool -> unit -> unit;
pam_close_session : ?silent:bool -> unit -> unit;
pam_putenv : string -> unit;
pam_getenv : string -> string option;
pam_getenvlist : unit -> string list
};;
val pam_start_ex : string -> ?user:string -> pam_conv -> pam_functions;;
val pam_start : string -> ?user:string -> pam_conv -> pam_handle;;
val pam_end : pam_handle -> bool;;
val pam_set_item : pam_handle -> pam_item -> unit;;
val pam_get_item : pam_handle -> pam_item -> pam_item;;
val pam_fail_delay : pam_handle -> int -> unit;;
val pam_authenticate : pam_handle -> pam_auth_flags list -> ?silent:bool -> unit;;
val pam_setcred : pam_handle -> pam_credentials -> ?silent:bool -> unit;;
val pam_acct_mgmt : pam_handle -> pam_auth_flags list -> ?silent:bool -> unit;;
val pam_chauthtok : pam_handle -> pam_token_flags list -> ?silent:bool -> unit;;
val pam_open_session : pam_handle -> ?silent:bool -> unit;;
val pam_close_session : pam_handle -> ?silent:bool -> unit;;
val pam_putenv : pam_handle -> string -> unit;;
val pam_getenv : pam_handle -> string -> string option;;
val pam_getenvlist : pam_handle -> string list;;
|