Module Pam

Pam contains functions that interface to the PAM library.

module Pam_conv : sig ... end
module Pam_auth : sig ... end
module Pam_acct : sig ... end
module Pam_cred : sig ... end
module Pam_authtok : sig ... end
type pam_conv
type pam_fail_delay
type pam_xauth_data
module Pam_item_type : sig ... end
module Pam_session : sig ... end
type t

t is an abstract type representing pam_handle_t in the C-library

val pam_start : service:string -> user:string -> conv:((Pam_conv.Message.t, string) Core.Result.t list -> Pam_conv.Result.t) -> t Core.Or_error.t

pam_start initiates a pam transaction. This function works like its C-version except that it calls pam_end on a failure. This should make it easier to chain pam operations in the caller code.

val pam_end : t -> unit Core.Or_error.t
val pam_authenticate : t -> flags:Pam_auth.Flag.t list -> unit Core.Or_error.t
val pam_acct_mgmt : t -> flags:Pam_acct.Flag.t list -> unit Core.Or_error.t
val pam_setcred : ?⁠silent:bool -> t -> flag:Pam_cred.Flag.t -> unit Core.Or_error.t
val pam_chauthtok : t -> flags:Pam_authtok.Flag.t list -> unit Core.Or_error.t
val pam_open_session : t -> flags:Pam_session.Flag.t list -> unit Core.Or_error.t
val pam_close_session : t -> flags:Pam_session.Flag.t list -> unit Core.Or_error.t
val pam_getenv : t -> key:string -> string Core.Or_error.t
val pam_putenv : t -> key:string -> data:string -> unit Core.Or_error.t
val pam_unsetenv : t -> key:string -> unit Core.Or_error.t
val pam_getenvlist : t -> string list Core.Or_error.t
val pam_get_item : t -> item_type:'a Pam_item_type.t -> 'a option Core.Or_error.t
val pam_set_item : t -> item_type:'a Pam_item_type.t -> item:'a -> unit Core.Or_error.t