class type gss_api =object..end
method provider : stringmethod no_credential : credentialGSS_C_NO_CREDENTIALmethod no_name : nameGSS_C_NO_NAMEmethod accept_sec_context : 'a.
         context:context option ->
         acceptor_cred:credential ->
         input_token:token ->
         chan_bindings:channel_bindings option ->
         out:(src_name:name ->
              mech_type:oid ->
              output_context:context option ->
              output_token:token ->
              ret_flags:ret_flag list ->
              time_rec:[ `Indefinite | `This of float ] ->
              delegated_cred:credential ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'a) ->
         unit -> 'a~context:None. If successful, the
	function outputs a non-None ~output_context which should be
	passed as new ~context in follow-up calls.
	If the output_token is non-empty, it must be transmitted to
	the peer - independent of the major_status.
method acquire_cred : 'b.
         desired_name:name ->
         time_req:[ `Indefinite | `None | `This of float ] ->
         desired_mechs:oid_set ->
         cred_usage:cred_usage ->
         out:(cred:credential ->
              actual_mechs:oid_set ->
              time_rec:[ `Indefinite | `This of float ] ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'b) ->
         unit -> 'bmethod add_cred : 'c.
         input_cred:credential ->
         desired_name:name ->
         desired_mech:oid ->
         cred_usage:cred_usage ->
         initiator_time_req:[ `Indefinite | `None | `This of float ] ->
         acceptor_time_req:[ `Indefinite | `None | `This of float ] ->
         out:(output_cred:credential ->
              actual_mechs:oid_set ->
              initiator_time_rec:[ `Indefinite | `This of float ] ->
              acceptor_time_rec:[ `Indefinite | `This of float ] ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'c) ->
         unit -> 'cmethod canonicalize_name : 'd.
         input_name:name ->
         mech_type:oid ->
         out:(output_name:name ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'd) ->
         unit -> 'dmethod compare_name : 'e.
         name1:name ->
         name2:name ->
         out:(name_equal:bool ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'e) ->
         unit -> 'emethod context_time : 'f.
         context:context ->
         out:(time_rec:[ `Indefinite | `This of float ] ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'f) ->
         unit -> 'fmethod delete_sec_context : 'g.
         context:context ->
         out:(minor_status:minor_status ->
              major_status:major_status -> unit -> 'g) ->
         unit -> 'gmethod display_name : 'h.
         input_name:name ->
         out:(output_name:string ->
              output_name_type:oid ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'h) ->
         unit -> 'hmethod display_minor_status : 'i.
         minor_status:minor_status ->
         mech_type:oid ->
         out:(status_strings:string list ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'i) ->
         unit -> 'idisplay_minor_status decodes all status value parts in
	one step and returns the result as string list. Also, this
	method is restricted to decoding minor statusesmethod export_name : 'j.
         name:name ->
         out:(exported_name:string ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'j) ->
         unit -> 'jmethod export_sec_context : 'k.
         context:context ->
         out:(interprocess_token:interprocess_token ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'k) ->
         unit -> 'kmethod get_mic : 'l.
         context:context ->
         qop_req:qop option ->
         message:message ->
         out:(msg_token:token ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'l) ->
         unit -> 'lmethod import_name : 'm.
         input_name:string ->
         input_name_type:oid ->
         out:(output_name:name ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'm) ->
         unit -> 'mmethod import_sec_context : 'n.
         interprocess_token:interprocess_token ->
         out:(context:context option ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'n) ->
         unit -> 'nmethod indicate_mechs : 'o.
         out:(mech_set:oid_set ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'o) ->
         unit -> 'omethod init_sec_context : 'p.
         initiator_cred:credential ->
         context:context option ->
         target_name:name ->
         mech_type:oid ->
         req_flags:req_flag list ->
         time_rec:float option ->
         chan_bindings:channel_bindings option ->
         input_token:token option ->
         out:(actual_mech_type:oid ->
              output_context:context option ->
              output_token:token ->
              ret_flags:ret_flag list ->
              time_rec:[ `Indefinite | `This of float ] ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'p) ->
         unit -> 'p~context:None. If successful, the
	function outputs a non-None ~output_context which should be
	passed as new ~context in follow-up calls.
	If the output_token is non-empty, it must be transmitted to
	the peer - independent of the major_status.
method inquire_context : 'q.
         context:context ->
         out:(src_name:name ->
              targ_name:name ->
              lifetime_req:[ `Indefinite | `This of float ] ->
              mech_type:oid ->
              ctx_flags:ret_flag list ->
              locally_initiated:bool ->
              is_open:bool ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'q) ->
         unit -> 'qmethod inquire_cred : 'r.
         cred:credential ->
         out:(name:name ->
              lifetime:[ `Indefinite | `This of float ] ->
              cred_usage:cred_usage ->
              mechanisms:oid_set ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'r) ->
         unit -> 'rmethod inquire_cred_by_mech : 's.
         cred:credential ->
         mech_type:oid ->
         out:(name:name ->
              initiator_lifetime:[ `Indefinite | `This of float ] ->
              acceptor_lifetime:[ `Indefinite | `This of float ] ->
              cred_usage:cred_usage ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 's) ->
         unit -> 'smethod inquire_mechs_for_name : 't.
         name:name ->
         out:(mech_types:oid_set ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 'tmethod inquire_names_for_mech : 'u.
         mechanism:oid ->
         out:(name_types:oid_set ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'u) ->
         unit -> 'umethod process_context_token : 'v.
         context:context ->
         token:token ->
         out:(minor_status:minor_status ->
              major_status:major_status -> unit -> 'v) ->
         unit -> 'vmethod unwrap : 'w.
         context:context ->
         input_message:message ->
         output_message_preferred_type:[ `Memory | `String ] ->
         out:(output_message:message ->
              conf_state:bool ->
              qop_state:qop ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'w) ->
         unit -> 'woutput_message can be a buffer of different type
	(string vs. bigarray) than input_message. In 
	output_message_preferred_type the called may wish a certain
	representation. It is, however, not ensured that the wish is
	granted.method verify_mic : 'x.
         context:context ->
         message:message ->
         token:token ->
         out:(qop_state:qop ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'x) ->
         unit -> 'xmethod wrap : 'y.
         context:context ->
         conf_req:bool ->
         qop_req:qop option ->
         input_message:message ->
         output_message_preferred_type:[ `Memory | `String ] ->
         out:(conf_state:bool ->
              output_message:message ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'y) ->
         unit -> 'youtput_message_preferred_type: see unwrapmethod wrap_size_limit : 'z.
         context:context ->
         conf_req:bool ->
         qop_req:qop option ->
         req_output_size:int ->
         out:(max_input_size:int ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 'z) ->
         unit -> 'z
        