Plasma GitLab Archive
Projects Blog Knowledge

sig
  type ptype = [ `GSSAPI | `HTTP | `SASL ]
  type profile = {
    ptype : Netmech_scram.ptype;
    hash_function : Netsys_digests.iana_hash_fn;
    return_unknown_user : bool;
    iteration_count_limit : int;
  }
  type cb = Netsys_sasl_types.cb
  type server_error =
      [ `Channel_binding_not_supported
      | `Channel_bindings_dont_match
      | `Extension of string
      | `Extensions_not_supported
      | `Invalid_encoding
      | `Invalid_proof
      | `Invalid_username_encoding
      | `No_resources
      | `Other_error
      | `Server_does_support_channel_binding
      | `Unknown_user
      | `Unsupported_channel_binding_type ]
  type client_session
  type server_session
  exception Invalid_encoding of string * string
  exception Invalid_username_encoding of string * string
  exception Extensions_not_supported of string * string
  exception Protocol_error of string
  exception Invalid_server_signature
  exception Server_error of Netmech_scram.server_error
  val profile :
    ?return_unknown_user:bool ->
    ?iteration_count_limit:int ->
    Netmech_scram.ptype ->
    Netsys_digests.iana_hash_fn -> Netmech_scram.profile
  val string_of_server_error : Netmech_scram.server_error -> string
  val server_error_of_string : string -> Netmech_scram.server_error
  val mechanism_name : Netmech_scram.profile -> string
  val create_client_session :
    ?nonce:string ->
    Netmech_scram.profile -> string -> string -> Netmech_scram.client_session
  val create_client_session2 :
    ?nonce:string ->
    Netmech_scram.profile ->
    string -> string -> string -> Netmech_scram.client_session
  val client_configure_channel_binding :
    Netmech_scram.client_session -> Netmech_scram.cb -> unit
  val client_emit_flag : Netmech_scram.client_session -> bool
  val client_recv_flag : Netmech_scram.client_session -> bool
  val client_finish_flag : Netmech_scram.client_session -> bool
  val client_error_flag : Netmech_scram.client_session -> bool
  val client_channel_binding :
    Netmech_scram.client_session -> Netmech_scram.cb
  val client_emit_message : Netmech_scram.client_session -> string
  val client_emit_message_kv :
    Netmech_scram.client_session -> string option * (string * string) list
  val client_recv_message : Netmech_scram.client_session -> string -> unit
  val client_protocol_key : Netmech_scram.client_session -> string option
  val client_user_name : Netmech_scram.client_session -> string
  val client_authz_name : Netmech_scram.client_session -> string
  val client_password : Netmech_scram.client_session -> string
  val client_export : Netmech_scram.client_session -> string
  val client_import : string -> Netmech_scram.client_session
  val client_prop : Netmech_scram.client_session -> string -> string
  type credentials =
      [ `Salted_password of string * string * int
      | `Stored_creds of string * string * string * int ]
  val create_server_session :
    ?nonce:string ->
    Netmech_scram.profile ->
    (string -> Netmech_scram.credentials) -> Netmech_scram.server_session
  val create_server_session2 :
    ?nonce:string ->
    Netmech_scram.profile ->
    (string -> string -> Netmech_scram.credentials) ->
    Netmech_scram.server_session
  val create_salt : unit -> string
  val salt_password :
    Netsys_digests.iana_hash_fn -> string -> string -> int -> string
  val stored_key :
    Netsys_digests.iana_hash_fn -> string -> string -> int -> string * string
  val server_emit_flag : Netmech_scram.server_session -> bool
  val server_recv_flag : Netmech_scram.server_session -> bool
  val server_finish_flag : Netmech_scram.server_session -> bool
  val server_error_flag : Netmech_scram.server_session -> bool
  val server_emit_message : Netmech_scram.server_session -> string
  val server_emit_message_kv :
    Netmech_scram.server_session -> (string * string) list
  val server_recv_message : Netmech_scram.server_session -> string -> unit
  val server_protocol_key : Netmech_scram.server_session -> string option
  val server_channel_binding :
    Netmech_scram.server_session -> Netmech_scram.cb
  val server_user_name : Netmech_scram.server_session -> string option
  val server_authz_name : Netmech_scram.server_session -> string option
  val server_export : Netmech_scram.server_session -> string
  val server_import : string -> Netmech_scram.server_session
  val server_import_any :
    string ->
    (string -> Netmech_scram.credentials) -> Netmech_scram.server_session
  val server_import_any2 :
    string ->
    (string -> string -> Netmech_scram.credentials) ->
    Netmech_scram.server_session
  val server_prop : Netmech_scram.server_session -> string -> string
  type specific_keys = { kc : string; ke : string; ki : string; }
  module AES_CTS :
    sig
      val c : int
      val m : int
      val encrypt : string -> string -> string
      val encrypt_mstrings :
        string -> Netxdr_mstring.mstring list -> Netxdr_mstring.mstring list
      val decrypt : string -> string -> string
      val decrypt_mstrings :
        string -> Netxdr_mstring.mstring list -> Netxdr_mstring.mstring list
      val tests : (string * string * string) list
      val run_tests : unit -> bool
      val run_mtests : unit -> bool
    end
  module Cryptosystem :
    sig
      exception Integrity_error
      val derive_keys : string -> int -> Netmech_scram.specific_keys
      val encrypt_and_sign : Netmech_scram.specific_keys -> string -> string
      val encrypt_and_sign_mstrings :
        Netmech_scram.specific_keys ->
        Netxdr_mstring.mstring list -> Netxdr_mstring.mstring list
      val decrypt_and_verify :
        Netmech_scram.specific_keys -> string -> string
      val decrypt_and_verify_mstrings :
        Netmech_scram.specific_keys ->
        Netxdr_mstring.mstring list -> Netxdr_mstring.mstring list
      val get_ec : Netmech_scram.specific_keys -> int -> int
      val get_mic : Netmech_scram.specific_keys -> string -> string
      val get_mic_mstrings :
        Netmech_scram.specific_keys -> Netxdr_mstring.mstring list -> string
    end
  module Debug : sig val enable : bool Pervasives.ref end
end
This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml