Blame src/lib/gssapi/mechglue/mglueP.h

Packit Service 99d1c0
/* lib/gssapi/mechglue/mglueP.h */
Packit Service 99d1c0
Packit Service 99d1c0
/*
Packit Service 99d1c0
 * Copyright (c) 1995, by Sun Microsystems, Inc.
Packit Service 99d1c0
 * All rights reserved.
Packit Service 99d1c0
 */
Packit Service 99d1c0
Packit Service 99d1c0
/* This header contains the private mechglue definitions. */
Packit Service 99d1c0
Packit Service 99d1c0
#ifndef _GSS_MECHGLUEP_H
Packit Service 99d1c0
#define _GSS_MECHGLUEP_H
Packit Service 99d1c0
Packit Service 99d1c0
#include "autoconf.h"
Packit Service 99d1c0
#include "mechglue.h"
Packit Service 99d1c0
#include "gssapiP_generic.h"
Packit Service 99d1c0
Packit Service 99d1c0
#define	g_OID_copy(o1, o2)					\
Packit Service 99d1c0
do {								\
Packit Service 99d1c0
	memcpy((o1)->elements, (o2)->elements, (o2)->length);	\
Packit Service 99d1c0
	(o1)->length = (o2)->length;				\
Packit Service 99d1c0
} while (0)
Packit Service 99d1c0
Packit Service 99d1c0
/*
Packit Service 99d1c0
 * Array of context IDs typed by mechanism OID
Packit Service 99d1c0
 */
Packit Service 99d1c0
typedef struct gss_union_ctx_id_struct {
Packit Service 99d1c0
	struct gss_union_ctx_id_struct *loopback;
Packit Service 99d1c0
	gss_OID			mech_type;
Packit Service 99d1c0
	gss_ctx_id_t		internal_ctx_id;
Packit Service 99d1c0
} gss_union_ctx_id_desc, *gss_union_ctx_id_t;
Packit Service 99d1c0
Packit Service 99d1c0
/*
Packit Service 99d1c0
 * Generic GSSAPI names.  A name can either be a generic name, or a
Packit Service 99d1c0
 * mechanism specific name....
Packit Service 99d1c0
 */
Packit Service 99d1c0
typedef struct gss_name_struct {
Packit Service 99d1c0
	struct gss_name_struct *loopback;
Packit Service 99d1c0
	gss_OID			name_type;
Packit Service 99d1c0
	gss_buffer_t		external_name;
Packit Service 99d1c0
	/*
Packit Service 99d1c0
	 * These last two fields are only filled in for mechanism
Packit Service 99d1c0
	 * names.
Packit Service 99d1c0
	 */
Packit Service 99d1c0
	gss_OID			mech_type;
Packit Service 99d1c0
	gss_name_t		mech_name;
Packit Service 99d1c0
} gss_union_name_desc, *gss_union_name_t;
Packit Service 99d1c0
Packit Service 99d1c0
/*
Packit Service 99d1c0
 * Structure for holding list of mechanism-specific name types
Packit Service 99d1c0
 */
Packit Service 99d1c0
typedef struct gss_mech_spec_name_t {
Packit Service 99d1c0
    gss_OID	name_type;
Packit Service 99d1c0
    gss_OID	mech;
Packit Service 99d1c0
    struct gss_mech_spec_name_t	*next, *prev;
Packit Service 99d1c0
} gss_mech_spec_name_desc, *gss_mech_spec_name;
Packit Service 99d1c0
Packit Service 99d1c0
/*
Packit Service 99d1c0
 * Set of Credentials typed on mechanism OID
Packit Service 99d1c0
 */
Packit Service 99d1c0
typedef struct gss_cred_id_struct {
Packit Service 99d1c0
	struct gss_cred_id_struct *loopback;
Packit Service 99d1c0
	int			count;
Packit Service 99d1c0
	gss_OID			mechs_array;
Packit Service 99d1c0
	gss_cred_id_t		*cred_array;
Packit Service 99d1c0
} gss_union_cred_desc, *gss_union_cred_t;
Packit Service 99d1c0
Packit Service 99d1c0
/*
Packit Service 99d1c0
 * Rudimentary pointer validation macro to check whether the
Packit Service 99d1c0
 * "loopback" field of an opaque struct points back to itself.  This
Packit Service 99d1c0
 * field also catches some programming errors where an opaque pointer
Packit Service 99d1c0
 * is passed to a function expecting the address of the opaque
Packit Service 99d1c0
 * pointer.
Packit Service 99d1c0
 */
Packit Service 99d1c0
#define GSSINT_CHK_LOOP(p) (!((p) != NULL && (p)->loopback == (p)))
Packit Service 99d1c0
Packit Service 99d1c0
/********************************************************/
Packit Service 99d1c0
/* The Mechanism Dispatch Table -- a mechanism needs to */
Packit Service 99d1c0
/* define one of these and provide a function to return */
Packit Service 99d1c0
/* it to initialize the GSSAPI library		  */
Packit Service 99d1c0
int gssint_mechglue_initialize_library(void);
Packit Service 99d1c0
Packit Service 99d1c0
OM_uint32 gssint_get_mech_type_oid(gss_OID OID, gss_buffer_t token);
Packit Service 99d1c0
Packit Service 99d1c0
/*
Packit Service 99d1c0
 * This is the definition of the mechs_array struct, which is used to
Packit Service 99d1c0
 * define the mechs array table. This table is used to indirectly
Packit Service 99d1c0
 * access mechanism specific versions of the gssapi routines through
Packit Service 99d1c0
 * the routines in the glue module (gssd_mech_glue.c)
Packit Service 99d1c0
 *
Packit Service 99d1c0
 * This contants all of the functions defined in gssapi.h except for
Packit Service 99d1c0
 * gss_release_buffer() and gss_release_oid_set(), which I am
Packit Service 99d1c0
 * assuming, for now, to be equal across mechanisms.
Packit Service 99d1c0
 */
Packit Service 99d1c0
Packit Service 99d1c0
typedef struct gss_config {
Packit Service 99d1c0
    gss_OID_desc    mech_type;
Packit Service 99d1c0
    void *	    context;
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_acquire_cred)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    gss_name_t,		/* desired_name */
Packit Service 99d1c0
		    OM_uint32,		/* time_req */
Packit Service 99d1c0
		    gss_OID_set,	/* desired_mechs */
Packit Service 99d1c0
		    int,		/* cred_usage */
Packit Service 99d1c0
		    gss_cred_id_t*,	/* output_cred_handle */
Packit Service 99d1c0
		    gss_OID_set*,	/* actual_mechs */
Packit Service 99d1c0
		    OM_uint32*		/* time_rec */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_release_cred)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    gss_cred_id_t*	/* cred_handle */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_init_sec_context)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,			/* minor_status */
Packit Service 99d1c0
		    gss_cred_id_t,		/* claimant_cred_handle */
Packit Service 99d1c0
		    gss_ctx_id_t*,		/* context_handle */
Packit Service 99d1c0
		    gss_name_t,			/* target_name */
Packit Service 99d1c0
		    gss_OID,			/* mech_type */
Packit Service 99d1c0
		    OM_uint32,			/* req_flags */
Packit Service 99d1c0
		    OM_uint32,			/* time_req */
Packit Service 99d1c0
		    gss_channel_bindings_t,	/* input_chan_bindings */
Packit Service 99d1c0
		    gss_buffer_t,		/* input_token */
Packit Service 99d1c0
		    gss_OID*,			/* actual_mech_type */
Packit Service 99d1c0
		    gss_buffer_t,		/* output_token */
Packit Service 99d1c0
		    OM_uint32*,			/* ret_flags */
Packit Service 99d1c0
		    OM_uint32*			/* time_rec */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_accept_sec_context)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,			/* minor_status */
Packit Service 99d1c0
		    gss_ctx_id_t*,		/* context_handle */
Packit Service 99d1c0
		    gss_cred_id_t,		/* verifier_cred_handle */
Packit Service 99d1c0
		    gss_buffer_t,		/* input_token_buffer */
Packit Service 99d1c0
		    gss_channel_bindings_t,	/* input_chan_bindings */
Packit Service 99d1c0
		    gss_name_t*,		/* src_name */
Packit Service 99d1c0
		    gss_OID*,			/* mech_type */
Packit Service 99d1c0
		    gss_buffer_t,		/* output_token */
Packit Service 99d1c0
		    OM_uint32*,			/* ret_flags */
Packit Service 99d1c0
		    OM_uint32*,			/* time_rec */
Packit Service 99d1c0
		    gss_cred_id_t*		/* delegated_cred_handle */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_process_context_token)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    gss_ctx_id_t,	/* context_handle */
Packit Service 99d1c0
		    gss_buffer_t	/* token_buffer */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_delete_sec_context)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    gss_ctx_id_t*,	/* context_handle */
Packit Service 99d1c0
		    gss_buffer_t	/* output_token */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_context_time)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    gss_ctx_id_t,	/* context_handle */
Packit Service 99d1c0
		    OM_uint32*		/* time_rec */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_get_mic)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    gss_ctx_id_t,	/* context_handle */
Packit Service 99d1c0
		    gss_qop_t,		/* qop_req */
Packit Service 99d1c0
		    gss_buffer_t,	/* message_buffer */
Packit Service 99d1c0
		    gss_buffer_t	/* message_token */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_verify_mic)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    gss_ctx_id_t,	/* context_handle */
Packit Service 99d1c0
		    gss_buffer_t,	/* message_buffer */
Packit Service 99d1c0
		    gss_buffer_t,	/* token_buffer */
Packit Service 99d1c0
		    gss_qop_t*		/* qop_state */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_wrap)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    gss_ctx_id_t,	/* context_handle */
Packit Service 99d1c0
		    int,		/* conf_req_flag */
Packit Service 99d1c0
		    gss_qop_t,		/* qop_req */
Packit Service 99d1c0
		    gss_buffer_t,	/* input_message_buffer */
Packit Service 99d1c0
		    int*,		/* conf_state */
Packit Service 99d1c0
		    gss_buffer_t	/* output_message_buffer */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_unwrap)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    gss_ctx_id_t,	/* context_handle */
Packit Service 99d1c0
		    gss_buffer_t,	/* input_message_buffer */
Packit Service 99d1c0
		    gss_buffer_t,	/* output_message_buffer */
Packit Service 99d1c0
		    int*,		/* conf_state */
Packit Service 99d1c0
		    gss_qop_t*		/* qop_state */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_display_status)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    OM_uint32,		/* status_value */
Packit Service 99d1c0
		    int,		/* status_type */
Packit Service 99d1c0
		    gss_OID,		/* mech_type */
Packit Service 99d1c0
		    OM_uint32*,		/* message_context */
Packit Service 99d1c0
		    gss_buffer_t	/* status_string */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_indicate_mechs)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    gss_OID_set*	/* mech_set */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_compare_name)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    gss_name_t,		/* name1 */
Packit Service 99d1c0
		    gss_name_t,		/* name2 */
Packit Service 99d1c0
		    int*		/* name_equal */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_display_name)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    gss_name_t,		/* input_name */
Packit Service 99d1c0
		    gss_buffer_t,	/* output_name_buffer */
Packit Service 99d1c0
		    gss_OID*		/* output_name_type */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_import_name)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    gss_buffer_t,	/* input_name_buffer */
Packit Service 99d1c0
		    gss_OID,		/* input_name_type */
Packit Service 99d1c0
		    gss_name_t*		/* output_name */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_release_name)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    gss_name_t*		/* input_name */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32       (KRB5_CALLCONV *gss_inquire_cred)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
		    gss_cred_id_t,		/* cred_handle */
Packit Service 99d1c0
		    gss_name_t *,		/* name */
Packit Service 99d1c0
		    OM_uint32 *,		/* lifetime */
Packit Service 99d1c0
		    int *,			/* cred_usage */
Packit Service 99d1c0
		    gss_OID_set *		/* mechanisms */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32	    (KRB5_CALLCONV *gss_add_cred)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32 *,	/* minor_status */
Packit Service 99d1c0
		    gss_cred_id_t,	/* input_cred_handle */
Packit Service 99d1c0
		    gss_name_t,		/* desired_name */
Packit Service 99d1c0
		    gss_OID,		/* desired_mech */
Packit Service 99d1c0
		    gss_cred_usage_t,	/* cred_usage */
Packit Service 99d1c0
		    OM_uint32,		/* initiator_time_req */
Packit Service 99d1c0
		    OM_uint32,		/* acceptor_time_req */
Packit Service 99d1c0
		    gss_cred_id_t *,	/* output_cred_handle */
Packit Service 99d1c0
		    gss_OID_set *,	/* actual_mechs */
Packit Service 99d1c0
		    OM_uint32 *,	/* initiator_time_rec */
Packit Service 99d1c0
		    OM_uint32 *		/* acceptor_time_rec */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32	    (KRB5_CALLCONV *gss_export_sec_context)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32 *,	/* minor_status */
Packit Service 99d1c0
		    gss_ctx_id_t *,	/* context_handle */
Packit Service 99d1c0
		    gss_buffer_t	/* interprocess_token */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32	    (KRB5_CALLCONV *gss_import_sec_context)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32 *,	/* minor_status */
Packit Service 99d1c0
		    gss_buffer_t,	/* interprocess_token */
Packit Service 99d1c0
		    gss_ctx_id_t *	/* context_handle */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32 	    (KRB5_CALLCONV *gss_inquire_cred_by_mech)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32 *,	/* minor_status */
Packit Service 99d1c0
		    gss_cred_id_t,	/* cred_handle */
Packit Service 99d1c0
		    gss_OID,		/* mech_type */
Packit Service 99d1c0
		    gss_name_t *,	/* name */
Packit Service 99d1c0
		    OM_uint32 *,	/* initiator_lifetime */
Packit Service 99d1c0
		    OM_uint32 *,	/* acceptor_lifetime */
Packit Service 99d1c0
		    gss_cred_usage_t *	/* cred_usage */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32	    (KRB5_CALLCONV *gss_inquire_names_for_mech)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32 *,	/* minor_status */
Packit Service 99d1c0
		    gss_OID,		/* mechanism */
Packit Service 99d1c0
		    gss_OID_set *	/* name_types */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32	(KRB5_CALLCONV *gss_inquire_context)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32 *,	/* minor_status */
Packit Service 99d1c0
		    gss_ctx_id_t,	/* context_handle */
Packit Service 99d1c0
		    gss_name_t *,	/* src_name */
Packit Service 99d1c0
		    gss_name_t *,	/* targ_name */
Packit Service 99d1c0
		    OM_uint32 *,	/* lifetime_rec */
Packit Service 99d1c0
		    gss_OID *,		/* mech_type */
Packit Service 99d1c0
		    OM_uint32 *,	/* ctx_flags */
Packit Service 99d1c0
		    int *,	   	/* locally_initiated */
Packit Service 99d1c0
		    int *		/* open */
Packit Service 99d1c0
		    );
Packit Service 99d1c0
    OM_uint32	    (KRB5_CALLCONV *gss_internal_release_oid)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32 *,	/* minor_status */
Packit Service 99d1c0
		    gss_OID *		/* OID */
Packit Service 99d1c0
	 );
Packit Service 99d1c0
    OM_uint32	     (KRB5_CALLCONV *gss_wrap_size_limit)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32 *,	/* minor_status */
Packit Service 99d1c0
		    gss_ctx_id_t,	/* context_handle */
Packit Service 99d1c0
		    int,		/* conf_req_flag */
Packit Service 99d1c0
		    gss_qop_t,		/* qop_req */
Packit Service 99d1c0
		    OM_uint32,		/* req_output_size */
Packit Service 99d1c0
		    OM_uint32 *		/* max_input_size */
Packit Service 99d1c0
	 );
Packit Service 99d1c0
    OM_uint32	     (KRB5_CALLCONV *gss_localname)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32 *,        /* minor */
Packit Service 99d1c0
		    const gss_name_t,	/* name */
Packit Service 99d1c0
		    gss_const_OID,	/* mech_type */
Packit Service 99d1c0
		    gss_buffer_t /* localname */
Packit Service 99d1c0
	    );
Packit Service 99d1c0
	OM_uint32		(KRB5_CALLCONV *gssspi_authorize_localname)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32 *,	/* minor_status */
Packit Service 99d1c0
		    const gss_name_t,	/* pname */
Packit Service 99d1c0
		    gss_const_buffer_t,	/* local user */
Packit Service 99d1c0
		    gss_const_OID	/* local nametype */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
	OM_uint32		(KRB5_CALLCONV *gss_export_name)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
		const gss_name_t,	/* input_name */
Packit Service 99d1c0
		gss_buffer_t		/* exported_name */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
        OM_uint32       (KRB5_CALLCONV *gss_duplicate_name)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
		    const gss_name_t,	/* input_name */
Packit Service 99d1c0
		    gss_name_t *	/* output_name */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_store_cred)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
		const gss_cred_id_t,	/* input_cred */
Packit Service 99d1c0
		gss_cred_usage_t,	/* cred_usage */
Packit Service 99d1c0
		const gss_OID,		/* desired_mech */
Packit Service 99d1c0
		OM_uint32,		/* overwrite_cred */
Packit Service 99d1c0
		OM_uint32,		/* default_cred */
Packit Service 99d1c0
		gss_OID_set *,		/* elements_stored */
Packit Service 99d1c0
		gss_cred_usage_t *	/* cred_usage_stored */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
Packit Service 99d1c0
	/* GGF extensions */
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32       (KRB5_CALLCONV *gss_inquire_sec_context_by_oid)
Packit Service 99d1c0
    	(
Packit Service 99d1c0
    		    OM_uint32 *,	/* minor_status */
Packit Service 99d1c0
    		    const gss_ctx_id_t, /* context_handle */
Packit Service 99d1c0
    		    const gss_OID,      /* OID */
Packit Service 99d1c0
    		    gss_buffer_set_t *  /* data_set */
Packit Service 99d1c0
    		    );
Packit Service 99d1c0
	OM_uint32       (KRB5_CALLCONV *gss_inquire_cred_by_oid)
Packit Service 99d1c0
    	(
Packit Service 99d1c0
    		    OM_uint32 *,	/* minor_status */
Packit Service 99d1c0
    		    const gss_cred_id_t, /* cred_handle */
Packit Service 99d1c0
    		    const gss_OID,      /* OID */
Packit Service 99d1c0
    		    gss_buffer_set_t *  /* data_set */
Packit Service 99d1c0
    		    );
Packit Service 99d1c0
	OM_uint32       (KRB5_CALLCONV *gss_set_sec_context_option)
Packit Service 99d1c0
    	(
Packit Service 99d1c0
    		    OM_uint32 *,	/* minor_status */
Packit Service 99d1c0
    		    gss_ctx_id_t *,     /* context_handle */
Packit Service 99d1c0
    		    const gss_OID,      /* OID */
Packit Service 99d1c0
    		    const gss_buffer_t  /* value */
Packit Service 99d1c0
    		    );
Packit Service 99d1c0
	OM_uint32       (KRB5_CALLCONV *gssspi_set_cred_option)
Packit Service 99d1c0
    	(
Packit Service 99d1c0
    		    OM_uint32 *,	/* minor_status */
Packit Service 99d1c0
    		    gss_cred_id_t *,    /* cred_handle */
Packit Service 99d1c0
    		    const gss_OID,      /* OID */
Packit Service 99d1c0
    		    const gss_buffer_t	/* value */
Packit Service 99d1c0
    		    );
Packit Service 99d1c0
	OM_uint32       (KRB5_CALLCONV *gssspi_mech_invoke)
Packit Service 99d1c0
    	(
Packit Service 99d1c0
    		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
    		    const gss_OID, 	/* mech OID */
Packit Service 99d1c0
    		    const gss_OID,      /* OID */
Packit Service 99d1c0
    		    gss_buffer_t 	/* value */
Packit Service 99d1c0
    		    );
Packit Service 99d1c0
Packit Service 99d1c0
	/* AEAD extensions */
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_wrap_aead)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_ctx_id_t,		/* context_handle */
Packit Service 99d1c0
	    int,			/* conf_req_flag */
Packit Service 99d1c0
	    gss_qop_t,			/* qop_req */
Packit Service 99d1c0
	    gss_buffer_t,		/* input_assoc_buffer */
Packit Service 99d1c0
	    gss_buffer_t,		/* input_payload_buffer */
Packit Service 99d1c0
	    int *,			/* conf_state */
Packit Service 99d1c0
	    gss_buffer_t		/* output_message_buffer */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_unwrap_aead)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_ctx_id_t,		/* context_handle */
Packit Service 99d1c0
	    gss_buffer_t,		/* input_message_buffer */
Packit Service 99d1c0
	    gss_buffer_t,		/* input_assoc_buffer */
Packit Service 99d1c0
	    gss_buffer_t,		/* output_payload_buffer */
Packit Service 99d1c0
	    int *,			/* conf_state */
Packit Service 99d1c0
	    gss_qop_t *			/* qop_state */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	/* SSPI extensions */
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_wrap_iov)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_ctx_id_t,		/* context_handle */
Packit Service 99d1c0
	    int,			/* conf_req_flag */
Packit Service 99d1c0
	    gss_qop_t,			/* qop_req */
Packit Service 99d1c0
	    int *,			/* conf_state */
Packit Service 99d1c0
	    gss_iov_buffer_desc *,	/* iov */
Packit Service 99d1c0
	    int				/* iov_count */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_unwrap_iov)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_ctx_id_t,		/* context_handle */
Packit Service 99d1c0
	    int *,			/* conf_state */
Packit Service 99d1c0
	    gss_qop_t *,		/* qop_state */
Packit Service 99d1c0
	    gss_iov_buffer_desc *,	/* iov */
Packit Service 99d1c0
	    int				/* iov_count */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_wrap_iov_length)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_ctx_id_t,		/* context_handle */
Packit Service 99d1c0
	    int,			/* conf_req_flag*/
Packit Service 99d1c0
	    gss_qop_t, 			/* qop_req */
Packit Service 99d1c0
	    int *, 			/* conf_state */
Packit Service 99d1c0
	    gss_iov_buffer_desc *,	/* iov */
Packit Service 99d1c0
	    int				/* iov_count */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32       (KRB5_CALLCONV *gss_complete_auth_token)
Packit Service 99d1c0
    	(
Packit Service 99d1c0
    		    OM_uint32*,		/* minor_status */
Packit Service 99d1c0
    		    const gss_ctx_id_t,	/* context_handle */
Packit Service 99d1c0
    		    gss_buffer_t	/* input_message_buffer */
Packit Service 99d1c0
    		    );
Packit Service 99d1c0
Packit Service 99d1c0
	/* New for 1.8 */
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_acquire_cred_impersonate_name)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    const gss_cred_id_t,	/* impersonator_cred_handle */
Packit Service 99d1c0
	    const gss_name_t,		/* desired_name */
Packit Service 99d1c0
	    OM_uint32,			/* time_req */
Packit Service 99d1c0
	    const gss_OID_set,		/* desired_mechs */
Packit Service 99d1c0
	    gss_cred_usage_t,		/* cred_usage */
Packit Service 99d1c0
	    gss_cred_id_t *,		/* output_cred_handle */
Packit Service 99d1c0
	    gss_OID_set *,		/* actual_mechs */
Packit Service 99d1c0
	    OM_uint32 *			/* time_rec */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_add_cred_impersonate_name)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_cred_id_t,		/* input_cred_handle */
Packit Service 99d1c0
	    const gss_cred_id_t,	/* impersonator_cred_handle */
Packit Service 99d1c0
	    const gss_name_t,		/* desired_name */
Packit Service 99d1c0
	    const gss_OID,		/* desired_mech */
Packit Service 99d1c0
	    gss_cred_usage_t,		/* cred_usage */
Packit Service 99d1c0
	    OM_uint32,			/* initiator_time_req */
Packit Service 99d1c0
	    OM_uint32,			/* acceptor_time_req */
Packit Service 99d1c0
	    gss_cred_id_t *,		/* output_cred_handle */
Packit Service 99d1c0
	    gss_OID_set *,		/* actual_mechs */
Packit Service 99d1c0
	    OM_uint32 *,		/* initiator_time_rec */
Packit Service 99d1c0
	    OM_uint32 *			/* acceptor_time_rec */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_display_name_ext)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_name_t,			/* name */
Packit Service 99d1c0
	    gss_OID,			/* display_as_name_type */
Packit Service 99d1c0
	    gss_buffer_t		/* display_name */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_inquire_name)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_name_t,			/* name */
Packit Service 99d1c0
	    int *,			/* name_is_MN */
Packit Service 99d1c0
	    gss_OID *,			/* MN_mech */
Packit Service 99d1c0
	    gss_buffer_set_t *		/* attrs */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_get_name_attribute)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_name_t,			/* name */
Packit Service 99d1c0
	    gss_buffer_t,		/* attr */
Packit Service 99d1c0
	    int *,			/* authenticated */
Packit Service 99d1c0
	    int *,			/* complete */
Packit Service 99d1c0
	    gss_buffer_t,		/* value */
Packit Service 99d1c0
	    gss_buffer_t,		/* display_value */
Packit Service 99d1c0
	    int *			/* more */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_set_name_attribute)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_name_t,			/* name */
Packit Service 99d1c0
	    int,			/* complete */
Packit Service 99d1c0
	    gss_buffer_t,		/* attr */
Packit Service 99d1c0
	    gss_buffer_t		/* value */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_delete_name_attribute)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_name_t,			/* name */
Packit Service 99d1c0
	    gss_buffer_t		/* attr */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_export_name_composite)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_name_t,			/* name */
Packit Service 99d1c0
	    gss_buffer_t		/* exp_composite_name */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_map_name_to_any)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_name_t,			/* name */
Packit Service 99d1c0
	    int,			/* authenticated */
Packit Service 99d1c0
	    gss_buffer_t,		/* type_id */
Packit Service 99d1c0
	    gss_any_t *			/* output */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_release_any_name_mapping)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_name_t,			/* name */
Packit Service 99d1c0
	    gss_buffer_t,		/* type_id */
Packit Service 99d1c0
	    gss_any_t *			/* input */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
        OM_uint32       (KRB5_CALLCONV *gss_pseudo_random)
Packit Service 99d1c0
        (
Packit Service 99d1c0
            OM_uint32 *,                /* minor_status */
Packit Service 99d1c0
            gss_ctx_id_t,               /* context */
Packit Service 99d1c0
            int,                        /* prf_key */
Packit Service 99d1c0
            const gss_buffer_t,         /* prf_in */
Packit Service 99d1c0
            ssize_t,                    /* desired_output_len */
Packit Service 99d1c0
            gss_buffer_t                /* prf_out */
Packit Service 99d1c0
        /* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_set_neg_mechs)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_cred_id_t,		/* cred_handle */
Packit Service 99d1c0
	    const gss_OID_set		/* mech_set */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_inquire_saslname_for_mech)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    const gss_OID,		/* desired_mech */
Packit Service 99d1c0
	    gss_buffer_t,		/* sasl_mech_name */
Packit Service 99d1c0
	    gss_buffer_t,		/* mech_name */
Packit Service 99d1c0
	    gss_buffer_t		/* mech_description */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_inquire_mech_for_saslname)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    const gss_buffer_t,		/* sasl_mech_name */
Packit Service 99d1c0
	    gss_OID *			/* mech_type */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_inquire_attrs_for_mech)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_const_OID,		/* mech */
Packit Service 99d1c0
	    gss_OID_set *,		/* mech_attrs */
Packit Service 99d1c0
	    gss_OID_set *		/* known_mech_attrs */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	/* Credential store extensions */
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32       (KRB5_CALLCONV *gss_acquire_cred_from)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_name_t,			/* desired_name */
Packit Service 99d1c0
	    OM_uint32,			/* time_req */
Packit Service 99d1c0
	    gss_OID_set,		/* desired_mechs */
Packit Service 99d1c0
	    gss_cred_usage_t,		/* cred_usage */
Packit Service 99d1c0
	    gss_const_key_value_set_t,	/* cred_store */
Packit Service 99d1c0
	    gss_cred_id_t *,		/* output_cred_handle */
Packit Service 99d1c0
	    gss_OID_set *,		/* actual_mechs */
Packit Service 99d1c0
	    OM_uint32 *			/* time_rec */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32       (KRB5_CALLCONV *gss_store_cred_into)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_cred_id_t,		/* input_cred_handle */
Packit Service 99d1c0
	    gss_cred_usage_t,		/* input_usage */
Packit Service 99d1c0
	    gss_OID,			/* desired_mech */
Packit Service 99d1c0
	    OM_uint32,			/* overwrite_cred */
Packit Service 99d1c0
	    OM_uint32,			/* default_cred */
Packit Service 99d1c0
	    gss_const_key_value_set_t,	/* cred_store */
Packit Service 99d1c0
	    gss_OID_set *,		/* elements_stored */
Packit Service 99d1c0
	    gss_cred_usage_t *		/* cred_usage_stored */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32       (KRB5_CALLCONV *gssspi_acquire_cred_with_password)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    const gss_name_t,		/* desired_name */
Packit Service 99d1c0
	    const gss_buffer_t,	 /* password */
Packit Service 99d1c0
	    OM_uint32,			/* time_req */
Packit Service 99d1c0
	    const gss_OID_set,		/* desired_mechs */
Packit Service 99d1c0
	    int,			/* cred_usage */
Packit Service 99d1c0
	    gss_cred_id_t *,		/* output_cred_handle */
Packit Service 99d1c0
	    gss_OID_set *,		/* actual_mechs */
Packit Service 99d1c0
	    OM_uint32 *			/* time_rec */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32       (KRB5_CALLCONV *gss_export_cred)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_cred_id_t,		/* cred_handle */
Packit Service 99d1c0
	    gss_buffer_t		/* token */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32       (KRB5_CALLCONV *gss_import_cred)
Packit Service 99d1c0
	(
Packit Service 99d1c0
		OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
		gss_buffer_t,		/* token */
Packit Service 99d1c0
		gss_cred_id_t *		/* cred_handle */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32       (KRB5_CALLCONV *gssspi_import_sec_context_by_mech)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_OID,			/* desired_mech */
Packit Service 99d1c0
	    gss_buffer_t,		/* interprocess_token */
Packit Service 99d1c0
	    gss_ctx_id_t *		/* context_handle */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32       (KRB5_CALLCONV *gssspi_import_name_by_mech)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_OID,			/* mech_type */
Packit Service 99d1c0
	    gss_buffer_t,		/* input_name_buffer */
Packit Service 99d1c0
	    gss_OID,			/* input_name_type */
Packit Service 99d1c0
	    gss_name_t*			/* output_name */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32       (KRB5_CALLCONV *gssspi_import_cred_by_mech)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_OID,			/* mech_type */
Packit Service 99d1c0
	    gss_buffer_t,		/* token */
Packit Service 99d1c0
	    gss_cred_id_t *		/* cred_handle */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	/* get_mic_iov extensions, added in 1.12 */
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_get_mic_iov)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_ctx_id_t,		/* context_handle */
Packit Service 99d1c0
	    gss_qop_t,			/* qop_req */
Packit Service 99d1c0
	    gss_iov_buffer_desc *,	/* iov */
Packit Service 99d1c0
	    int				/* iov_count */
Packit Service 99d1c0
	);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_verify_mic_iov)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_ctx_id_t,		/* context_handle */
Packit Service 99d1c0
	    gss_qop_t *,		/* qop_state */
Packit Service 99d1c0
	    gss_iov_buffer_desc *,	/* iov */
Packit Service 99d1c0
	    int				/* iov_count */
Packit Service 99d1c0
	);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gss_get_mic_iov_length)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_ctx_id_t,		/* context_handle */
Packit Service 99d1c0
	    gss_qop_t,			/* qop_req */
Packit Service 99d1c0
	    gss_iov_buffer_desc *,	/* iov */
Packit Service 99d1c0
	    int				/* iov_count */
Packit Service 99d1c0
	);
Packit Service 99d1c0
Packit Service 99d1c0
	/* NegoEx extensions added in 1.18 */
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gssspi_query_meta_data)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_const_OID,		/* mech_oid */
Packit Service 99d1c0
	    gss_cred_id_t,		/* cred_handle */
Packit Service 99d1c0
	    gss_ctx_id_t *,		/* context_handle */
Packit Service 99d1c0
	    const gss_name_t,		/* targ_name */
Packit Service 99d1c0
	    OM_uint32,			/* req_flags */
Packit Service 99d1c0
	    gss_buffer_t		/* meta_data */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gssspi_exchange_meta_data)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_const_OID,		/* mech_oid */
Packit Service 99d1c0
	    gss_cred_id_t,		/* cred_handle */
Packit Service 99d1c0
	    gss_ctx_id_t *,		/* context_handle */
Packit Service 99d1c0
	    const gss_name_t,		/* targ_name */
Packit Service 99d1c0
	    OM_uint32,			/* req_flags */
Packit Service 99d1c0
	    gss_const_buffer_t		/* meta_data */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
	OM_uint32	(KRB5_CALLCONV *gssspi_query_mechanism_info)
Packit Service 99d1c0
	(
Packit Service 99d1c0
	    OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	    gss_const_OID,		/* mech_oid */
Packit Service 99d1c0
	    unsigned char[16]		/* auth_scheme */
Packit Service 99d1c0
	/* */);
Packit Service 99d1c0
Packit Service 99d1c0
} *gss_mechanism;
Packit Service 99d1c0
Packit Service 99d1c0
/*
Packit Service 99d1c0
 * In the user space we use a wrapper structure to encompass the
Packit Service 99d1c0
 * mechanism entry points.  The wrapper contain the mechanism
Packit Service 99d1c0
 * entry points and other data which is only relevant to the gss-api
Packit Service 99d1c0
 * layer.  In the kernel we use only the gss_config strucutre because
Packit Service 99d1c0
 * the kernal does not cantain any of the extra gss-api specific data.
Packit Service 99d1c0
 */
Packit Service 99d1c0
typedef struct gss_mech_config {
Packit Service 99d1c0
	char *kmodName;			/* kernel module name */
Packit Service 99d1c0
	char *uLibName;			/* user library name */
Packit Service 99d1c0
	char *mechNameStr;		/* mechanism string name */
Packit Service 99d1c0
	char *optionStr;		/* optional mech parameters */
Packit Service 99d1c0
	void *dl_handle;		/* RTLD object handle for the mech */
Packit Service 99d1c0
	gss_OID mech_type;		/* mechanism oid */
Packit Service 99d1c0
	gss_mechanism mech;		/* mechanism initialization struct */
Packit Service 99d1c0
 	int priority;			/* mechanism preference order */
Packit Service 99d1c0
	int freeMech;			/* free mech table */
Packit Service 99d1c0
	int is_interposer;		/* interposer mechanism flag */
Packit Service 99d1c0
	gss_OID int_mech_type;		/* points to the interposer OID */
Packit Service 99d1c0
	gss_mechanism int_mech;		/* points to the interposer mech */
Packit Service 99d1c0
	struct gss_mech_config *next;	/* next element in the list */
Packit Service 99d1c0
} *gss_mech_info;
Packit Service 99d1c0
Packit Service 99d1c0
/********************************************************/
Packit Service 99d1c0
/* Internal mechglue routines */
Packit Service 99d1c0
Packit Service 99d1c0
OM_uint32 gssint_select_mech_type(OM_uint32 *minor, gss_const_OID in_oid,
Packit Service 99d1c0
				  gss_OID *selected_oid);
Packit Service 99d1c0
gss_OID gssint_get_public_oid(gss_const_OID internal_oid);
Packit Service 99d1c0
OM_uint32 gssint_make_public_oid_set(OM_uint32 *minor_status, gss_OID oids,
Packit Service 99d1c0
				     int count, gss_OID_set *public_set);
Packit Service 99d1c0
gss_mechanism gssint_get_mechanism (gss_const_OID);
Packit Service 99d1c0
OM_uint32 gssint_get_mech_type (gss_OID, gss_buffer_t);
Packit Service 99d1c0
char *gssint_get_kmodName(const gss_OID);
Packit Service 99d1c0
char *gssint_get_modOptions(const gss_OID);
Packit Service 99d1c0
OM_uint32 gssint_import_internal_name (OM_uint32 *, gss_OID, gss_union_name_t,
Packit Service 99d1c0
				      gss_name_t *);
Packit Service 99d1c0
OM_uint32 gssint_export_internal_name(OM_uint32 *, const gss_OID,
Packit Service 99d1c0
	const gss_name_t, gss_buffer_t);
Packit Service 99d1c0
OM_uint32 gssint_display_internal_name (OM_uint32 *, gss_OID, gss_name_t,
Packit Service 99d1c0
				       gss_buffer_t, gss_OID *);
Packit Service 99d1c0
OM_uint32 gssint_release_internal_name (OM_uint32 *, gss_OID, gss_name_t *);
Packit Service 99d1c0
OM_uint32 gssint_delete_internal_sec_context (OM_uint32 *, gss_OID,
Packit Service 99d1c0
					      gss_ctx_id_t *, gss_buffer_t);
Packit Service 99d1c0
#ifdef _GSS_STATIC_LINK
Packit Service 99d1c0
int gssint_register_mechinfo(gss_mech_info template);
Packit Service 99d1c0
#endif
Packit Service 99d1c0
Packit Service 99d1c0
OM_uint32 gssint_convert_name_to_union_name
Packit Service 99d1c0
	  (OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
	   gss_mechanism,	/* mech */
Packit Service 99d1c0
	   gss_name_t,		/* internal_name */
Packit Service 99d1c0
	   gss_name_t *		/* external_name */
Packit Service 99d1c0
	   );
Packit Service 99d1c0
gss_cred_id_t gssint_get_mechanism_cred
Packit Service 99d1c0
	  (gss_union_cred_t,	/* union_cred */
Packit Service 99d1c0
	   gss_OID		/* mech_type */
Packit Service 99d1c0
	   );
Packit Service 99d1c0
Packit Service 99d1c0
OM_uint32 gssint_create_copy_buffer(
Packit Service 99d1c0
	const gss_buffer_t,	/* src buffer */
Packit Service 99d1c0
	gss_buffer_t *,		/* destination buffer */
Packit Service 99d1c0
	int			/* NULL terminate buffer ? */
Packit Service 99d1c0
);
Packit Service 99d1c0
Packit Service 99d1c0
OM_uint32 gssint_create_union_context(
Packit Service 99d1c0
	OM_uint32 *minor,	/* minor_status */
Packit Service 99d1c0
	gss_const_OID,		/* mech_oid */
Packit Service 99d1c0
	gss_union_ctx_id_t *	/* ctx_out */
Packit Service 99d1c0
);
Packit Service 99d1c0
Packit Service 99d1c0
OM_uint32 gssint_copy_oid_set(
Packit Service 99d1c0
	OM_uint32 *,			/* minor_status */
Packit Service 99d1c0
	const gss_OID_set_desc * const,	/* oid set */
Packit Service 99d1c0
	gss_OID_set *			/* new oid set */
Packit Service 99d1c0
);
Packit Service 99d1c0
Packit Service 99d1c0
gss_OID gss_find_mechanism_from_name_type (gss_OID); /* name_type */
Packit Service 99d1c0
Packit Service 99d1c0
OM_uint32 gss_add_mech_name_type
Packit Service 99d1c0
	   (OM_uint32 *,	/* minor_status */
Packit Service 99d1c0
	    gss_OID,		/* name_type */
Packit Service 99d1c0
	    gss_OID		/* mech */
Packit Service 99d1c0
	       );
Packit Service 99d1c0
Packit Service 99d1c0
/*
Packit Service 99d1c0
 * Sun extensions to GSS-API v2
Packit Service 99d1c0
 */
Packit Service 99d1c0
Packit Service 99d1c0
int
Packit Service 99d1c0
gssint_get_der_length(
Packit Service 99d1c0
	unsigned char **,	/* buf */
Packit Service 99d1c0
	unsigned int,		/* buf_len */
Packit Service 99d1c0
	unsigned int *		/* bytes */
Packit Service 99d1c0
);
Packit Service 99d1c0
Packit Service 99d1c0
unsigned int
Packit Service 99d1c0
gssint_der_length_size(unsigned int /* len */);
Packit Service 99d1c0
Packit Service 99d1c0
int
Packit Service 99d1c0
gssint_put_der_length(
Packit Service 99d1c0
	unsigned int,		/* length */
Packit Service 99d1c0
	unsigned char **,	/* buf */
Packit Service 99d1c0
	unsigned int		/* max_len */
Packit Service 99d1c0
);
Packit Service 99d1c0
Packit Service 99d1c0
OM_uint32
Packit Service 99d1c0
gssint_wrap_aead (gss_mechanism,	/* mech */
Packit Service 99d1c0
		  OM_uint32 *,		/* minor_status */
Packit Service 99d1c0
		  gss_union_ctx_id_t,	/* ctx */
Packit Service 99d1c0
		  int,			/* conf_req_flag */
Packit Service 99d1c0
		  gss_qop_t,		/* qop_req_flag */
Packit Service 99d1c0
		  gss_buffer_t,		/* input_assoc_buffer */
Packit Service 99d1c0
		  gss_buffer_t,		/* input_payload_buffer */
Packit Service 99d1c0
		  int *,		/* conf_state */
Packit Service 99d1c0
		  gss_buffer_t);	/* output_message_buffer */
Packit Service 99d1c0
OM_uint32
Packit Service 99d1c0
gssint_unwrap_aead (gss_mechanism,	/* mech */
Packit Service 99d1c0
		    OM_uint32 *,	/* minor_status */
Packit Service 99d1c0
		    gss_union_ctx_id_t,	/* ctx */
Packit Service 99d1c0
		    gss_buffer_t,	/* input_message_buffer */
Packit Service 99d1c0
		    gss_buffer_t,	/* input_assoc_buffer */
Packit Service 99d1c0
		    gss_buffer_t,	/* output_payload_buffer */
Packit Service 99d1c0
		    int *,		/* conf_state */
Packit Service 99d1c0
		    gss_qop_t *);	/* qop_state */
Packit Service 99d1c0
Packit Service 99d1c0
Packit Service 99d1c0
/* Use this to map an error code that was returned from a mech
Packit Service 99d1c0
   operation; the mech will be asked to produce the associated error
Packit Service 99d1c0
   messages.
Packit Service 99d1c0
Packit Service 99d1c0
   Remember that if the minor status code cannot be returned to the
Packit Service 99d1c0
   caller (e.g., if it's stuffed in an automatic variable and then
Packit Service 99d1c0
   ignored), then we don't care about producing a mapping.  */
Packit Service 99d1c0
#define map_error(MINORP, MECH) \
Packit Service 99d1c0
    (*(MINORP) = gssint_mecherrmap_map(*(MINORP), &(MECH)->mech_type))
Packit Service 99d1c0
#define map_error_oid(MINORP, MECHOID) \
Packit Service 99d1c0
    (*(MINORP) = gssint_mecherrmap_map(*(MINORP), (MECHOID)))
Packit Service 99d1c0
Packit Service 99d1c0
/* Use this to map an errno value or com_err error code being
Packit Service 99d1c0
   generated within the mechglue code (e.g., by calling generic oid
Packit Service 99d1c0
   ops).  Any errno or com_err values produced by mech operations
Packit Service 99d1c0
   should be processed with map_error.  This means they'll be stored
Packit Service 99d1c0
   separately even if the mech uses com_err, because we can't assume
Packit Service 99d1c0
   that it will use com_err.  */
Packit Service 99d1c0
#define map_errcode(MINORP) \
Packit Service 99d1c0
    (*(MINORP) = gssint_mecherrmap_map_errcode(*(MINORP)))
Packit Service 99d1c0
Packit Service 99d1c0
#endif /* _GSS_MECHGLUEP_H */