(* $Id: netsys_sasl_types.ml 2195 2015-01-01 12:23:39Z gerd $ *)
type cb =
[ `None
| `SASL_none_but_advertise
| `SASL_require of string * string
| `GSSAPI of string
]
type server_state =
[ `Wait | `Emit | `OK | `Auth_error of string | `Restart of string ]
type client_state =
[ `Wait | `Emit | `OK | `Auth_error of string | `Stale ]
module type SASL_MECHANISM =
sig
val mechanism_name : string
val client_first : [`Required | `Optional | `No]
val server_sends_final_data : bool
val supports_authz : bool
val available : unit -> bool
type credentials
val init_credentials :
(string * string * (string * string) list) list ->
credentials
type server_session
val server_state : server_session -> server_state
val create_server_session :
lookup:(string -> string -> credentials option) ->
params:(string * string * bool) list ->
unit ->
server_session
val server_configure_channel_binding :
server_session -> (string * string) list -> unit
val server_process_response :
server_session -> string -> unit
val server_process_response_restart :
server_session -> string -> bool -> bool
val server_emit_challenge :
server_session -> string
val server_stash_session :
server_session -> string
val server_resume_session :
lookup:(string -> string -> credentials option) ->
string ->
server_session
val server_session_id : server_session -> string option
val server_prop : server_session -> string -> string
val server_user_name : server_session -> string
val server_authz_name : server_session -> string
val server_channel_binding : server_session -> cb
val server_gssapi_props : server_session ->
Netsys_gssapi.server_props
type client_session
val client_state : client_session -> client_state
val create_client_session :
user:string ->
authz:string ->
creds:credentials ->
params:(string * string * bool) list ->
unit ->
client_session
val client_configure_channel_binding : client_session -> cb -> unit
val client_restart : client_session -> unit
val client_process_challenge :
client_session -> string -> unit
val client_emit_response :
client_session -> string
val client_channel_binding : client_session -> cb
val client_user_name : client_session -> string
val client_authz_name : client_session -> string
val client_stash_session :
client_session -> string
val client_resume_session :
string ->
client_session
val client_session_id : client_session -> string option
val client_prop : client_session -> string -> string
val client_gssapi_props : client_session ->
Netsys_gssapi.client_props
end