Plasma GitLab Archive
Projects Blog Knowledge

sig
  type ptype = [ `GSSAPI ]
  type mechanism = [ `SHA_1 ]
  type profile = {
    ptype : Netmech_scram.ptype;
    mechanism : Netmech_scram.mechanism;
    return_unknown_user : bool;
    iteration_count_limit : int;
  }
  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 -> Netmech_scram.profile
  val string_of_server_error : Netmech_scram.server_error -> string
  val server_error_of_string : string -> Netmech_scram.server_error
  val create_client_session :
    Netmech_scram.profile -> string -> string -> Netmech_scram.client_session
  val client_configure_channel_binding :
    Netmech_scram.client_session -> string -> 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 -> string
  val client_emit_message : Netmech_scram.client_session -> string
  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_export : Netmech_scram.client_session -> string
  val client_import : string -> Netmech_scram.client_session
  val create_server_session :
    Netmech_scram.profile ->
    (string -> string * string * int) -> Netmech_scram.server_session
  val create_salt : unit -> string
  val salt_password : string -> string -> int -> 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_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 -> string option
  val server_user_name : Netmech_scram.server_session -> string option
  val server_export : Netmech_scram.server_session -> string
  val server_import : string -> Netmech_scram.server_session
  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 -> Xdr_mstring.mstring list -> Xdr_mstring.mstring list
      val decrypt : string -> string -> string
      val decrypt_mstrings :
        string -> Xdr_mstring.mstring list -> Xdr_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 ->
        Xdr_mstring.mstring list -> Xdr_mstring.mstring list
      val decrypt_and_verify :
        Netmech_scram.specific_keys -> string -> string
      val decrypt_and_verify_mstrings :
        Netmech_scram.specific_keys ->
        Xdr_mstring.mstring list -> Xdr_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 -> Xdr_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