`sig
type cb =
[ `GSSAPI of string
| `None
| `SASL_none_but_advertise
| `SASL_require of string * string ]
type server_state =
[ `Auth_error of string | `Emit | `OK | `Restart of string | `Wait ]
type client_state =
[ `Auth_error of string | `Emit | `OK | `Stale | `Wait ]
module type SASL_MECHANISM =
sig
val mechanism_name : string
val client_first : [ `No | `Optional | `Required ]
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 ->
Netsys_sasl_types.SASL_MECHANISM.credentials
type server_session
val server_state :
Netsys_sasl_types.SASL_MECHANISM.server_session ->
Netsys_sasl_types.server_state
val create_server_session :
lookup:(string ->
string -> Netsys_sasl_types.SASL_MECHANISM.credentials option) ->
params:(string * string * bool) list ->
unit -> Netsys_sasl_types.SASL_MECHANISM.server_session
val server_configure_channel_binding :
Netsys_sasl_types.SASL_MECHANISM.server_session ->
(string * string) list ->
Netsys_sasl_types.SASL_MECHANISM.server_session
val server_process_response :
Netsys_sasl_types.SASL_MECHANISM.server_session ->
string -> Netsys_sasl_types.SASL_MECHANISM.server_session
val server_process_response_restart :
Netsys_sasl_types.SASL_MECHANISM.server_session ->
string ->
bool -> Netsys_sasl_types.SASL_MECHANISM.server_session * bool
val server_emit_challenge :
Netsys_sasl_types.SASL_MECHANISM.server_session ->
Netsys_sasl_types.SASL_MECHANISM.server_session * string
val server_stash_session :
Netsys_sasl_types.SASL_MECHANISM.server_session -> string
val server_resume_session :
lookup:(string ->
string -> Netsys_sasl_types.SASL_MECHANISM.credentials option) ->
string -> Netsys_sasl_types.SASL_MECHANISM.server_session
val server_session_id :
Netsys_sasl_types.SASL_MECHANISM.server_session -> string option
val server_prop :
Netsys_sasl_types.SASL_MECHANISM.server_session -> string -> string
val server_user_name :
Netsys_sasl_types.SASL_MECHANISM.server_session -> string
val server_authz_name :
Netsys_sasl_types.SASL_MECHANISM.server_session -> string
val server_channel_binding :
Netsys_sasl_types.SASL_MECHANISM.server_session ->
Netsys_sasl_types.cb
val server_gssapi_props :
Netsys_sasl_types.SASL_MECHANISM.server_session ->
Netsys_gssapi.server_props
type client_session
val client_state :
Netsys_sasl_types.SASL_MECHANISM.client_session ->
Netsys_sasl_types.client_state
val create_client_session :
user:string ->
authz:string ->
creds:Netsys_sasl_types.SASL_MECHANISM.credentials ->
params:(string * string * bool) list ->
unit -> Netsys_sasl_types.SASL_MECHANISM.client_session
val client_configure_channel_binding :
Netsys_sasl_types.SASL_MECHANISM.client_session ->
Netsys_sasl_types.cb ->
Netsys_sasl_types.SASL_MECHANISM.client_session
val client_restart :
Netsys_sasl_types.SASL_MECHANISM.client_session ->
Netsys_sasl_types.SASL_MECHANISM.client_session
val client_process_challenge :
Netsys_sasl_types.SASL_MECHANISM.client_session ->
string -> Netsys_sasl_types.SASL_MECHANISM.client_session
val client_emit_response :
Netsys_sasl_types.SASL_MECHANISM.client_session ->
Netsys_sasl_types.SASL_MECHANISM.client_session * string
val client_channel_binding :
Netsys_sasl_types.SASL_MECHANISM.client_session ->
Netsys_sasl_types.cb
val client_user_name :
Netsys_sasl_types.SASL_MECHANISM.client_session -> string
val client_authz_name :
Netsys_sasl_types.SASL_MECHANISM.client_session -> string
val client_stash_session :
Netsys_sasl_types.SASL_MECHANISM.client_session -> string
val client_resume_session :
string -> Netsys_sasl_types.SASL_MECHANISM.client_session
val client_session_id :
Netsys_sasl_types.SASL_MECHANISM.client_session -> string option
val client_prop :
Netsys_sasl_types.SASL_MECHANISM.client_session -> string -> string
val client_gssapi_props :
Netsys_sasl_types.SASL_MECHANISM.client_session ->
Netsys_gssapi.client_props
end
end`