class type[['credential, 'name, 'context]]poly_gss_api =object..end
method provider : stringA string name identifying the provider
method no_credential : 'credentialA substitute credential for GSS_C_NO_CREDENTIAL
method no_name : 'nameA substitute name for GSS_C_NO_NAME
method is_no_credential : 'credential -> boolA test for GSS_C_NO_CREDENTIAL
method is_no_name : 'name -> boolA test for GSS_C_NO_NAME
method accept_sec_context : 't.
         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:time ->
              delegated_cred:'credential ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 'tOn the first call, pass ~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 : 't.
         desired_name:'name ->
         time_req:time ->
         desired_mechs:oid_set ->
         cred_usage:cred_usage ->
         out:(cred:'credential ->
              actual_mechs:oid_set ->
              time_rec:time ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method add_cred : 't.
         input_cred:'credential ->
         desired_name:'name ->
         desired_mech:oid ->
         cred_usage:cred_usage ->
         initiator_time_req:time ->
         acceptor_time_req:time ->
         out:(output_cred:'credential ->
              actual_mechs:oid_set ->
              initiator_time_rec:time ->
              acceptor_time_rec:time ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method canonicalize_name : 't.
         input_name:'name ->
         mech_type:oid ->
         out:(output_name:'name ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method compare_name : 't.
         name1:'name ->
         name2:'name ->
         out:(name_equal:bool ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method context_time : 't.
         context:'context ->
         out:(time_rec:time ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method delete_sec_context : 't.
         context:'context ->
         out:(minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 'tOutput tokens are not supported (this is a deprecated feature of GSSAPI)
method display_name : 't.
         input_name:'name ->
         out:(output_name:string ->
              output_name_type:oid ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method display_minor_status : 't.
         status_value:minor_status ->
         mech_type:oid ->
         out:(status_strings:string list ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 'tNote that display_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 statuses
method duplicate_name : 't.
         name:'name ->
         out:(dest_name:'name ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method export_name : 't.
         name:'name ->
         out:(exported_name:string ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method export_sec_context : 't.
         context:'context ->
         out:(interprocess_token:interprocess_token ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method get_mic : 't.
         context:'context ->
         qop_req:qop ->
         message:message ->
         out:(msg_token:token ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method import_name : 't.
         input_name:string ->
         input_name_type:oid ->
         out:(output_name:'name ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method import_sec_context : 't.
         interprocess_token:interprocess_token ->
         out:(context:'context option ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method indicate_mechs : 't.
         out:(mech_set:oid_set ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method init_sec_context : 't.
         initiator_cred:'credential ->
         context:'context option ->
         target_name:'name ->
         mech_type:oid ->
         req_flags:req_flag list ->
         time_req: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:time ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 'tOn the first call, pass ~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 : 't.
         context:'context ->
         out:(src_name:'name ->
              targ_name:'name ->
              lifetime_req:time ->
              mech_type:oid ->
              ctx_flags:ret_flag list ->
              locally_initiated:bool ->
              is_open:bool ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method inquire_cred : 't.
         cred:'credential ->
         out:(name:'name ->
              lifetime:time ->
              cred_usage:cred_usage ->
              mechanisms:oid_set ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method inquire_cred_by_mech : 't.
         cred:'credential ->
         mech_type:oid ->
         out:(name:'name ->
              initiator_lifetime:time ->
              acceptor_lifetime:time ->
              cred_usage:cred_usage ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method inquire_mechs_for_name : 't.
         name:'name ->
         out:(mech_types:oid_set ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method inquire_names_for_mech : 't.
         mechanism:oid ->
         out:(name_types:oid_set ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method process_context_token : 't.
         context:'context ->
         token:token ->
         out:(minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method unwrap : 't.
         context:'context ->
         input_message:message ->
         output_message_preferred_type:[ `Bytes | `Memory ] ->
         out:(output_message:message ->
              conf_state:bool ->
              qop_state:qop ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 'tNote that the output_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 : 't.
         context:'context ->
         message:message ->
         token:token ->
         out:(qop_state:qop ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't
method wrap : 't.
         context:'context ->
         conf_req:bool ->
         qop_req:qop ->
         input_message:message ->
         output_message_preferred_type:[ `Bytes | `Memory ] ->
         out:(conf_state:bool ->
              output_message:message ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 'toutput_message_preferred_type: see unwrap
method wrap_size_limit : 't.
         context:'context ->
         conf_req:bool ->
         qop_req:qop ->
         req_output_size:int ->
         out:(max_input_size:int ->
              minor_status:minor_status ->
              major_status:major_status -> unit -> 't) ->
         unit -> 't