Blame src/lib/gssapi/spnego/gssapiP_spnego.h

Packit fd8b60
/*
Packit fd8b60
 * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
Packit fd8b60
 * Use is subject to license terms.
Packit fd8b60
 */
Packit fd8b60
Packit fd8b60
#ifndef	_GSSAPIP_SPNEGO_H_
Packit fd8b60
#define	_GSSAPIP_SPNEGO_H_
Packit fd8b60
Packit fd8b60
/* #pragma ident	"@(#)gssapiP_spnego.h	1.3	03/09/18 SMI" */
Packit fd8b60
Packit fd8b60
#ifdef	__cplusplus
Packit fd8b60
extern "C" {
Packit fd8b60
#endif
Packit fd8b60
Packit fd8b60
typedef struct spnego_ctx_st *spnego_gss_ctx_id_t;
Packit fd8b60
Packit fd8b60
#include <gssapi/gssapi.h>
Packit fd8b60
#include <gssapi/gssapi_ext.h>
Packit fd8b60
#include <k5-queue.h>
Packit fd8b60
#include "gssapiP_negoex.h"
Packit fd8b60
Packit fd8b60
#define	SEC_CONTEXT_TOKEN 1
Packit fd8b60
#define	SPNEGO_SIZE_OF_INT 4
Packit fd8b60
Packit fd8b60
#define	ACCEPT_COMPLETE 0
Packit fd8b60
#define	ACCEPT_INCOMPLETE 1
Packit fd8b60
#define	REJECT 2
Packit fd8b60
#define REQUEST_MIC 3
Packit fd8b60
#define	UNSPECIFIED 0xffffffffUL
Packit fd8b60
Packit fd8b60
/*
Packit fd8b60
 * constants for der encoding/decoding routines.
Packit fd8b60
 */
Packit fd8b60
Packit fd8b60
#define	MECH_OID		0x06
Packit fd8b60
#define	OCTET_STRING		0x04
Packit fd8b60
#define	CONTEXT			0xa0
Packit fd8b60
#define	SEQUENCE		0x30
Packit fd8b60
#define	SEQUENCE_OF		0x30
Packit fd8b60
#define	BIT_STRING		0x03
Packit fd8b60
#define	BIT_STRING_LENGTH	0x02
Packit fd8b60
#define	BIT_STRING_PADDING	0x01
Packit fd8b60
#define	ENUMERATED		0x0a
Packit fd8b60
#define	ENUMERATION_LENGTH	1
Packit fd8b60
#define	HEADER_ID		0x60
Packit fd8b60
#define GENERAL_STRING		0x1b
Packit fd8b60
Packit fd8b60
/*
Packit fd8b60
 * SPNEGO and NegoEx minor status codes
Packit fd8b60
 */
Packit fd8b60
#define ERR_SPNEGO_NO_MECHS_AVAILABLE			0x20000001
Packit fd8b60
#define ERR_SPNEGO_NO_CREDS_ACQUIRED			0x20000002
Packit fd8b60
#define ERR_SPNEGO_NO_MECH_FROM_ACCEPTOR		0x20000003
Packit fd8b60
#define ERR_SPNEGO_NEGOTIATION_FAILED			0x20000004
Packit fd8b60
#define ERR_SPNEGO_NO_TOKEN_FROM_ACCEPTOR		0x20000005
Packit fd8b60
#define ERR_NEGOEX_INVALID_MESSAGE_SIGNATURE		0x20000006
Packit fd8b60
#define ERR_NEGOEX_INVALID_MESSAGE_TYPE			0x20000007
Packit fd8b60
#define ERR_NEGOEX_INVALID_MESSAGE_SIZE			0x20000008
Packit fd8b60
#define ERR_NEGOEX_INVALID_CONVERSATION_ID		0x20000009
Packit fd8b60
#define ERR_NEGOEX_AUTH_SCHEME_NOT_FOUND		0x20000010
Packit fd8b60
#define ERR_NEGOEX_MISSING_NEGO_MESSAGE			0x20000011
Packit fd8b60
#define ERR_NEGOEX_MISSING_AP_REQUEST_MESSAGE		0x20000012
Packit fd8b60
#define ERR_NEGOEX_NO_AVAILABLE_MECHS			0x20000013
Packit fd8b60
#define ERR_NEGOEX_NO_VERIFY_KEY			0x20000014
Packit fd8b60
#define ERR_NEGOEX_UNKNOWN_CHECKSUM_SCHEME		0x20000015
Packit fd8b60
#define ERR_NEGOEX_INVALID_CHECKSUM			0x20000016
Packit fd8b60
#define ERR_NEGOEX_UNSUPPORTED_CRITICAL_EXTENSION	0x20000017
Packit fd8b60
#define ERR_NEGOEX_UNSUPPORTED_VERSION			0x20000018
Packit fd8b60
#define ERR_NEGOEX_MESSAGE_OUT_OF_SEQUENCE		0x20000019
Packit fd8b60
Packit fd8b60
/*
Packit fd8b60
 * send_token_flag is used to indicate in later steps what type
Packit fd8b60
 * of token, if any should be sent or processed.
Packit fd8b60
 * NO_TOKEN_SEND = no token should be sent
Packit fd8b60
 * INIT_TOKEN_SEND = initial token will be sent
Packit fd8b60
 * CONT_TOKEN_SEND = continuing tokens to be sent
Packit fd8b60
 * CHECK_MIC = no token to be sent, but have a MIC to check.
Packit fd8b60
 * ERROR_TOKEN_SEND = error token from peer needs to be sent.
Packit fd8b60
 */
Packit fd8b60
Packit fd8b60
typedef	enum {NO_TOKEN_SEND, INIT_TOKEN_SEND, CONT_TOKEN_SEND,
Packit fd8b60
		CHECK_MIC, ERROR_TOKEN_SEND} send_token_flag;
Packit fd8b60
Packit fd8b60
/*
Packit fd8b60
 * The Mech OID:
Packit fd8b60
 * { iso(1) org(3) dod(6) internet(1) security(5)
Packit fd8b60
 *  mechanism(5) spnego(2) }
Packit fd8b60
 */
Packit fd8b60
Packit fd8b60
#define	SPNEGO_OID_LENGTH 6
Packit fd8b60
#define	SPNEGO_OID "\053\006\001\005\005\002"
Packit fd8b60
Packit fd8b60
typedef void *spnego_token_t;
Packit fd8b60
Packit fd8b60
/* spnego name structure for internal representation. */
Packit fd8b60
typedef struct {
Packit fd8b60
	gss_OID type;
Packit fd8b60
	gss_buffer_t buffer;
Packit fd8b60
	gss_OID	mech_type;
Packit fd8b60
	gss_name_t	mech_name;
Packit fd8b60
} spnego_name_desc, *spnego_name_t;
Packit fd8b60
Packit fd8b60
/* Structure for credential */
Packit fd8b60
typedef struct {
Packit fd8b60
	gss_cred_id_t mcred;	/* mechglue union of obtainable creds */
Packit fd8b60
	gss_OID_set neg_mechs;	/* app-specified list of allowable mechs */
Packit fd8b60
	int no_ask_integ;	/* do not request integ from mechs */
Packit fd8b60
} spnego_gss_cred_id_rec, *spnego_gss_cred_id_t;
Packit fd8b60
Packit fd8b60
/* Structure for context handle */
Packit fd8b60
struct spnego_ctx_st {
Packit fd8b60
	OM_uint32	magic_num;
Packit fd8b60
	gss_buffer_desc DER_mechTypes;
Packit fd8b60
	gss_OID_set mech_set;
Packit fd8b60
	gss_OID internal_mech;  /* alias into mech_set->elements */
Packit fd8b60
	gss_ctx_id_t ctx_handle;
Packit fd8b60
	int mic_reqd;
Packit fd8b60
	int mic_sent;
Packit fd8b60
	int mic_rcvd;
Packit fd8b60
	int firstpass;
Packit fd8b60
	int mech_complete;
Packit fd8b60
	int nego_done;
Packit fd8b60
	int initiate;
Packit fd8b60
	int opened;
Packit fd8b60
	OM_uint32 ctx_flags;
Packit fd8b60
	gss_name_t internal_name;
Packit fd8b60
	gss_OID actual_mech;
Packit fd8b60
	gss_cred_id_t deleg_cred;
Packit fd8b60
	int negoex_step;
Packit fd8b60
	struct k5buf negoex_transcript;
Packit fd8b60
	uint32_t negoex_seqnum;
Packit fd8b60
	conversation_id negoex_conv_id;
Packit fd8b60
	K5_TAILQ_HEAD(negoex_mech_list, negoex_auth_mech) negoex_mechs;
Packit fd8b60
	krb5_context kctx;
Packit fd8b60
};
Packit fd8b60
Packit fd8b60
/*
Packit fd8b60
 * The magic number must be less than a standard pagesize
Packit fd8b60
 * to avoid a possible collision with a real address.
Packit fd8b60
 */
Packit fd8b60
#define	SPNEGO_MAGIC_ID  0x00000fed
Packit fd8b60
Packit fd8b60
/* SPNEGO oid declarations */
Packit fd8b60
extern const gss_OID_desc * const gss_mech_spnego;
Packit fd8b60
extern const gss_OID_set_desc * const gss_mech_set_spnego;
Packit fd8b60
Packit fd8b60
#if defined(DEBUG) && defined(HAVE_SYSLOG_H)
Packit fd8b60
#include <syslog.h>
Packit fd8b60
#define	dsyslog(a) syslog(LOG_DEBUG, a)
Packit fd8b60
#else
Packit fd8b60
#define	dsyslog(a)
Packit fd8b60
#define	SPNEGO_STATIC
Packit fd8b60
#endif	/* DEBUG */
Packit fd8b60
Packit fd8b60
/*
Packit fd8b60
 * declarations of internal name mechanism functions
Packit fd8b60
 */
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_acquire_cred
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *,		/* minor_status */
Packit fd8b60
	gss_name_t,		/* desired_name */
Packit fd8b60
	OM_uint32,		/* time_req */
Packit fd8b60
	gss_OID_set,		/* desired_mechs */
Packit fd8b60
	gss_cred_usage_t,	/* cred_usage */
Packit fd8b60
	gss_cred_id_t *,	/* output_cred_handle */
Packit fd8b60
	gss_OID_set *,		/* actual_mechs */
Packit fd8b60
	OM_uint32 *		/* time_rec */
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_release_cred
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *,		/* minor_status */
Packit fd8b60
	/* CSTYLED */
Packit fd8b60
	gss_cred_id_t	*	/* cred_handle */
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_init_sec_context
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *,		/* minor_status */
Packit fd8b60
	gss_cred_id_t,		/* claimant_cred_handle */
Packit fd8b60
	gss_ctx_id_t *,		/* context_handle */
Packit fd8b60
	gss_name_t,		/* target_name */
Packit fd8b60
	gss_OID,		/* mech_type */
Packit fd8b60
	OM_uint32,		/* req_flags */
Packit fd8b60
	OM_uint32,		/* time_req */
Packit fd8b60
	gss_channel_bindings_t, /* input_chan_bindings */
Packit fd8b60
	gss_buffer_t,		/* input_token */
Packit fd8b60
	gss_OID *,		/* actual_mech_type */
Packit fd8b60
	gss_buffer_t,		/* output_token */
Packit fd8b60
	OM_uint32 *,		/* ret_flags */
Packit fd8b60
	OM_uint32 *		/* time_rec */
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
#ifndef LEAN_CLIENT
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_accept_sec_context
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *,		/* minor_status */
Packit fd8b60
	gss_ctx_id_t *,		/* context_handle */
Packit fd8b60
	gss_cred_id_t,		/* verifier_cred_handle */
Packit fd8b60
	gss_buffer_t,		/* input_token_buffer */
Packit fd8b60
	gss_channel_bindings_t, /* input_chan_bindings */
Packit fd8b60
	gss_name_t *,		/* src_name */
Packit fd8b60
	gss_OID *,		/* mech_type */
Packit fd8b60
	gss_buffer_t,		/* output_token */
Packit fd8b60
	OM_uint32 *,		/* ret_flags */
Packit fd8b60
	OM_uint32 *,		/* time_rec */
Packit fd8b60
	/* CSTYLED */
Packit fd8b60
	gss_cred_id_t *		/* delegated_cred_handle */
Packit fd8b60
);
Packit fd8b60
#endif /* LEAN_CLIENT */
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_compare_name
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *,		/* minor_status */
Packit fd8b60
	const gss_name_t,	/* name1 */
Packit fd8b60
	const gss_name_t,	/* name2 */
Packit fd8b60
	int *			/* name_equal */
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_display_name
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *,		/* minor_status */
Packit fd8b60
	gss_name_t,		/*  input_name */
Packit fd8b60
	gss_buffer_t,		/*  output_name_buffer */
Packit fd8b60
	gss_OID *		/* output_name_type */
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_display_status
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *,		/* minor_status */
Packit fd8b60
	OM_uint32,		/* status_value */
Packit fd8b60
	int,			/* status_type */
Packit fd8b60
	gss_OID,		/* mech_type */
Packit fd8b60
	OM_uint32 *,		/* message_context */
Packit fd8b60
	gss_buffer_t		/* status_string */
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_import_name
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *,		/* minor_status */
Packit fd8b60
	gss_buffer_t,		/* input_name_buffer */
Packit fd8b60
	gss_OID,		/* input_name_type */
Packit fd8b60
	/* CSTYLED */
Packit fd8b60
	gss_name_t *		/* output_name */
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_release_name
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *,		/* minor_status */
Packit fd8b60
	/* CSTYLED */
Packit fd8b60
	gss_name_t *		/* input_name */
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_duplicate_name
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *,		/* minor_status */
Packit fd8b60
	/* CSTYLED */
Packit fd8b60
	const gss_name_t, 	/* input_name */
Packit fd8b60
	gss_name_t *		/* output_name */
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_inquire_cred
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *,		/* minor_status */
Packit fd8b60
	gss_cred_id_t,		/* cred_handle */
Packit fd8b60
	gss_name_t *,		/* name */
Packit fd8b60
	OM_uint32 *,		/* lifetime */
Packit fd8b60
	int *,			/* cred_usage */
Packit fd8b60
	gss_OID_set *		/* mechanisms */
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_inquire_names_for_mech
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *,		/* minor_status */
Packit fd8b60
	gss_OID,		/* mechanism */
Packit fd8b60
	gss_OID_set *		/* name_types */
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_unwrap
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_ctx_id_t context_handle,
Packit fd8b60
	gss_buffer_t input_message_buffer,
Packit fd8b60
	gss_buffer_t output_message_buffer,
Packit fd8b60
	int *conf_state,
Packit fd8b60
	gss_qop_t *qop_state
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_wrap
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_ctx_id_t context_handle,
Packit fd8b60
	int conf_req_flag,
Packit fd8b60
	gss_qop_t qop_req,
Packit fd8b60
	gss_buffer_t input_message_buffer,
Packit fd8b60
	int *conf_state,
Packit fd8b60
	gss_buffer_t output_message_buffer
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_process_context_token
Packit fd8b60
(
Packit fd8b60
	OM_uint32	*minor_status,
Packit fd8b60
	const gss_ctx_id_t context_handle,
Packit fd8b60
	const gss_buffer_t token_buffer
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_delete_sec_context
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_ctx_id_t *context_handle,
Packit fd8b60
	gss_buffer_t output_token
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_context_time
Packit fd8b60
(
Packit fd8b60
	OM_uint32	*minor_status,
Packit fd8b60
	const gss_ctx_id_t context_handle,
Packit fd8b60
	OM_uint32	*time_rec
Packit fd8b60
);
Packit fd8b60
#ifndef LEAN_CLIENT
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_export_sec_context
Packit fd8b60
(
Packit fd8b60
	OM_uint32	*minor_status,
Packit fd8b60
	gss_ctx_id_t	*context_handle,
Packit fd8b60
	gss_buffer_t	interprocess_token
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_import_sec_context
Packit fd8b60
(
Packit fd8b60
	OM_uint32		*minor_status,
Packit fd8b60
	const gss_buffer_t	interprocess_token,
Packit fd8b60
	gss_ctx_id_t		*context_handle
Packit fd8b60
);
Packit fd8b60
#endif /* LEAN_CLIENT */
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_inquire_context
Packit fd8b60
(
Packit fd8b60
	OM_uint32	*minor_status,
Packit fd8b60
	const gss_ctx_id_t context_handle,
Packit fd8b60
	gss_name_t	*src_name,
Packit fd8b60
	gss_name_t	*targ_name,
Packit fd8b60
	OM_uint32	*lifetime_rec,
Packit fd8b60
	gss_OID		*mech_type,
Packit fd8b60
	OM_uint32	*ctx_flags,
Packit fd8b60
	int		*locally_initiated,
Packit fd8b60
	int		*opened
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_wrap_size_limit
Packit fd8b60
(
Packit fd8b60
	OM_uint32	*minor_status,
Packit fd8b60
	const gss_ctx_id_t context_handle,
Packit fd8b60
	int		conf_req_flag,
Packit fd8b60
	gss_qop_t	qop_req,
Packit fd8b60
	OM_uint32	req_output_size,
Packit fd8b60
	OM_uint32	*max_input_size
Packit fd8b60
);
Packit fd8b60
rpm-build c65b2f
OM_uint32 KRB5_CALLCONV spnego_gss_localname
rpm-build c65b2f
(
rpm-build c65b2f
	OM_uint32 *minor_status,
rpm-build c65b2f
	const gss_name_t pname,
rpm-build c65b2f
	const gss_const_OID mech_type,
rpm-build c65b2f
	gss_buffer_t localname
rpm-build c65b2f
);
rpm-build c65b2f
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_get_mic
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	const gss_ctx_id_t context_handle,
Packit fd8b60
	gss_qop_t qop_req,
Packit fd8b60
	const gss_buffer_t message_buffer,
Packit fd8b60
	gss_buffer_t message_token
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_verify_mic
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	const gss_ctx_id_t context_handle,
Packit fd8b60
	const gss_buffer_t msg_buffer,
Packit fd8b60
	const gss_buffer_t token_buffer,
Packit fd8b60
	gss_qop_t *qop_state
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_inquire_sec_context_by_oid
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	const gss_ctx_id_t context_handle,
Packit fd8b60
	const gss_OID desired_object,
Packit fd8b60
	gss_buffer_set_t *data_set
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_inquire_cred_by_oid
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	const gss_cred_id_t cred_handle,
Packit fd8b60
	const gss_OID desired_object,
Packit fd8b60
	gss_buffer_set_t *data_set
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_set_cred_option
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_cred_id_t *cred_handle,
Packit fd8b60
	const gss_OID desired_object,
Packit fd8b60
	const gss_buffer_t value
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_set_sec_context_option
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_ctx_id_t *context_handle,
Packit fd8b60
	const gss_OID desired_object,
Packit fd8b60
	const gss_buffer_t value
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
#ifdef _GSS_STATIC_LINK
Packit fd8b60
int gss_spnegoint_lib_init(void);
Packit fd8b60
void gss_spnegoint_lib_fini(void);
Packit fd8b60
#else
Packit fd8b60
gss_mechanism KRB5_CALLCONV gss_mech_initialize(void);
Packit fd8b60
#endif /* _GSS_STATIC_LINK */
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_wrap_aead
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_ctx_id_t context_handle,
Packit fd8b60
	int conf_req_flag,
Packit fd8b60
	gss_qop_t qop_req,
Packit fd8b60
	gss_buffer_t input_assoc_buffer,
Packit fd8b60
	gss_buffer_t input_payload_buffer,
Packit fd8b60
	int *conf_state,
Packit fd8b60
	gss_buffer_t output_message_buffer
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_unwrap_aead
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_ctx_id_t context_handle,
Packit fd8b60
	gss_buffer_t input_message_buffer,
Packit fd8b60
	gss_buffer_t input_assoc_buffer,
Packit fd8b60
	gss_buffer_t output_payload_buffer,
Packit fd8b60
	int *conf_state,
Packit fd8b60
	gss_qop_t *qop_state
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_wrap_iov
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_ctx_id_t context_handle,
Packit fd8b60
	int conf_req_flag,
Packit fd8b60
	gss_qop_t qop_req,
Packit fd8b60
	int *conf_state,
Packit fd8b60
	gss_iov_buffer_desc *iov,
Packit fd8b60
	int iov_count
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_unwrap_iov
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_ctx_id_t context_handle,
Packit fd8b60
	int *conf_state,
Packit fd8b60
	gss_qop_t *qop_state,
Packit fd8b60
	gss_iov_buffer_desc *iov,
Packit fd8b60
	int iov_count
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV spnego_gss_wrap_iov_length
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_ctx_id_t context_handle,
Packit fd8b60
	int conf_req_flag,
Packit fd8b60
	gss_qop_t qop_req,
Packit fd8b60
	int *conf_state,
Packit fd8b60
	gss_iov_buffer_desc *iov,
Packit fd8b60
	int iov_count
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_complete_auth_token
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	const gss_ctx_id_t context_handle,
Packit fd8b60
	gss_buffer_t input_message_buffer
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_acquire_cred_impersonate_name(
Packit fd8b60
    OM_uint32 *,	    /* minor_status */
Packit fd8b60
    const gss_cred_id_t,    /* impersonator_cred_handle */
Packit fd8b60
    const gss_name_t,	    /* desired_name */
Packit fd8b60
    OM_uint32,		    /* time_req */
Packit fd8b60
    const gss_OID_set,	    /* desired_mechs */
Packit fd8b60
    gss_cred_usage_t,	    /* cred_usage */
Packit fd8b60
    gss_cred_id_t *,	    /* output_cred_handle */
Packit fd8b60
    gss_OID_set *,	    /* actual_mechs */
Packit fd8b60
    OM_uint32 *);	    /* time_rec */
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_acquire_cred_with_password(
Packit fd8b60
    OM_uint32 *minor_status,
Packit fd8b60
    const gss_name_t desired_name,
Packit fd8b60
    const gss_buffer_t password,
Packit fd8b60
    OM_uint32 time_req,
Packit fd8b60
    const gss_OID_set desired_mechs,
Packit fd8b60
    gss_cred_usage_t cred_usage,
Packit fd8b60
    gss_cred_id_t *output_cred_handle,
Packit fd8b60
    gss_OID_set *actual_mechs,
Packit fd8b60
    OM_uint32 *time_rec);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_display_name_ext
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_name_t name,
Packit fd8b60
	gss_OID display_as_name_type,
Packit fd8b60
	gss_buffer_t display_name
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_inquire_name
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_name_t name,
Packit fd8b60
	int *name_is_MN,
Packit fd8b60
	gss_OID *MN_mech,
Packit fd8b60
	gss_buffer_set_t *attrs
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_get_name_attribute
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_name_t name,
Packit fd8b60
	gss_buffer_t attr,
Packit fd8b60
	int *authenticated,
Packit fd8b60
	int *complete,
Packit fd8b60
	gss_buffer_t value,
Packit fd8b60
	gss_buffer_t display_value,
Packit fd8b60
	int *more
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_set_name_attribute
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_name_t name,
Packit fd8b60
	int complete,
Packit fd8b60
	gss_buffer_t attr,
Packit fd8b60
	gss_buffer_t value
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_delete_name_attribute
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_name_t name,
Packit fd8b60
	gss_buffer_t attr
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_export_name_composite
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_name_t name,
Packit fd8b60
	gss_buffer_t exp_composite_name
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_map_name_to_any
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_name_t name,
Packit fd8b60
	int authenticated,
Packit fd8b60
	gss_buffer_t type_id,
Packit fd8b60
	gss_any_t *output
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_release_any_name_mapping
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_name_t name,
Packit fd8b60
	gss_buffer_t type_id,
Packit fd8b60
	gss_any_t *input
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_pseudo_random
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_ctx_id_t context,
Packit fd8b60
	int prf_key,
Packit fd8b60
	const gss_buffer_t prf_in,
Packit fd8b60
	ssize_t desired_output_len,
Packit fd8b60
	gss_buffer_t prf_out
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_set_neg_mechs
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_cred_id_t cred_handle,
Packit fd8b60
	const gss_OID_set mech_list
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_inquire_mech_for_saslname
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	const gss_buffer_t sasl_mech_name,
Packit fd8b60
	gss_OID *mech_type
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_inquire_saslname_for_mech
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	const gss_OID desired_mech,
Packit fd8b60
	gss_buffer_t sasl_mech_name,
Packit fd8b60
	gss_buffer_t mech_name,
Packit fd8b60
	gss_buffer_t mech_description
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_inquire_attrs_for_mech
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_const_OID mech,
Packit fd8b60
	gss_OID_set *mech_attrs,
Packit fd8b60
	gss_OID_set *known_mech_attrs
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_acquire_cred_from
Packit fd8b60
(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	const gss_name_t desired_name,
Packit fd8b60
	OM_uint32 time_req,
Packit fd8b60
	const gss_OID_set desired_mechs,
Packit fd8b60
	gss_cred_usage_t cred_usage,
Packit fd8b60
	gss_const_key_value_set_t cred_store,
Packit fd8b60
	gss_cred_id_t *output_cred_handle,
Packit fd8b60
	gss_OID_set *actual_mechs,
Packit fd8b60
	OM_uint32 *time_rec
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_export_cred(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_cred_id_t cred_handle,
Packit fd8b60
	gss_buffer_t token
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_import_cred(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_buffer_t token,
Packit fd8b60
	gss_cred_id_t *cred_handle
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_get_mic_iov(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_ctx_id_t context_handle,
Packit fd8b60
	gss_qop_t qop_req,
Packit fd8b60
	gss_iov_buffer_desc *iov,
Packit fd8b60
	int iov_count
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_verify_mic_iov(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_ctx_id_t context_handle,
Packit fd8b60
	gss_qop_t *qop_state,
Packit fd8b60
	gss_iov_buffer_desc *iov,
Packit fd8b60
	int iov_count
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
OM_uint32 KRB5_CALLCONV
Packit fd8b60
spnego_gss_get_mic_iov_length(
Packit fd8b60
	OM_uint32 *minor_status,
Packit fd8b60
	gss_ctx_id_t context_handle,
Packit fd8b60
	gss_qop_t qop_req,
Packit fd8b60
	gss_iov_buffer_desc *iov,
Packit fd8b60
	int iov_count
Packit fd8b60
);
Packit fd8b60
Packit fd8b60
#ifdef	__cplusplus
Packit fd8b60
}
Packit fd8b60
#endif
Packit fd8b60
Packit fd8b60
#endif /* _GSSAPIP_SPNEGO_H_ */