/* automatically generated by rust-bindgen 0.69.4 */

pub const GSS_C_DELEG_FLAG: u32 = 1;
pub const GSS_C_MUTUAL_FLAG: u32 = 2;
pub const GSS_C_REPLAY_FLAG: u32 = 4;
pub const GSS_C_SEQUENCE_FLAG: u32 = 8;
pub const GSS_C_CONF_FLAG: u32 = 16;
pub const GSS_C_INTEG_FLAG: u32 = 32;
pub const GSS_C_ANON_FLAG: u32 = 64;
pub const GSS_C_PROT_READY_FLAG: u32 = 128;
pub const GSS_C_TRANS_FLAG: u32 = 256;
pub const GSS_C_DELEG_POLICY_FLAG: u32 = 32768;
pub const GSS_C_NO_UI_FLAG: u32 = 2147483648;
pub const GSS_C_BOTH: u32 = 0;
pub const GSS_C_INITIATE: u32 = 1;
pub const GSS_C_ACCEPT: u32 = 2;
pub const GSS_C_OPTION_MASK: u32 = 65535;
pub const GSS_C_CRED_NO_UI: u32 = 65536;
pub const GSS_C_GSS_CODE: u32 = 1;
pub const GSS_C_MECH_CODE: u32 = 2;
pub const GSS_C_AF_UNSPEC: u32 = 0;
pub const GSS_C_AF_LOCAL: u32 = 1;
pub const GSS_C_AF_INET: u32 = 2;
pub const GSS_C_AF_IMPLINK: u32 = 3;
pub const GSS_C_AF_PUP: u32 = 4;
pub const GSS_C_AF_CHAOS: u32 = 5;
pub const GSS_C_AF_NS: u32 = 6;
pub const GSS_C_AF_NBS: u32 = 7;
pub const GSS_C_AF_ECMA: u32 = 8;
pub const GSS_C_AF_DATAKIT: u32 = 9;
pub const GSS_C_AF_CCITT: u32 = 10;
pub const GSS_C_AF_SNA: u32 = 11;
pub const GSS_C_AF_DECnet: u32 = 12;
pub const GSS_C_AF_DLI: u32 = 13;
pub const GSS_C_AF_LAT: u32 = 14;
pub const GSS_C_AF_HYLINK: u32 = 15;
pub const GSS_C_AF_APPLETALK: u32 = 16;
pub const GSS_C_AF_BSC: u32 = 17;
pub const GSS_C_AF_DSS: u32 = 18;
pub const GSS_C_AF_OSI: u32 = 19;
pub const GSS_C_AF_X25: u32 = 21;
pub const GSS_C_AF_NULLADDR: u32 = 255;
pub const GSS_C_QOP_DEFAULT: u32 = 0;
pub const GSS_S_COMPLETE: u32 = 0;
pub const GSS_C_CALLING_ERROR_OFFSET: u32 = 24;
pub const GSS_C_ROUTINE_ERROR_OFFSET: u32 = 16;
pub const GSS_C_SUPPLEMENTARY_OFFSET: u32 = 0;
pub const GSS_S_CONTINUE_NEEDED: u32 = 1;
pub const GSS_S_DUPLICATE_TOKEN: u32 = 2;
pub const GSS_S_OLD_TOKEN: u32 = 4;
pub const GSS_S_UNSEQ_TOKEN: u32 = 8;
pub const GSS_S_GAP_TOKEN: u32 = 16;
pub const GSS_KRB5_UI_ALLOW: u32 = 1;
pub const GSS_KRB5_UI_DENY: u32 = 2;
pub const GSS_KRB5_UI_PROBE: u32 = 3;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gss_name_struct {
    _unused: [u8; 0],
}
pub type gss_name_t = *mut gss_name_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gss_cred_id_struct {
    _unused: [u8; 0],
}
pub type gss_cred_id_t = *mut gss_cred_id_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gss_ctx_id_struct {
    _unused: [u8; 0],
}
pub type gss_ctx_id_t = *mut gss_ctx_id_struct;
pub type gss_uint32 = u32;
pub type gss_int32 = i32;
pub type OM_uint32 = gss_uint32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gss_OID_desc_struct {
    pub length: OM_uint32,
    pub elements: *mut ::std::os::raw::c_void,
}
const _: () = {
    ["Size of gss_OID_desc_struct"][::std::mem::size_of::<gss_OID_desc_struct>() - 16usize];
    ["Alignment of gss_OID_desc_struct"][::std::mem::align_of::<gss_OID_desc_struct>() - 8usize];
    ["Offset of field: gss_OID_desc_struct::length"]
        [::std::mem::offset_of!(gss_OID_desc_struct, length) - 0usize];
    ["Offset of field: gss_OID_desc_struct::elements"]
        [::std::mem::offset_of!(gss_OID_desc_struct, elements) - 8usize];
};
pub type gss_OID_desc = gss_OID_desc_struct;
pub type gss_OID = *mut gss_OID_desc_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gss_OID_set_desc_struct {
    pub count: usize,
    pub elements: gss_OID,
}
const _: () = {
    ["Size of gss_OID_set_desc_struct"][::std::mem::size_of::<gss_OID_set_desc_struct>() - 16usize];
    ["Alignment of gss_OID_set_desc_struct"]
        [::std::mem::align_of::<gss_OID_set_desc_struct>() - 8usize];
    ["Offset of field: gss_OID_set_desc_struct::count"]
        [::std::mem::offset_of!(gss_OID_set_desc_struct, count) - 0usize];
    ["Offset of field: gss_OID_set_desc_struct::elements"]
        [::std::mem::offset_of!(gss_OID_set_desc_struct, elements) - 8usize];
};
pub type gss_OID_set_desc = gss_OID_set_desc_struct;
pub type gss_OID_set = *mut gss_OID_set_desc_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gss_buffer_desc_struct {
    pub length: usize,
    pub value: *mut ::std::os::raw::c_void,
}
const _: () = {
    ["Size of gss_buffer_desc_struct"][::std::mem::size_of::<gss_buffer_desc_struct>() - 16usize];
    ["Alignment of gss_buffer_desc_struct"]
        [::std::mem::align_of::<gss_buffer_desc_struct>() - 8usize];
    ["Offset of field: gss_buffer_desc_struct::length"]
        [::std::mem::offset_of!(gss_buffer_desc_struct, length) - 0usize];
    ["Offset of field: gss_buffer_desc_struct::value"]
        [::std::mem::offset_of!(gss_buffer_desc_struct, value) - 8usize];
};
pub type gss_buffer_desc = gss_buffer_desc_struct;
pub type gss_buffer_t = *mut gss_buffer_desc_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gss_channel_bindings_struct {
    pub initiator_addrtype: OM_uint32,
    pub initiator_address: gss_buffer_desc,
    pub acceptor_addrtype: OM_uint32,
    pub acceptor_address: gss_buffer_desc,
    pub application_data: gss_buffer_desc,
}
const _: () = {
    ["Size of gss_channel_bindings_struct"]
        [::std::mem::size_of::<gss_channel_bindings_struct>() - 64usize];
    ["Alignment of gss_channel_bindings_struct"]
        [::std::mem::align_of::<gss_channel_bindings_struct>() - 8usize];
    ["Offset of field: gss_channel_bindings_struct::initiator_addrtype"]
        [::std::mem::offset_of!(gss_channel_bindings_struct, initiator_addrtype) - 0usize];
    ["Offset of field: gss_channel_bindings_struct::initiator_address"]
        [::std::mem::offset_of!(gss_channel_bindings_struct, initiator_address) - 8usize];
    ["Offset of field: gss_channel_bindings_struct::acceptor_addrtype"]
        [::std::mem::offset_of!(gss_channel_bindings_struct, acceptor_addrtype) - 24usize];
    ["Offset of field: gss_channel_bindings_struct::acceptor_address"]
        [::std::mem::offset_of!(gss_channel_bindings_struct, acceptor_address) - 32usize];
    ["Offset of field: gss_channel_bindings_struct::application_data"]
        [::std::mem::offset_of!(gss_channel_bindings_struct, application_data) - 48usize];
};
pub type gss_channel_bindings_t = *mut gss_channel_bindings_struct;
pub type gss_qop_t = OM_uint32;
pub type gss_cred_usage_t = ::std::os::raw::c_int;
pub type krb5_int32 = ::std::os::raw::c_int;
pub type krb5_enctype = krb5_int32;
pub type krb5_flags = krb5_int32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _krb5_ccache {
    _unused: [u8; 0],
}
pub type krb5_ccache = *mut _krb5_ccache;
pub type gss_uint64 = u64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gss_krb5_lucid_key {
    pub type_: OM_uint32,
    pub length: OM_uint32,
    pub data: *mut ::std::os::raw::c_void,
}
const _: () = {
    ["Size of gss_krb5_lucid_key"][::std::mem::size_of::<gss_krb5_lucid_key>() - 16usize];
    ["Alignment of gss_krb5_lucid_key"][::std::mem::align_of::<gss_krb5_lucid_key>() - 8usize];
    ["Offset of field: gss_krb5_lucid_key::type_"]
        [::std::mem::offset_of!(gss_krb5_lucid_key, type_) - 0usize];
    ["Offset of field: gss_krb5_lucid_key::length"]
        [::std::mem::offset_of!(gss_krb5_lucid_key, length) - 4usize];
    ["Offset of field: gss_krb5_lucid_key::data"]
        [::std::mem::offset_of!(gss_krb5_lucid_key, data) - 8usize];
};
pub type gss_krb5_lucid_key_t = gss_krb5_lucid_key;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gss_krb5_rfc1964_keydata {
    pub sign_alg: OM_uint32,
    pub seal_alg: OM_uint32,
    pub ctx_key: gss_krb5_lucid_key_t,
}
const _: () = {
    ["Size of gss_krb5_rfc1964_keydata"]
        [::std::mem::size_of::<gss_krb5_rfc1964_keydata>() - 24usize];
    ["Alignment of gss_krb5_rfc1964_keydata"]
        [::std::mem::align_of::<gss_krb5_rfc1964_keydata>() - 8usize];
    ["Offset of field: gss_krb5_rfc1964_keydata::sign_alg"]
        [::std::mem::offset_of!(gss_krb5_rfc1964_keydata, sign_alg) - 0usize];
    ["Offset of field: gss_krb5_rfc1964_keydata::seal_alg"]
        [::std::mem::offset_of!(gss_krb5_rfc1964_keydata, seal_alg) - 4usize];
    ["Offset of field: gss_krb5_rfc1964_keydata::ctx_key"]
        [::std::mem::offset_of!(gss_krb5_rfc1964_keydata, ctx_key) - 8usize];
};
pub type gss_krb5_rfc1964_keydata_t = gss_krb5_rfc1964_keydata;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gss_krb5_cfx_keydata {
    pub have_acceptor_subkey: OM_uint32,
    pub ctx_key: gss_krb5_lucid_key_t,
    pub acceptor_subkey: gss_krb5_lucid_key_t,
}
const _: () = {
    ["Size of gss_krb5_cfx_keydata"][::std::mem::size_of::<gss_krb5_cfx_keydata>() - 40usize];
    ["Alignment of gss_krb5_cfx_keydata"][::std::mem::align_of::<gss_krb5_cfx_keydata>() - 8usize];
    ["Offset of field: gss_krb5_cfx_keydata::have_acceptor_subkey"]
        [::std::mem::offset_of!(gss_krb5_cfx_keydata, have_acceptor_subkey) - 0usize];
    ["Offset of field: gss_krb5_cfx_keydata::ctx_key"]
        [::std::mem::offset_of!(gss_krb5_cfx_keydata, ctx_key) - 8usize];
    ["Offset of field: gss_krb5_cfx_keydata::acceptor_subkey"]
        [::std::mem::offset_of!(gss_krb5_cfx_keydata, acceptor_subkey) - 24usize];
};
pub type gss_krb5_cfx_keydata_t = gss_krb5_cfx_keydata;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gss_krb5_lucid_context_v1 {
    pub version: OM_uint32,
    pub initiate: OM_uint32,
    pub endtime: OM_uint32,
    pub send_seq: gss_uint64,
    pub recv_seq: gss_uint64,
    pub protocol: OM_uint32,
    pub rfc1964_kd: gss_krb5_rfc1964_keydata_t,
    pub cfx_kd: gss_krb5_cfx_keydata_t,
}
const _: () = {
    ["Size of gss_krb5_lucid_context_v1"]
        [::std::mem::size_of::<gss_krb5_lucid_context_v1>() - 104usize];
    ["Alignment of gss_krb5_lucid_context_v1"]
        [::std::mem::align_of::<gss_krb5_lucid_context_v1>() - 8usize];
    ["Offset of field: gss_krb5_lucid_context_v1::version"]
        [::std::mem::offset_of!(gss_krb5_lucid_context_v1, version) - 0usize];
    ["Offset of field: gss_krb5_lucid_context_v1::initiate"]
        [::std::mem::offset_of!(gss_krb5_lucid_context_v1, initiate) - 4usize];
    ["Offset of field: gss_krb5_lucid_context_v1::endtime"]
        [::std::mem::offset_of!(gss_krb5_lucid_context_v1, endtime) - 8usize];
    ["Offset of field: gss_krb5_lucid_context_v1::send_seq"]
        [::std::mem::offset_of!(gss_krb5_lucid_context_v1, send_seq) - 16usize];
    ["Offset of field: gss_krb5_lucid_context_v1::recv_seq"]
        [::std::mem::offset_of!(gss_krb5_lucid_context_v1, recv_seq) - 24usize];
    ["Offset of field: gss_krb5_lucid_context_v1::protocol"]
        [::std::mem::offset_of!(gss_krb5_lucid_context_v1, protocol) - 32usize];
    ["Offset of field: gss_krb5_lucid_context_v1::rfc1964_kd"]
        [::std::mem::offset_of!(gss_krb5_lucid_context_v1, rfc1964_kd) - 40usize];
    ["Offset of field: gss_krb5_lucid_context_v1::cfx_kd"]
        [::std::mem::offset_of!(gss_krb5_lucid_context_v1, cfx_kd) - 64usize];
};
pub type gss_krb5_lucid_context_v1_t = gss_krb5_lucid_context_v1;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gss_krb5_lucid_context_version {
    pub version: OM_uint32,
}
const _: () = {
    ["Size of gss_krb5_lucid_context_version"]
        [::std::mem::size_of::<gss_krb5_lucid_context_version>() - 4usize];
    ["Alignment of gss_krb5_lucid_context_version"]
        [::std::mem::align_of::<gss_krb5_lucid_context_version>() - 4usize];
    ["Offset of field: gss_krb5_lucid_context_version::version"]
        [::std::mem::offset_of!(gss_krb5_lucid_context_version, version) - 0usize];
};
pub type gss_krb5_lucid_context_version_t = gss_krb5_lucid_context_version;
pub const _GSS_C_INDEFINITE: OM_uint32 = 4294967295;
pub const _GSS_C_CALLING_ERROR_MASK: OM_uint32 = 255;
pub const _GSS_C_ROUTINE_ERROR_MASK: OM_uint32 = 255;
pub const _GSS_C_SUPPLEMENTARY_MASK: OM_uint32 = 65535;
pub const _GSS_S_CALL_INACCESSIBLE_READ: OM_uint32 = 16777216;
pub const _GSS_S_CALL_INACCESSIBLE_WRITE: OM_uint32 = 33554432;
pub const _GSS_S_CALL_BAD_STRUCTURE: OM_uint32 = 50331648;
pub const _GSS_S_BAD_MECH: OM_uint32 = 65536;
pub const _GSS_S_BAD_NAME: OM_uint32 = 131072;
pub const _GSS_S_BAD_NAMETYPE: OM_uint32 = 196608;
pub const _GSS_S_BAD_BINDINGS: OM_uint32 = 262144;
pub const _GSS_S_BAD_STATUS: OM_uint32 = 327680;
pub const _GSS_S_BAD_SIG: OM_uint32 = 393216;
pub const _GSS_S_BAD_MIC: OM_uint32 = 393216;
pub const _GSS_S_NO_CRED: OM_uint32 = 458752;
pub const _GSS_S_NO_CONTEXT: OM_uint32 = 524288;
pub const _GSS_S_DEFECTIVE_TOKEN: OM_uint32 = 589824;
pub const _GSS_S_DEFECTIVE_CREDENTIAL: OM_uint32 = 655360;
pub const _GSS_S_CREDENTIALS_EXPIRED: OM_uint32 = 720896;
pub const _GSS_S_CONTEXT_EXPIRED: OM_uint32 = 786432;
pub const _GSS_S_FAILURE: OM_uint32 = 851968;
pub const _GSS_S_BAD_QOP: OM_uint32 = 917504;
pub const _GSS_S_UNAUTHORIZED: OM_uint32 = 983040;
pub const _GSS_S_UNAVAILABLE: OM_uint32 = 1048576;
pub const _GSS_S_DUPLICATE_ELEMENT: OM_uint32 = 1114112;
pub const _GSS_S_NAME_NOT_MN: OM_uint32 = 1179648;
pub const _GSS_S_CONTINUE_NEEDED: OM_uint32 = 1;
pub const _GSS_S_DUPLICATE_TOKEN: OM_uint32 = 2;
pub const _GSS_S_OLD_TOKEN: OM_uint32 = 4;
pub const _GSS_S_UNSEQ_TOKEN: OM_uint32 = 8;
pub const _GSS_S_GAP_TOKEN: OM_uint32 = 16;
pub struct GSSAPI {
    __library: ::libloading::Library,
    pub GSS_C_NT_USER_NAME: Result<*mut gss_OID, ::libloading::Error>,
    pub GSS_C_NT_MACHINE_UID_NAME: Result<*mut gss_OID, ::libloading::Error>,
    pub GSS_C_NT_STRING_UID_NAME: Result<*mut gss_OID, ::libloading::Error>,
    pub GSS_C_NT_HOSTBASED_SERVICE_X: Result<*mut gss_OID, ::libloading::Error>,
    pub GSS_C_NT_HOSTBASED_SERVICE: Result<*mut gss_OID, ::libloading::Error>,
    pub GSS_C_NT_ANONYMOUS: Result<*mut gss_OID, ::libloading::Error>,
    pub GSS_C_NT_EXPORT_NAME: Result<*mut gss_OID, ::libloading::Error>,
    pub gss_acquire_cred: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_name_t,
            arg3: OM_uint32,
            arg4: gss_OID_set,
            arg5: gss_cred_usage_t,
            arg6: *mut gss_cred_id_t,
            arg7: *mut gss_OID_set,
            arg8: *mut OM_uint32,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_release_cred: Result<
        unsafe extern "C" fn(arg1: *mut OM_uint32, arg2: *mut gss_cred_id_t) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_init_sec_context: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_cred_id_t,
            arg3: *mut gss_ctx_id_t,
            arg4: gss_name_t,
            arg5: gss_OID,
            arg6: OM_uint32,
            arg7: OM_uint32,
            arg8: gss_channel_bindings_t,
            arg9: gss_buffer_t,
            arg10: *mut gss_OID,
            arg11: gss_buffer_t,
            arg12: *mut OM_uint32,
            arg13: *mut OM_uint32,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_accept_sec_context: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: *mut gss_ctx_id_t,
            arg3: gss_cred_id_t,
            arg4: gss_buffer_t,
            arg5: gss_channel_bindings_t,
            arg6: *mut gss_name_t,
            arg7: *mut gss_OID,
            arg8: gss_buffer_t,
            arg9: *mut OM_uint32,
            arg10: *mut OM_uint32,
            arg11: *mut gss_cred_id_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_process_context_token: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_ctx_id_t,
            arg3: gss_buffer_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_delete_sec_context: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: *mut gss_ctx_id_t,
            arg3: gss_buffer_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_context_time: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_ctx_id_t,
            arg3: *mut OM_uint32,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_get_mic: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_ctx_id_t,
            arg3: gss_qop_t,
            arg4: gss_buffer_t,
            arg5: gss_buffer_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_verify_mic: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_ctx_id_t,
            arg3: gss_buffer_t,
            arg4: gss_buffer_t,
            arg5: *mut gss_qop_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_wrap: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_ctx_id_t,
            arg3: ::std::os::raw::c_int,
            arg4: gss_qop_t,
            arg5: gss_buffer_t,
            arg6: *mut ::std::os::raw::c_int,
            arg7: gss_buffer_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_unwrap: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_ctx_id_t,
            arg3: gss_buffer_t,
            arg4: gss_buffer_t,
            arg5: *mut ::std::os::raw::c_int,
            arg6: *mut gss_qop_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_display_status: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: OM_uint32,
            arg3: ::std::os::raw::c_int,
            arg4: gss_OID,
            arg5: *mut OM_uint32,
            arg6: gss_buffer_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_indicate_mechs: Result<
        unsafe extern "C" fn(arg1: *mut OM_uint32, arg2: *mut gss_OID_set) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_compare_name: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_name_t,
            arg3: gss_name_t,
            arg4: *mut ::std::os::raw::c_int,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_display_name: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_name_t,
            arg3: gss_buffer_t,
            arg4: *mut gss_OID,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_import_name: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_buffer_t,
            arg3: gss_OID,
            arg4: *mut gss_name_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_release_name: Result<
        unsafe extern "C" fn(arg1: *mut OM_uint32, arg2: *mut gss_name_t) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_release_buffer: Result<
        unsafe extern "C" fn(arg1: *mut OM_uint32, arg2: gss_buffer_t) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_release_oid_set: Result<
        unsafe extern "C" fn(arg1: *mut OM_uint32, arg2: *mut gss_OID_set) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_inquire_cred: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_cred_id_t,
            arg3: *mut gss_name_t,
            arg4: *mut OM_uint32,
            arg5: *mut gss_cred_usage_t,
            arg6: *mut gss_OID_set,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_inquire_context: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_ctx_id_t,
            arg3: *mut gss_name_t,
            arg4: *mut gss_name_t,
            arg5: *mut OM_uint32,
            arg6: *mut gss_OID,
            arg7: *mut OM_uint32,
            arg8: *mut ::std::os::raw::c_int,
            arg9: *mut ::std::os::raw::c_int,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_wrap_size_limit: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_ctx_id_t,
            arg3: ::std::os::raw::c_int,
            arg4: gss_qop_t,
            arg5: OM_uint32,
            arg6: *mut OM_uint32,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_export_name_object: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_name_t,
            arg3: gss_OID,
            arg4: *mut *mut ::std::os::raw::c_void,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_add_cred: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_cred_id_t,
            arg3: gss_name_t,
            arg4: gss_OID,
            arg5: gss_cred_usage_t,
            arg6: OM_uint32,
            arg7: OM_uint32,
            arg8: *mut gss_cred_id_t,
            arg9: *mut gss_OID_set,
            arg10: *mut OM_uint32,
            arg11: *mut OM_uint32,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_inquire_cred_by_mech: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_cred_id_t,
            arg3: gss_OID,
            arg4: *mut gss_name_t,
            arg5: *mut OM_uint32,
            arg6: *mut OM_uint32,
            arg7: *mut gss_cred_usage_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_export_sec_context: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: *mut gss_ctx_id_t,
            arg3: gss_buffer_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_import_sec_context: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_buffer_t,
            arg3: *mut gss_ctx_id_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_release_oid: Result<
        unsafe extern "C" fn(arg1: *mut OM_uint32, arg2: *mut gss_OID) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_create_empty_oid_set: Result<
        unsafe extern "C" fn(arg1: *mut OM_uint32, arg2: *mut gss_OID_set) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_add_oid_set_member: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_OID,
            arg3: *mut gss_OID_set,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_test_oid_set_member: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_OID,
            arg3: gss_OID_set,
            arg4: *mut ::std::os::raw::c_int,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_str_to_oid: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_buffer_t,
            arg3: *mut gss_OID,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_oid_to_str: Result<
        unsafe extern "C" fn(arg1: *mut OM_uint32, arg2: gss_OID, arg3: gss_buffer_t) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_inquire_names_for_mech: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_OID,
            arg3: *mut gss_OID_set,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_inquire_mechs_for_name: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_name_t,
            arg3: *mut gss_OID_set,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_sign: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_ctx_id_t,
            arg3: ::std::os::raw::c_int,
            arg4: gss_buffer_t,
            arg5: gss_buffer_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_verify: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_ctx_id_t,
            arg3: gss_buffer_t,
            arg4: gss_buffer_t,
            arg5: *mut ::std::os::raw::c_int,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_seal: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_ctx_id_t,
            arg3: ::std::os::raw::c_int,
            arg4: ::std::os::raw::c_int,
            arg5: gss_buffer_t,
            arg6: *mut ::std::os::raw::c_int,
            arg7: gss_buffer_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_unseal: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_ctx_id_t,
            arg3: gss_buffer_t,
            arg4: gss_buffer_t,
            arg5: *mut ::std::os::raw::c_int,
            arg6: *mut ::std::os::raw::c_int,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_export_name: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_name_t,
            arg3: gss_buffer_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_duplicate_name: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_name_t,
            arg3: *mut gss_name_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_canonicalize_name: Result<
        unsafe extern "C" fn(
            arg1: *mut OM_uint32,
            arg2: gss_name_t,
            arg3: gss_OID,
            arg4: *mut gss_name_t,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub GSS_KRB5_NT_PRINCIPAL_NAME: Result<*mut *const gss_OID_desc, ::libloading::Error>,
    pub gss_mech_krb5: Result<*mut *const gss_OID_desc, ::libloading::Error>,
    pub gss_mech_krb5_old: Result<*mut *const gss_OID_desc, ::libloading::Error>,
    pub gss_mech_set_krb5: Result<*mut *const gss_OID_set_desc, ::libloading::Error>,
    pub gss_mech_set_krb5_old: Result<*mut *const gss_OID_set_desc, ::libloading::Error>,
    pub gss_mech_set_krb5_both: Result<*mut *const gss_OID_set_desc, ::libloading::Error>,
    pub gss_nt_krb5_name: Result<*mut *const gss_OID_desc, ::libloading::Error>,
    pub gss_nt_krb5_principal: Result<*mut *const gss_OID_desc, ::libloading::Error>,
    pub gss_krb5_get_tkt_flags: Result<
        unsafe extern "C" fn(
            minor_status: *mut OM_uint32,
            context_handle: gss_ctx_id_t,
            ticket_flags: *mut krb5_flags,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_krb5_copy_ccache: Result<
        unsafe extern "C" fn(
            minor_status: *mut OM_uint32,
            cred_handle: gss_cred_id_t,
            out_ccache: krb5_ccache,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_krb5_ccache_name: Result<
        unsafe extern "C" fn(
            minor_status: *mut OM_uint32,
            name: *const ::std::os::raw::c_char,
            out_name: *mut *const ::std::os::raw::c_char,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_krb5_set_allowable_enctypes: Result<
        unsafe extern "C" fn(
            minor_status: *mut OM_uint32,
            cred: gss_cred_id_t,
            num_ktypes: OM_uint32,
            ktypes: *mut krb5_enctype,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_krb5_export_lucid_sec_context: Result<
        unsafe extern "C" fn(
            minor_status: *mut OM_uint32,
            context_handle: *mut gss_ctx_id_t,
            version: OM_uint32,
            kctx: *mut *mut ::std::os::raw::c_void,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_krb5_free_lucid_sec_context: Result<
        unsafe extern "C" fn(
            minor_status: *mut OM_uint32,
            kctx: *mut ::std::os::raw::c_void,
        ) -> OM_uint32,
        ::libloading::Error,
    >,
    pub gss_krb5_ui: Result<
        unsafe extern "C" fn(arg1: *mut OM_uint32, arg2: OM_uint32) -> OM_uint32,
        ::libloading::Error,
    >,
}
impl GSSAPI {
    pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
    where
        P: AsRef<::std::ffi::OsStr>,
    {
        let library = ::libloading::Library::new(path)?;
        Self::from_library(library)
    }
    pub unsafe fn from_library<L>(library: L) -> Result<Self, ::libloading::Error>
    where
        L: Into<::libloading::Library>,
    {
        let __library = library.into();
        let GSS_C_NT_USER_NAME = __library
            .get::<*mut gss_OID>(b"GSS_C_NT_USER_NAME\0")
            .map(|sym| *sym);
        let GSS_C_NT_MACHINE_UID_NAME = __library
            .get::<*mut gss_OID>(b"GSS_C_NT_MACHINE_UID_NAME\0")
            .map(|sym| *sym);
        let GSS_C_NT_STRING_UID_NAME = __library
            .get::<*mut gss_OID>(b"GSS_C_NT_STRING_UID_NAME\0")
            .map(|sym| *sym);
        let GSS_C_NT_HOSTBASED_SERVICE_X = __library
            .get::<*mut gss_OID>(b"GSS_C_NT_HOSTBASED_SERVICE_X\0")
            .map(|sym| *sym);
        let GSS_C_NT_HOSTBASED_SERVICE = __library
            .get::<*mut gss_OID>(b"GSS_C_NT_HOSTBASED_SERVICE\0")
            .map(|sym| *sym);
        let GSS_C_NT_ANONYMOUS = __library
            .get::<*mut gss_OID>(b"GSS_C_NT_ANONYMOUS\0")
            .map(|sym| *sym);
        let GSS_C_NT_EXPORT_NAME = __library
            .get::<*mut gss_OID>(b"GSS_C_NT_EXPORT_NAME\0")
            .map(|sym| *sym);
        let gss_acquire_cred = __library.get(b"gss_acquire_cred\0").map(|sym| *sym);
        let gss_release_cred = __library.get(b"gss_release_cred\0").map(|sym| *sym);
        let gss_init_sec_context = __library.get(b"gss_init_sec_context\0").map(|sym| *sym);
        let gss_accept_sec_context = __library.get(b"gss_accept_sec_context\0").map(|sym| *sym);
        let gss_process_context_token = __library
            .get(b"gss_process_context_token\0")
            .map(|sym| *sym);
        let gss_delete_sec_context = __library.get(b"gss_delete_sec_context\0").map(|sym| *sym);
        let gss_context_time = __library.get(b"gss_context_time\0").map(|sym| *sym);
        let gss_get_mic = __library.get(b"gss_get_mic\0").map(|sym| *sym);
        let gss_verify_mic = __library.get(b"gss_verify_mic\0").map(|sym| *sym);
        let gss_wrap = __library.get(b"gss_wrap\0").map(|sym| *sym);
        let gss_unwrap = __library.get(b"gss_unwrap\0").map(|sym| *sym);
        let gss_display_status = __library.get(b"gss_display_status\0").map(|sym| *sym);
        let gss_indicate_mechs = __library.get(b"gss_indicate_mechs\0").map(|sym| *sym);
        let gss_compare_name = __library.get(b"gss_compare_name\0").map(|sym| *sym);
        let gss_display_name = __library.get(b"gss_display_name\0").map(|sym| *sym);
        let gss_import_name = __library.get(b"gss_import_name\0").map(|sym| *sym);
        let gss_release_name = __library.get(b"gss_release_name\0").map(|sym| *sym);
        let gss_release_buffer = __library.get(b"gss_release_buffer\0").map(|sym| *sym);
        let gss_release_oid_set = __library.get(b"gss_release_oid_set\0").map(|sym| *sym);
        let gss_inquire_cred = __library.get(b"gss_inquire_cred\0").map(|sym| *sym);
        let gss_inquire_context = __library.get(b"gss_inquire_context\0").map(|sym| *sym);
        let gss_wrap_size_limit = __library.get(b"gss_wrap_size_limit\0").map(|sym| *sym);
        let gss_export_name_object = __library.get(b"gss_export_name_object\0").map(|sym| *sym);
        let gss_add_cred = __library.get(b"gss_add_cred\0").map(|sym| *sym);
        let gss_inquire_cred_by_mech = __library.get(b"gss_inquire_cred_by_mech\0").map(|sym| *sym);
        let gss_export_sec_context = __library.get(b"gss_export_sec_context\0").map(|sym| *sym);
        let gss_import_sec_context = __library.get(b"gss_import_sec_context\0").map(|sym| *sym);
        let gss_release_oid = __library.get(b"gss_release_oid\0").map(|sym| *sym);
        let gss_create_empty_oid_set = __library.get(b"gss_create_empty_oid_set\0").map(|sym| *sym);
        let gss_add_oid_set_member = __library.get(b"gss_add_oid_set_member\0").map(|sym| *sym);
        let gss_test_oid_set_member = __library.get(b"gss_test_oid_set_member\0").map(|sym| *sym);
        let gss_str_to_oid = __library.get(b"gss_str_to_oid\0").map(|sym| *sym);
        let gss_oid_to_str = __library.get(b"gss_oid_to_str\0").map(|sym| *sym);
        let gss_inquire_names_for_mech = __library
            .get(b"gss_inquire_names_for_mech\0")
            .map(|sym| *sym);
        let gss_inquire_mechs_for_name = __library
            .get(b"gss_inquire_mechs_for_name\0")
            .map(|sym| *sym);
        let gss_sign = __library.get(b"gss_sign\0").map(|sym| *sym);
        let gss_verify = __library.get(b"gss_verify\0").map(|sym| *sym);
        let gss_seal = __library.get(b"gss_seal\0").map(|sym| *sym);
        let gss_unseal = __library.get(b"gss_unseal\0").map(|sym| *sym);
        let gss_export_name = __library.get(b"gss_export_name\0").map(|sym| *sym);
        let gss_duplicate_name = __library.get(b"gss_duplicate_name\0").map(|sym| *sym);
        let gss_canonicalize_name = __library.get(b"gss_canonicalize_name\0").map(|sym| *sym);
        let GSS_KRB5_NT_PRINCIPAL_NAME = __library
            .get::<*mut *const gss_OID_desc>(b"GSS_KRB5_NT_PRINCIPAL_NAME\0")
            .map(|sym| *sym);
        let gss_mech_krb5 = __library
            .get::<*mut *const gss_OID_desc>(b"gss_mech_krb5\0")
            .map(|sym| *sym);
        let gss_mech_krb5_old = __library
            .get::<*mut *const gss_OID_desc>(b"gss_mech_krb5_old\0")
            .map(|sym| *sym);
        let gss_mech_set_krb5 = __library
            .get::<*mut *const gss_OID_set_desc>(b"gss_mech_set_krb5\0")
            .map(|sym| *sym);
        let gss_mech_set_krb5_old = __library
            .get::<*mut *const gss_OID_set_desc>(b"gss_mech_set_krb5_old\0")
            .map(|sym| *sym);
        let gss_mech_set_krb5_both = __library
            .get::<*mut *const gss_OID_set_desc>(b"gss_mech_set_krb5_both\0")
            .map(|sym| *sym);
        let gss_nt_krb5_name = __library
            .get::<*mut *const gss_OID_desc>(b"gss_nt_krb5_name\0")
            .map(|sym| *sym);
        let gss_nt_krb5_principal = __library
            .get::<*mut *const gss_OID_desc>(b"gss_nt_krb5_principal\0")
            .map(|sym| *sym);
        let gss_krb5_get_tkt_flags = __library.get(b"gss_krb5_get_tkt_flags\0").map(|sym| *sym);
        let gss_krb5_copy_ccache = __library.get(b"gss_krb5_copy_ccache\0").map(|sym| *sym);
        let gss_krb5_ccache_name = __library.get(b"gss_krb5_ccache_name\0").map(|sym| *sym);
        let gss_krb5_set_allowable_enctypes = __library
            .get(b"gss_krb5_set_allowable_enctypes\0")
            .map(|sym| *sym);
        let gss_krb5_export_lucid_sec_context = __library
            .get(b"gss_krb5_export_lucid_sec_context\0")
            .map(|sym| *sym);
        let gss_krb5_free_lucid_sec_context = __library
            .get(b"gss_krb5_free_lucid_sec_context\0")
            .map(|sym| *sym);
        let gss_krb5_ui = __library.get(b"gss_krb5_ui\0").map(|sym| *sym);
        Ok(GSSAPI {
            __library,
            GSS_C_NT_USER_NAME,
            GSS_C_NT_MACHINE_UID_NAME,
            GSS_C_NT_STRING_UID_NAME,
            GSS_C_NT_HOSTBASED_SERVICE_X,
            GSS_C_NT_HOSTBASED_SERVICE,
            GSS_C_NT_ANONYMOUS,
            GSS_C_NT_EXPORT_NAME,
            gss_acquire_cred,
            gss_release_cred,
            gss_init_sec_context,
            gss_accept_sec_context,
            gss_process_context_token,
            gss_delete_sec_context,
            gss_context_time,
            gss_get_mic,
            gss_verify_mic,
            gss_wrap,
            gss_unwrap,
            gss_display_status,
            gss_indicate_mechs,
            gss_compare_name,
            gss_display_name,
            gss_import_name,
            gss_release_name,
            gss_release_buffer,
            gss_release_oid_set,
            gss_inquire_cred,
            gss_inquire_context,
            gss_wrap_size_limit,
            gss_export_name_object,
            gss_add_cred,
            gss_inquire_cred_by_mech,
            gss_export_sec_context,
            gss_import_sec_context,
            gss_release_oid,
            gss_create_empty_oid_set,
            gss_add_oid_set_member,
            gss_test_oid_set_member,
            gss_str_to_oid,
            gss_oid_to_str,
            gss_inquire_names_for_mech,
            gss_inquire_mechs_for_name,
            gss_sign,
            gss_verify,
            gss_seal,
            gss_unseal,
            gss_export_name,
            gss_duplicate_name,
            gss_canonicalize_name,
            GSS_KRB5_NT_PRINCIPAL_NAME,
            gss_mech_krb5,
            gss_mech_krb5_old,
            gss_mech_set_krb5,
            gss_mech_set_krb5_old,
            gss_mech_set_krb5_both,
            gss_nt_krb5_name,
            gss_nt_krb5_principal,
            gss_krb5_get_tkt_flags,
            gss_krb5_copy_ccache,
            gss_krb5_ccache_name,
            gss_krb5_set_allowable_enctypes,
            gss_krb5_export_lucid_sec_context,
            gss_krb5_free_lucid_sec_context,
            gss_krb5_ui,
        })
    }
    pub unsafe fn GSS_C_NT_USER_NAME(&self) -> *mut gss_OID {
        *self
            .GSS_C_NT_USER_NAME
            .as_ref()
            .expect("Expected variable, got error.")
    }
    pub unsafe fn GSS_C_NT_MACHINE_UID_NAME(&self) -> *mut gss_OID {
        *self
            .GSS_C_NT_MACHINE_UID_NAME
            .as_ref()
            .expect("Expected variable, got error.")
    }
    pub unsafe fn GSS_C_NT_STRING_UID_NAME(&self) -> *mut gss_OID {
        *self
            .GSS_C_NT_STRING_UID_NAME
            .as_ref()
            .expect("Expected variable, got error.")
    }
    pub unsafe fn GSS_C_NT_HOSTBASED_SERVICE_X(&self) -> *mut gss_OID {
        *self
            .GSS_C_NT_HOSTBASED_SERVICE_X
            .as_ref()
            .expect("Expected variable, got error.")
    }
    pub unsafe fn GSS_C_NT_HOSTBASED_SERVICE(&self) -> *mut gss_OID {
        *self
            .GSS_C_NT_HOSTBASED_SERVICE
            .as_ref()
            .expect("Expected variable, got error.")
    }
    pub unsafe fn GSS_C_NT_ANONYMOUS(&self) -> *mut gss_OID {
        *self
            .GSS_C_NT_ANONYMOUS
            .as_ref()
            .expect("Expected variable, got error.")
    }
    pub unsafe fn GSS_C_NT_EXPORT_NAME(&self) -> *mut gss_OID {
        *self
            .GSS_C_NT_EXPORT_NAME
            .as_ref()
            .expect("Expected variable, got error.")
    }
    pub unsafe fn gss_acquire_cred(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_name_t,
        arg3: OM_uint32,
        arg4: gss_OID_set,
        arg5: gss_cred_usage_t,
        arg6: *mut gss_cred_id_t,
        arg7: *mut gss_OID_set,
        arg8: *mut OM_uint32,
    ) -> OM_uint32 {
        (self
            .gss_acquire_cred
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8,
        )
    }
    pub unsafe fn gss_release_cred(
        &self,
        arg1: *mut OM_uint32,
        arg2: *mut gss_cred_id_t,
    ) -> OM_uint32 {
        (self
            .gss_release_cred
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
    pub unsafe fn gss_init_sec_context(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_cred_id_t,
        arg3: *mut gss_ctx_id_t,
        arg4: gss_name_t,
        arg5: gss_OID,
        arg6: OM_uint32,
        arg7: OM_uint32,
        arg8: gss_channel_bindings_t,
        arg9: gss_buffer_t,
        arg10: *mut gss_OID,
        arg11: gss_buffer_t,
        arg12: *mut OM_uint32,
        arg13: *mut OM_uint32,
    ) -> OM_uint32 {
        (self
            .gss_init_sec_context
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13,
        )
    }
    pub unsafe fn gss_accept_sec_context(
        &self,
        arg1: *mut OM_uint32,
        arg2: *mut gss_ctx_id_t,
        arg3: gss_cred_id_t,
        arg4: gss_buffer_t,
        arg5: gss_channel_bindings_t,
        arg6: *mut gss_name_t,
        arg7: *mut gss_OID,
        arg8: gss_buffer_t,
        arg9: *mut OM_uint32,
        arg10: *mut OM_uint32,
        arg11: *mut gss_cred_id_t,
    ) -> OM_uint32 {
        (self
            .gss_accept_sec_context
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11,
        )
    }
    pub unsafe fn gss_process_context_token(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_ctx_id_t,
        arg3: gss_buffer_t,
    ) -> OM_uint32 {
        (self
            .gss_process_context_token
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn gss_delete_sec_context(
        &self,
        arg1: *mut OM_uint32,
        arg2: *mut gss_ctx_id_t,
        arg3: gss_buffer_t,
    ) -> OM_uint32 {
        (self
            .gss_delete_sec_context
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn gss_context_time(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_ctx_id_t,
        arg3: *mut OM_uint32,
    ) -> OM_uint32 {
        (self
            .gss_context_time
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn gss_get_mic(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_ctx_id_t,
        arg3: gss_qop_t,
        arg4: gss_buffer_t,
        arg5: gss_buffer_t,
    ) -> OM_uint32 {
        (self
            .gss_get_mic
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn gss_verify_mic(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_ctx_id_t,
        arg3: gss_buffer_t,
        arg4: gss_buffer_t,
        arg5: *mut gss_qop_t,
    ) -> OM_uint32 {
        (self
            .gss_verify_mic
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn gss_wrap(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_ctx_id_t,
        arg3: ::std::os::raw::c_int,
        arg4: gss_qop_t,
        arg5: gss_buffer_t,
        arg6: *mut ::std::os::raw::c_int,
        arg7: gss_buffer_t,
    ) -> OM_uint32 {
        (self
            .gss_wrap
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7
        )
    }
    pub unsafe fn gss_unwrap(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_ctx_id_t,
        arg3: gss_buffer_t,
        arg4: gss_buffer_t,
        arg5: *mut ::std::os::raw::c_int,
        arg6: *mut gss_qop_t,
    ) -> OM_uint32 {
        (self
            .gss_unwrap
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5, arg6)
    }
    pub unsafe fn gss_display_status(
        &self,
        arg1: *mut OM_uint32,
        arg2: OM_uint32,
        arg3: ::std::os::raw::c_int,
        arg4: gss_OID,
        arg5: *mut OM_uint32,
        arg6: gss_buffer_t,
    ) -> OM_uint32 {
        (self
            .gss_display_status
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5, arg6)
    }
    pub unsafe fn gss_indicate_mechs(
        &self,
        arg1: *mut OM_uint32,
        arg2: *mut gss_OID_set,
    ) -> OM_uint32 {
        (self
            .gss_indicate_mechs
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
    pub unsafe fn gss_compare_name(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_name_t,
        arg3: gss_name_t,
        arg4: *mut ::std::os::raw::c_int,
    ) -> OM_uint32 {
        (self
            .gss_compare_name
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4)
    }
    pub unsafe fn gss_display_name(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_name_t,
        arg3: gss_buffer_t,
        arg4: *mut gss_OID,
    ) -> OM_uint32 {
        (self
            .gss_display_name
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4)
    }
    pub unsafe fn gss_import_name(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_buffer_t,
        arg3: gss_OID,
        arg4: *mut gss_name_t,
    ) -> OM_uint32 {
        (self
            .gss_import_name
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4)
    }
    pub unsafe fn gss_release_name(
        &self,
        arg1: *mut OM_uint32,
        arg2: *mut gss_name_t,
    ) -> OM_uint32 {
        (self
            .gss_release_name
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
    pub unsafe fn gss_release_buffer(&self, arg1: *mut OM_uint32, arg2: gss_buffer_t) -> OM_uint32 {
        (self
            .gss_release_buffer
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
    pub unsafe fn gss_release_oid_set(
        &self,
        arg1: *mut OM_uint32,
        arg2: *mut gss_OID_set,
    ) -> OM_uint32 {
        (self
            .gss_release_oid_set
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
    pub unsafe fn gss_inquire_cred(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_cred_id_t,
        arg3: *mut gss_name_t,
        arg4: *mut OM_uint32,
        arg5: *mut gss_cred_usage_t,
        arg6: *mut gss_OID_set,
    ) -> OM_uint32 {
        (self
            .gss_inquire_cred
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5, arg6)
    }
    pub unsafe fn gss_inquire_context(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_ctx_id_t,
        arg3: *mut gss_name_t,
        arg4: *mut gss_name_t,
        arg5: *mut OM_uint32,
        arg6: *mut gss_OID,
        arg7: *mut OM_uint32,
        arg8: *mut ::std::os::raw::c_int,
        arg9: *mut ::std::os::raw::c_int,
    ) -> OM_uint32 {
        (self
            .gss_inquire_context
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9,
        )
    }
    pub unsafe fn gss_wrap_size_limit(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_ctx_id_t,
        arg3: ::std::os::raw::c_int,
        arg4: gss_qop_t,
        arg5: OM_uint32,
        arg6: *mut OM_uint32,
    ) -> OM_uint32 {
        (self
            .gss_wrap_size_limit
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5, arg6)
    }
    pub unsafe fn gss_export_name_object(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_name_t,
        arg3: gss_OID,
        arg4: *mut *mut ::std::os::raw::c_void,
    ) -> OM_uint32 {
        (self
            .gss_export_name_object
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4)
    }
    pub unsafe fn gss_add_cred(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_cred_id_t,
        arg3: gss_name_t,
        arg4: gss_OID,
        arg5: gss_cred_usage_t,
        arg6: OM_uint32,
        arg7: OM_uint32,
        arg8: *mut gss_cred_id_t,
        arg9: *mut gss_OID_set,
        arg10: *mut OM_uint32,
        arg11: *mut OM_uint32,
    ) -> OM_uint32 {
        (self
            .gss_add_cred
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11,
        )
    }
    pub unsafe fn gss_inquire_cred_by_mech(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_cred_id_t,
        arg3: gss_OID,
        arg4: *mut gss_name_t,
        arg5: *mut OM_uint32,
        arg6: *mut OM_uint32,
        arg7: *mut gss_cred_usage_t,
    ) -> OM_uint32 {
        (self
            .gss_inquire_cred_by_mech
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7
        )
    }
    pub unsafe fn gss_export_sec_context(
        &self,
        arg1: *mut OM_uint32,
        arg2: *mut gss_ctx_id_t,
        arg3: gss_buffer_t,
    ) -> OM_uint32 {
        (self
            .gss_export_sec_context
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn gss_import_sec_context(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_buffer_t,
        arg3: *mut gss_ctx_id_t,
    ) -> OM_uint32 {
        (self
            .gss_import_sec_context
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn gss_release_oid(&self, arg1: *mut OM_uint32, arg2: *mut gss_OID) -> OM_uint32 {
        (self
            .gss_release_oid
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
    pub unsafe fn gss_create_empty_oid_set(
        &self,
        arg1: *mut OM_uint32,
        arg2: *mut gss_OID_set,
    ) -> OM_uint32 {
        (self
            .gss_create_empty_oid_set
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
    pub unsafe fn gss_add_oid_set_member(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_OID,
        arg3: *mut gss_OID_set,
    ) -> OM_uint32 {
        (self
            .gss_add_oid_set_member
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn gss_test_oid_set_member(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_OID,
        arg3: gss_OID_set,
        arg4: *mut ::std::os::raw::c_int,
    ) -> OM_uint32 {
        (self
            .gss_test_oid_set_member
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4)
    }
    pub unsafe fn gss_str_to_oid(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_buffer_t,
        arg3: *mut gss_OID,
    ) -> OM_uint32 {
        (self
            .gss_str_to_oid
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn gss_oid_to_str(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_OID,
        arg3: gss_buffer_t,
    ) -> OM_uint32 {
        (self
            .gss_oid_to_str
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn gss_inquire_names_for_mech(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_OID,
        arg3: *mut gss_OID_set,
    ) -> OM_uint32 {
        (self
            .gss_inquire_names_for_mech
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn gss_inquire_mechs_for_name(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_name_t,
        arg3: *mut gss_OID_set,
    ) -> OM_uint32 {
        (self
            .gss_inquire_mechs_for_name
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn gss_sign(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_ctx_id_t,
        arg3: ::std::os::raw::c_int,
        arg4: gss_buffer_t,
        arg5: gss_buffer_t,
    ) -> OM_uint32 {
        (self
            .gss_sign
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn gss_verify(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_ctx_id_t,
        arg3: gss_buffer_t,
        arg4: gss_buffer_t,
        arg5: *mut ::std::os::raw::c_int,
    ) -> OM_uint32 {
        (self
            .gss_verify
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5)
    }
    pub unsafe fn gss_seal(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_ctx_id_t,
        arg3: ::std::os::raw::c_int,
        arg4: ::std::os::raw::c_int,
        arg5: gss_buffer_t,
        arg6: *mut ::std::os::raw::c_int,
        arg7: gss_buffer_t,
    ) -> OM_uint32 {
        (self
            .gss_seal
            .as_ref()
            .expect("Expected function, got error."))(
            arg1, arg2, arg3, arg4, arg5, arg6, arg7
        )
    }
    pub unsafe fn gss_unseal(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_ctx_id_t,
        arg3: gss_buffer_t,
        arg4: gss_buffer_t,
        arg5: *mut ::std::os::raw::c_int,
        arg6: *mut ::std::os::raw::c_int,
    ) -> OM_uint32 {
        (self
            .gss_unseal
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4, arg5, arg6)
    }
    pub unsafe fn gss_export_name(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_name_t,
        arg3: gss_buffer_t,
    ) -> OM_uint32 {
        (self
            .gss_export_name
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn gss_duplicate_name(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_name_t,
        arg3: *mut gss_name_t,
    ) -> OM_uint32 {
        (self
            .gss_duplicate_name
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3)
    }
    pub unsafe fn gss_canonicalize_name(
        &self,
        arg1: *mut OM_uint32,
        arg2: gss_name_t,
        arg3: gss_OID,
        arg4: *mut gss_name_t,
    ) -> OM_uint32 {
        (self
            .gss_canonicalize_name
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2, arg3, arg4)
    }
    pub unsafe fn GSS_KRB5_NT_PRINCIPAL_NAME(&self) -> *mut *const gss_OID_desc {
        *self
            .GSS_KRB5_NT_PRINCIPAL_NAME
            .as_ref()
            .expect("Expected variable, got error.")
    }
    pub unsafe fn gss_mech_krb5(&self) -> *mut *const gss_OID_desc {
        *self
            .gss_mech_krb5
            .as_ref()
            .expect("Expected variable, got error.")
    }
    pub unsafe fn gss_mech_krb5_old(&self) -> *mut *const gss_OID_desc {
        *self
            .gss_mech_krb5_old
            .as_ref()
            .expect("Expected variable, got error.")
    }
    pub unsafe fn gss_mech_set_krb5(&self) -> *mut *const gss_OID_set_desc {
        *self
            .gss_mech_set_krb5
            .as_ref()
            .expect("Expected variable, got error.")
    }
    pub unsafe fn gss_mech_set_krb5_old(&self) -> *mut *const gss_OID_set_desc {
        *self
            .gss_mech_set_krb5_old
            .as_ref()
            .expect("Expected variable, got error.")
    }
    pub unsafe fn gss_mech_set_krb5_both(&self) -> *mut *const gss_OID_set_desc {
        *self
            .gss_mech_set_krb5_both
            .as_ref()
            .expect("Expected variable, got error.")
    }
    pub unsafe fn gss_nt_krb5_name(&self) -> *mut *const gss_OID_desc {
        *self
            .gss_nt_krb5_name
            .as_ref()
            .expect("Expected variable, got error.")
    }
    pub unsafe fn gss_nt_krb5_principal(&self) -> *mut *const gss_OID_desc {
        *self
            .gss_nt_krb5_principal
            .as_ref()
            .expect("Expected variable, got error.")
    }
    pub unsafe fn gss_krb5_get_tkt_flags(
        &self,
        minor_status: *mut OM_uint32,
        context_handle: gss_ctx_id_t,
        ticket_flags: *mut krb5_flags,
    ) -> OM_uint32 {
        (self
            .gss_krb5_get_tkt_flags
            .as_ref()
            .expect("Expected function, got error."))(
            minor_status, context_handle, ticket_flags
        )
    }
    pub unsafe fn gss_krb5_copy_ccache(
        &self,
        minor_status: *mut OM_uint32,
        cred_handle: gss_cred_id_t,
        out_ccache: krb5_ccache,
    ) -> OM_uint32 {
        (self
            .gss_krb5_copy_ccache
            .as_ref()
            .expect("Expected function, got error."))(minor_status, cred_handle, out_ccache)
    }
    pub unsafe fn gss_krb5_ccache_name(
        &self,
        minor_status: *mut OM_uint32,
        name: *const ::std::os::raw::c_char,
        out_name: *mut *const ::std::os::raw::c_char,
    ) -> OM_uint32 {
        (self
            .gss_krb5_ccache_name
            .as_ref()
            .expect("Expected function, got error."))(minor_status, name, out_name)
    }
    pub unsafe fn gss_krb5_set_allowable_enctypes(
        &self,
        minor_status: *mut OM_uint32,
        cred: gss_cred_id_t,
        num_ktypes: OM_uint32,
        ktypes: *mut krb5_enctype,
    ) -> OM_uint32 {
        (self
            .gss_krb5_set_allowable_enctypes
            .as_ref()
            .expect("Expected function, got error."))(minor_status, cred, num_ktypes, ktypes)
    }
    pub unsafe fn gss_krb5_export_lucid_sec_context(
        &self,
        minor_status: *mut OM_uint32,
        context_handle: *mut gss_ctx_id_t,
        version: OM_uint32,
        kctx: *mut *mut ::std::os::raw::c_void,
    ) -> OM_uint32 {
        (self
            .gss_krb5_export_lucid_sec_context
            .as_ref()
            .expect("Expected function, got error."))(
            minor_status, context_handle, version, kctx
        )
    }
    pub unsafe fn gss_krb5_free_lucid_sec_context(
        &self,
        minor_status: *mut OM_uint32,
        kctx: *mut ::std::os::raw::c_void,
    ) -> OM_uint32 {
        (self
            .gss_krb5_free_lucid_sec_context
            .as_ref()
            .expect("Expected function, got error."))(minor_status, kctx)
    }
    pub unsafe fn gss_krb5_ui(&self, arg1: *mut OM_uint32, arg2: OM_uint32) -> OM_uint32 {
        (self
            .gss_krb5_ui
            .as_ref()
            .expect("Expected function, got error."))(arg1, arg2)
    }
}
