forked from mirrors/gecko-dev
		
	 4e9cf83ee8
			
		
	
	
		4e9cf83ee8
		
	
	
	
	
		
			
			MozReview-Commit-ID: Kdz2xtTF9EG --HG-- extra : rebase_source : 7235b3802f25bab29a8c6ba40a181a722f3df0ce
		
			
				
	
	
		
			848 lines
		
	
	
	
		
			25 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			848 lines
		
	
	
	
		
			25 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* vim:set ts=4 sw=4 sts=4 et cindent: */
 | |
| /* ***** BEGIN LICENSE BLOCK *****
 | |
|  * Copyright 1993 by OpenVision Technologies, Inc.
 | |
|  *
 | |
|  * Permission to use, copy, modify, distribute, and sell this software
 | |
|  * and its documentation for any purpose is hereby granted without fee,
 | |
|  * provided that the above copyright notice appears in all copies and
 | |
|  * that both that copyright notice and this permission notice appear in
 | |
|  * supporting documentation, and that the name of OpenVision not be used
 | |
|  * in advertising or publicity pertaining to distribution of the software
 | |
|  * without specific, written prior permission. OpenVision makes no
 | |
|  * representations about the suitability of this software for any
 | |
|  * purpose.  It is provided "as is" without express or implied warranty.
 | |
|  *
 | |
|  * OPENVISION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 | |
|  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
 | |
|  * EVENT SHALL OPENVISION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 | |
|  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
 | |
|  * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
 | |
|  * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 | |
|  * PERFORMANCE OF THIS SOFTWARE.
 | |
|  ****** END LICENSE BLOCK ***** */
 | |
| 
 | |
| #ifndef GSSAPI_H_
 | |
| #define GSSAPI_H_
 | |
| 
 | |
| /*
 | |
|  * Also define _GSSAPI_H_ as that is what the Kerberos 5 code defines and
 | |
|  * what header files on some systems look for.
 | |
|  */
 | |
| #define _GSSAPI_H_
 | |
| 
 | |
| /*
 | |
|  * On Mac OS X, Kerberos/Kerberos.h is used to gain access to certain
 | |
|  * system-specific Kerberos functions, but on 10.4, that file also brings
 | |
|  * in other headers that conflict with this one.
 | |
|  */
 | |
| #define _GSSAPI_GENERIC_H_
 | |
| #define _GSSAPI_KRB5_H_
 | |
| 
 | |
| /*
 | |
|  * Define windows specific needed parameters.
 | |
|  */
 | |
| 
 | |
| #ifndef GSS_CALLCONV
 | |
| #if defined(_WIN32)
 | |
| #define GSS_CALLCONV __stdcall
 | |
| #define GSS_CALLCONV_C __cdecl
 | |
| #else
 | |
| #define GSS_CALLCONV
 | |
| #define GSS_CALLCONV_C
 | |
| #endif
 | |
| #endif /* GSS_CALLCONV */
 | |
| 
 | |
| #ifdef GSS_USE_FUNCTION_POINTERS
 | |
| #ifdef _WIN32
 | |
| #undef GSS_CALLCONV
 | |
| #define GSS_CALLCONV
 | |
| #define GSS_FUNC(f) (__stdcall *f##_type)
 | |
| #else
 | |
| #define GSS_FUNC(f) (*f##_type)
 | |
| #endif
 | |
| #define GSS_MAKE_TYPEDEF typedef
 | |
| #else
 | |
| #define GSS_FUNC(f) f
 | |
| #define GSS_MAKE_TYPEDEF
 | |
| #endif
 | |
| 
 | |
| /*
 | |
|  * First, include stddef.h to get size_t defined.
 | |
|  */
 | |
| #include <stddef.h>
 | |
| 
 | |
| /*
 | |
|  * Configure set the following
 | |
|  */
 | |
| 
 | |
| #ifndef SIZEOF_LONG
 | |
| #undef SIZEOF_LONG
 | |
| #endif
 | |
| #ifndef SIZEOF_SHORT
 | |
| #undef SIZEOF_SHORT
 | |
| #endif
 | |
| 
 | |
| #ifndef EXTERN_C_BEGIN
 | |
| #ifdef __cplusplus
 | |
| #define EXTERN_C_BEGIN extern "C" {
 | |
| #define EXTERN_C_END }
 | |
| #else
 | |
| #define EXTERN_C_BEGIN
 | |
| #define EXTERN_C_END
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| EXTERN_C_BEGIN
 | |
| 
 | |
| #if defined(XP_MACOSX)
 | |
| #    pragma pack(push,2)
 | |
| #endif
 | |
| 
 | |
| /*
 | |
|  * If the platform supports the xom.h header file, it should be
 | |
|  * included here.
 | |
|  */
 | |
| /* #include <xom.h> */
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Now define the three implementation-dependent types.
 | |
|  */
 | |
| 
 | |
| typedef void * gss_name_t ;
 | |
| typedef void * gss_ctx_id_t ;
 | |
| typedef void * gss_cred_id_t ;
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * The following type must be defined as the smallest natural
 | |
|  * unsigned integer supported by the platform that has at least
 | |
|  * 32 bits of precision.
 | |
|  */
 | |
| 
 | |
| #if SIZEOF_LONG == 4
 | |
| typedef unsigned long gss_uint32;
 | |
| #elif SIZEOF_SHORT == 4
 | |
| typedef unsigned short gss_uint32;
 | |
| #else
 | |
| typedef unsigned int gss_uint32;
 | |
| #endif
 | |
| 
 | |
| #ifdef OM_STRING
 | |
| 
 | |
| /*
 | |
|  * We have included the xom.h header file.  Verify that OM_uint32
 | |
|  * is defined correctly.
 | |
|  */
 | |
| 
 | |
| #if sizeof(gss_uint32) != sizeof(OM_uint32)
 | |
| #error Incompatible definition of OM_uint32 from xom.h
 | |
| #endif
 | |
| 
 | |
| typedef OM_object_identifier gss_OID_desc, *gss_OID;
 | |
| 
 | |
| #else /* !OM_STRING */
 | |
| 
 | |
| /*
 | |
|  * We can't use X/Open definitions, so roll our own.
 | |
|  */
 | |
| typedef gss_uint32 OM_uint32;
 | |
| typedef struct gss_OID_desc_struct {
 | |
|   OM_uint32 length;
 | |
|   void *elements;
 | |
| } gss_OID_desc, *gss_OID;
 | |
| 
 | |
| #endif /* !OM_STRING */
 | |
| 
 | |
| typedef struct gss_OID_set_desc_struct  {
 | |
|   size_t     count;
 | |
|   gss_OID    elements;
 | |
| } gss_OID_set_desc, *gss_OID_set;
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * For now, define a QOP-type as an OM_uint32
 | |
|  */
 | |
| typedef OM_uint32 gss_qop_t;
 | |
| 
 | |
| typedef int gss_cred_usage_t;
 | |
| 
 | |
| 
 | |
| typedef struct gss_buffer_desc_struct {
 | |
|   size_t length;
 | |
|   void *value;
 | |
| } gss_buffer_desc, *gss_buffer_t;
 | |
| 
 | |
| typedef struct gss_channel_bindings_struct {
 | |
|   OM_uint32 initiator_addrtype;
 | |
|   gss_buffer_desc initiator_address;
 | |
|   OM_uint32 acceptor_addrtype;
 | |
|   gss_buffer_desc acceptor_address;
 | |
|   gss_buffer_desc application_data;
 | |
| } *gss_channel_bindings_t;
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Flag bits for context-level services.
 | |
|  */
 | |
| #define GSS_C_DELEG_FLAG 1
 | |
| #define GSS_C_MUTUAL_FLAG 2
 | |
| #define GSS_C_REPLAY_FLAG 4
 | |
| #define GSS_C_SEQUENCE_FLAG 8
 | |
| #define GSS_C_CONF_FLAG 16
 | |
| #define GSS_C_INTEG_FLAG 32
 | |
| #define GSS_C_ANON_FLAG 64
 | |
| #define GSS_C_PROT_READY_FLAG 128
 | |
| #define GSS_C_TRANS_FLAG 256
 | |
| 
 | |
| /*
 | |
|  * Credential usage options
 | |
|  */
 | |
| #define GSS_C_BOTH 0
 | |
| #define GSS_C_INITIATE 1
 | |
| #define GSS_C_ACCEPT 2
 | |
| 
 | |
| /*
 | |
|  * Status code types for gss_display_status
 | |
|  */
 | |
| #define GSS_C_GSS_CODE 1
 | |
| #define GSS_C_MECH_CODE 2
 | |
| 
 | |
| /*
 | |
|  * The constant definitions for channel-bindings address families
 | |
|  */
 | |
| #define GSS_C_AF_UNSPEC     0
 | |
| #define GSS_C_AF_LOCAL      1
 | |
| #define GSS_C_AF_INET       2
 | |
| #define GSS_C_AF_IMPLINK    3
 | |
| #define GSS_C_AF_PUP        4
 | |
| #define GSS_C_AF_CHAOS      5
 | |
| #define GSS_C_AF_NS         6
 | |
| #define GSS_C_AF_NBS        7
 | |
| #define GSS_C_AF_ECMA       8
 | |
| #define GSS_C_AF_DATAKIT    9
 | |
| #define GSS_C_AF_CCITT      10
 | |
| #define GSS_C_AF_SNA        11
 | |
| #define GSS_C_AF_DECnet     12
 | |
| #define GSS_C_AF_DLI        13
 | |
| #define GSS_C_AF_LAT        14
 | |
| #define GSS_C_AF_HYLINK     15
 | |
| #define GSS_C_AF_APPLETALK  16
 | |
| #define GSS_C_AF_BSC        17
 | |
| #define GSS_C_AF_DSS        18
 | |
| #define GSS_C_AF_OSI        19
 | |
| #define GSS_C_AF_X25        21
 | |
| 
 | |
| #define GSS_C_AF_NULLADDR   255
 | |
| 
 | |
| /*
 | |
|  * Various Null values
 | |
|  */
 | |
| #define GSS_C_NO_NAME ((gss_name_t) 0)
 | |
| #define GSS_C_NO_BUFFER ((gss_buffer_t) 0)
 | |
| #define GSS_C_NO_OID ((gss_OID) 0)
 | |
| #define GSS_C_NO_OID_SET ((gss_OID_set) 0)
 | |
| #define GSS_C_NO_CONTEXT ((gss_ctx_id_t) 0)
 | |
| #define GSS_C_NO_CREDENTIAL ((gss_cred_id_t) 0)
 | |
| #define GSS_C_NO_CHANNEL_BINDINGS ((gss_channel_bindings_t) 0)
 | |
| #define GSS_C_EMPTY_BUFFER {0, nullptr}
 | |
| 
 | |
| /*
 | |
|  * Some alternate names for a couple of the above
 | |
|  * values.  These are defined for V1 compatibility.
 | |
|  */
 | |
| #define GSS_C_NULL_OID GSS_C_NO_OID
 | |
| #define GSS_C_NULL_OID_SET GSS_C_NO_OID_SET
 | |
| 
 | |
| /*
 | |
|  * Define the default Quality of Protection for per-message
 | |
|  * services.  Note that an implementation that offers multiple
 | |
|  * levels of QOP may define GSS_C_QOP_DEFAULT to be either zero
 | |
|  * (as done here) to mean "default protection", or to a specific
 | |
|  * explicit QOP value.  However, a value of 0 should always be
 | |
|  * interpreted by a GSSAPI implementation as a request for the
 | |
|  * default protection level.
 | |
|  */
 | |
| #define GSS_C_QOP_DEFAULT 0
 | |
| 
 | |
| /*
 | |
|  * Expiration time of 2^32-1 seconds means infinite lifetime for a
 | |
|  * credential or security context
 | |
|  */
 | |
| #define GSS_C_INDEFINITE 0xfffffffful
 | |
| 
 | |
| /*
 | |
|  * The implementation must reserve static storage for a
 | |
|  * gss_OID_desc object containing the value
 | |
|  * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
 | |
|  *              "\x01\x02\x01\x01"},
 | |
|  * corresponding to an object-identifier value of
 | |
|  * {iso(1) member-body(2) United States(840) mit(113554)
 | |
|  *  infosys(1) gssapi(2) generic(1) user_name(1)}.  The constant
 | |
|  * GSS_C_NT_USER_NAME should be initialized to point
 | |
|  * to that gss_OID_desc.
 | |
|  */
 | |
| extern gss_OID GSS_C_NT_USER_NAME;
 | |
| 
 | |
| /*
 | |
|  * The implementation must reserve static storage for a
 | |
|  * gss_OID_desc object containing the value
 | |
|  * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
 | |
|  *              "\x01\x02\x01\x02"},
 | |
|  * corresponding to an object-identifier value of
 | |
|  * {iso(1) member-body(2) United States(840) mit(113554)
 | |
|  *  infosys(1) gssapi(2) generic(1) machine_uid_name(2)}.
 | |
|  * The constant GSS_C_NT_MACHINE_UID_NAME should be
 | |
|  * initialized to point to that gss_OID_desc.
 | |
|  */
 | |
| extern gss_OID GSS_C_NT_MACHINE_UID_NAME;
 | |
| 
 | |
| /*
 | |
|  * The implementation must reserve static storage for a
 | |
|  * gss_OID_desc object containing the value
 | |
|  * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
 | |
|  *              "\x01\x02\x01\x03"},
 | |
|  * corresponding to an object-identifier value of
 | |
|  * {iso(1) member-body(2) United States(840) mit(113554)
 | |
|  *  infosys(1) gssapi(2) generic(1) string_uid_name(3)}.
 | |
|  * The constant GSS_C_NT_STRING_UID_NAME should be
 | |
|  * initialized to point to that gss_OID_desc.
 | |
|  */
 | |
| extern gss_OID GSS_C_NT_STRING_UID_NAME;
 | |
| 
 | |
| /*
 | |
|  * The implementation must reserve static storage for a
 | |
|  * gss_OID_desc object containing the value
 | |
|  * {6, (void *)"\x2b\x06\x01\x05\x06\x02"},
 | |
|  * corresponding to an object-identifier value of
 | |
|  * {iso(1) org(3) dod(6) internet(1) security(5)
 | |
|  * nametypes(6) gss-host-based-services(2)).  The constant
 | |
|  * GSS_C_NT_HOSTBASED_SERVICE_X should be initialized to point
 | |
|  * to that gss_OID_desc.  This is a deprecated OID value, and
 | |
|  * implementations wishing to support hostbased-service names
 | |
|  * should instead use the GSS_C_NT_HOSTBASED_SERVICE OID,
 | |
|  * defined below, to identify such names;
 | |
|  * GSS_C_NT_HOSTBASED_SERVICE_X should be accepted a synonym
 | |
|  * for GSS_C_NT_HOSTBASED_SERVICE when presented as an input
 | |
|  * parameter, but should not be emitted by GSSAPI
 | |
|  * implementations
 | |
|  */
 | |
| extern gss_OID GSS_C_NT_HOSTBASED_SERVICE_X;
 | |
| 
 | |
| /*
 | |
|  * The implementation must reserve static storage for a
 | |
|  * gss_OID_desc object containing the value
 | |
|  * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
 | |
|  *              "\x01\x02\x01\x04"}, corresponding to an
 | |
|  * object-identifier value of {iso(1) member-body(2)
 | |
|  * Unites States(840) mit(113554) infosys(1) gssapi(2)
 | |
|  * generic(1) service_name(4)}.  The constant
 | |
|  * GSS_C_NT_HOSTBASED_SERVICE should be initialized
 | |
|  * to point to that gss_OID_desc.
 | |
|  */
 | |
| extern gss_OID GSS_C_NT_HOSTBASED_SERVICE;
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * The implementation must reserve static storage for a
 | |
|  * gss_OID_desc object containing the value
 | |
|  * {6, (void *)"\x2b\x06\01\x05\x06\x03"},
 | |
|  * corresponding to an object identifier value of
 | |
|  * {1(iso), 3(org), 6(dod), 1(internet), 5(security),
 | |
|  * 6(nametypes), 3(gss-anonymous-name)}.  The constant
 | |
|  * and GSS_C_NT_ANONYMOUS should be initialized to point
 | |
|  * to that gss_OID_desc.
 | |
|  */
 | |
| extern gss_OID GSS_C_NT_ANONYMOUS;
 | |
| 
 | |
| /*
 | |
|  * The implementation must reserve static storage for a
 | |
|  * gss_OID_desc object containing the value
 | |
|  * {6, (void *)"\x2b\x06\x01\x05\x06\x04"},
 | |
|  * corresponding to an object-identifier value of
 | |
|  * {1(iso), 3(org), 6(dod), 1(internet), 5(security),
 | |
|  * 6(nametypes), 4(gss-api-exported-name)}.  The constant
 | |
|  * GSS_C_NT_EXPORT_NAME should be initialized to point
 | |
|  * to that gss_OID_desc.
 | |
|  */
 | |
| extern gss_OID GSS_C_NT_EXPORT_NAME;
 | |
| 
 | |
| /* Major status codes */
 | |
| 
 | |
| #define GSS_S_COMPLETE 0
 | |
| 
 | |
| /*
 | |
|  * Some "helper" definitions to make the status code macros obvious.
 | |
|  */
 | |
| #define GSS_C_CALLING_ERROR_OFFSET 24
 | |
| #define GSS_C_ROUTINE_ERROR_OFFSET 16
 | |
| #define GSS_C_SUPPLEMENTARY_OFFSET 0
 | |
| #define GSS_C_CALLING_ERROR_MASK 0377ul
 | |
| #define GSS_C_ROUTINE_ERROR_MASK 0377ul
 | |
| #define GSS_C_SUPPLEMENTARY_MASK 0177777ul
 | |
| 
 | |
| /*
 | |
|  * The macros that test status codes for error conditions.
 | |
|  * Note that the GSS_ERROR() macro has changed slightly from
 | |
|  * the V1 GSSAPI so that it now evaluates its argument
 | |
|  * only once.
 | |
|  */
 | |
| #define GSS_CALLING_ERROR(x) \
 | |
| (x & (GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET))
 | |
| #define GSS_ROUTINE_ERROR(x) \
 | |
|      (x & (GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET))
 | |
| #define GSS_SUPPLEMENTARY_INFO(x) \
 | |
|      (x & (GSS_C_SUPPLEMENTARY_MASK << GSS_C_SUPPLEMENTARY_OFFSET))
 | |
| #define GSS_ERROR(x) \
 | |
|      (x & ((GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET) | \
 | |
|            (GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET)))
 | |
| 
 | |
| /*
 | |
|  * Now the actual status code definitions
 | |
|  */
 | |
| 
 | |
| /*
 | |
|  * Calling errors:
 | |
|  */
 | |
| #define GSS_S_CALL_INACCESSIBLE_READ \
 | |
|      (1ul << GSS_C_CALLING_ERROR_OFFSET)
 | |
| #define GSS_S_CALL_INACCESSIBLE_WRITE \
 | |
|      (2ul << GSS_C_CALLING_ERROR_OFFSET)
 | |
| #define GSS_S_CALL_BAD_STRUCTURE \
 | |
|      (3ul << GSS_C_CALLING_ERROR_OFFSET)
 | |
| 
 | |
| /*
 | |
|  * Routine errors:
 | |
|  */
 | |
| #define GSS_S_BAD_MECH (1ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_BAD_NAME (2ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_BAD_NAMETYPE (3ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_BAD_BINDINGS (4ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_BAD_STATUS (5ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_BAD_SIG (6ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_BAD_MIC GSS_S_BAD_SIG
 | |
| #define GSS_S_NO_CRED (7ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_NO_CONTEXT (8ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_DEFECTIVE_TOKEN (9ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_DEFECTIVE_CREDENTIAL (10ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_CREDENTIALS_EXPIRED (11ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_CONTEXT_EXPIRED (12ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_FAILURE (13ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_BAD_QOP (14ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_UNAUTHORIZED (15ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_UNAVAILABLE (16ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_DUPLICATE_ELEMENT (17ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| #define GSS_S_NAME_NOT_MN (18ul << GSS_C_ROUTINE_ERROR_OFFSET)
 | |
| 
 | |
| /*
 | |
|  * Supplementary info bits:
 | |
|  */
 | |
| #define GSS_S_CONTINUE_NEEDED (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 0))
 | |
| #define GSS_S_DUPLICATE_TOKEN (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 1))
 | |
| #define GSS_S_OLD_TOKEN (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 2))
 | |
| #define GSS_S_UNSEQ_TOKEN (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 3))
 | |
| #define GSS_S_GAP_TOKEN (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 4))
 | |
| 
 | |
| /*
 | |
|  * Finally, function prototypes for the GSS-API routines.
 | |
|  */
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_acquire_cred)
 | |
| (OM_uint32 *,             /*  minor_status */
 | |
|  const gss_name_t,        /* desired_name */
 | |
|  OM_uint32,               /* time_req */
 | |
|  const gss_OID_set,       /* desired_mechs */
 | |
|  gss_cred_usage_t,        /* cred_usage */
 | |
|  gss_cred_id_t *,         /* output_cred_handle */
 | |
|  gss_OID_set *,           /* actual_mechs */
 | |
|  OM_uint32 *              /* time_rec */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_release_cred)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  gss_cred_id_t *          /* cred_handle */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_init_sec_context)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_cred_id_t,     /* initiator_cred_handle */
 | |
|  gss_ctx_id_t *,          /* context_handle */
 | |
|  const gss_name_t,        /* target_name */
 | |
|  const gss_OID,           /* mech_type */
 | |
|  OM_uint32,               /* req_flags */
 | |
|  OM_uint32,               /* time_req */
 | |
|  const gss_channel_bindings_t, /* input_chan_bindings */
 | |
|  const gss_buffer_t,      /* input_token */
 | |
|  gss_OID *,               /* actual_mech_type */
 | |
|  gss_buffer_t,            /* output_token */
 | |
|  OM_uint32 *,             /* ret_flags */
 | |
|  OM_uint32 *              /* time_rec */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_accept_sec_context)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  gss_ctx_id_t *,          /* context_handle */
 | |
|  const gss_cred_id_t,     /* acceptor_cred_handle */
 | |
|  const gss_buffer_t,      /* input_token_buffer */
 | |
|  const gss_channel_bindings_t, /* input_chan_bindings */
 | |
|  gss_name_t *,            /* src_name */
 | |
|  gss_OID *,               /* mech_type */
 | |
|  gss_buffer_t,            /* output_token */
 | |
|  OM_uint32 *,             /* ret_flags */
 | |
|  OM_uint32 *,             /* time_rec */
 | |
|  gss_cred_id_t *          /* delegated_cred_handle */
 | |
|               );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_process_context_token)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_ctx_id_t,      /* context_handle */
 | |
|  const gss_buffer_t       /* token_buffer */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_delete_sec_context)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  gss_ctx_id_t *,          /* context_handle */
 | |
|  gss_buffer_t             /* output_token */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_context_time)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_ctx_id_t,      /* context_handle */
 | |
|  OM_uint32 *              /* time_rec */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_get_mic)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_ctx_id_t,      /* context_handle */
 | |
|  gss_qop_t,               /* qop_req */
 | |
|  const gss_buffer_t,      /* message_buffer */
 | |
|  gss_buffer_t             /* message_token */
 | |
|  );
 | |
| 
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_verify_mic)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_ctx_id_t,      /* context_handle */
 | |
|  const gss_buffer_t,      /* message_buffer */
 | |
|  const gss_buffer_t,      /* token_buffer */
 | |
|  gss_qop_t *              /* qop_state */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_wrap)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_ctx_id_t,      /* context_handle */
 | |
|  int,                     /* conf_req_flag */
 | |
|  gss_qop_t,               /* qop_req */
 | |
|  const gss_buffer_t,      /* input_message_buffer */
 | |
|  int *,                   /* conf_state */
 | |
|  gss_buffer_t             /* output_message_buffer */
 | |
|  );
 | |
| 
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_unwrap)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_ctx_id_t,      /* context_handle */
 | |
|  const gss_buffer_t,      /* input_message_buffer */
 | |
|  gss_buffer_t,            /* output_message_buffer */
 | |
|  int *,                   /* conf_state */
 | |
|  gss_qop_t *              /* qop_state */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_display_status)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  OM_uint32,               /* status_value */
 | |
|  int,                     /* status_type */
 | |
|  const gss_OID,           /* mech_type */
 | |
|  OM_uint32 *,             /* message_context */
 | |
|  gss_buffer_t             /* status_string */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_indicate_mechs)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  gss_OID_set *            /* mech_set */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_compare_name)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_name_t,        /* name1 */
 | |
|  const gss_name_t,        /* name2 */
 | |
|  int *                    /* name_equal */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_display_name)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_name_t,        /* input_name */
 | |
|  gss_buffer_t,            /* output_name_buffer */
 | |
|  gss_OID *                /* output_name_type */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_import_name)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_buffer_t,      /* input_name_buffer */
 | |
|  const gss_OID,           /* input_name_type */
 | |
|  gss_name_t *             /* output_name */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_export_name)
 | |
| (OM_uint32  *,            /* minor_status */
 | |
|  const gss_name_t,        /* input_name */
 | |
|  gss_buffer_t             /* exported_name */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_release_name)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  gss_name_t *             /* input_name */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_release_buffer)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  gss_buffer_t             /* buffer */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_release_oid_set)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  gss_OID_set *            /* set */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_inquire_cred)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_cred_id_t,     /* cred_handle */
 | |
|  gss_name_t *,            /* name */
 | |
|  OM_uint32 *,             /* lifetime */
 | |
|  gss_cred_usage_t *,      /* cred_usage */
 | |
|  gss_OID_set *            /* mechanisms */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_inquire_context)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_ctx_id_t,      /* context_handle */
 | |
|  gss_name_t *,            /* src_name */
 | |
|  gss_name_t *,            /* targ_name */
 | |
|  OM_uint32 *,             /* lifetime_rec */
 | |
|  gss_OID *,               /* mech_type */
 | |
|  OM_uint32 *,             /* ctx_flags */
 | |
|  int *,                   /* locally_initiated */
 | |
|  int *                    /* open */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_wrap_size_limit)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_ctx_id_t,      /* context_handle */
 | |
|  int,                     /* conf_req_flag */
 | |
|  gss_qop_t,               /* qop_req */
 | |
|  OM_uint32,               /* req_output_size */
 | |
|  OM_uint32 *              /* max_input_size */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_add_cred)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_cred_id_t,     /* input_cred_handle */
 | |
|  const gss_name_t,        /* desired_name */
 | |
|  const gss_OID,           /* desired_mech */
 | |
|  gss_cred_usage_t,        /* cred_usage */
 | |
|  OM_uint32,               /* initiator_time_req */
 | |
|  OM_uint32,               /* acceptor_time_req */
 | |
|  gss_cred_id_t *,         /* output_cred_handle */
 | |
|  gss_OID_set *,           /* actual_mechs */
 | |
|  OM_uint32 *,             /* initiator_time_rec */
 | |
|  OM_uint32 *              /* acceptor_time_rec */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_inquire_cred_by_mech)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_cred_id_t,     /* cred_handle */
 | |
|  const gss_OID,           /* mech_type */
 | |
|  gss_name_t *,            /* name */
 | |
|  OM_uint32 *,             /* initiator_lifetime */
 | |
|  OM_uint32 *,             /* acceptor_lifetime */
 | |
|  gss_cred_usage_t *       /* cred_usage */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_export_sec_context)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  gss_ctx_id_t *,          /* context_handle */
 | |
|  gss_buffer_t             /* interprocess_token */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_import_sec_context)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_buffer_t,      /* interprocess_token */
 | |
|  gss_ctx_id_t *           /* context_handle */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_create_empty_oid_set)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  gss_OID_set *            /* oid_set */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_add_oid_set_member)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_OID,           /* member_oid */
 | |
|  gss_OID_set *            /* oid_set */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_test_oid_set_member)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_OID,           /* member */
 | |
|  const gss_OID_set,       /* set */
 | |
|  int *                    /* present */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_inquire_names_for_mech)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_OID,           /* mechanism */
 | |
|  gss_OID_set *            /* name_types */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_inquire_mechs_for_name)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_name_t,        /* input_name */
 | |
|  gss_OID_set *            /* mech_types */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_canonicalize_name)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_name_t,        /* input_name */
 | |
|  const gss_OID,           /* mech_type */
 | |
|  gss_name_t *             /* output_name */
 | |
|  );
 | |
| 
 | |
| GSS_MAKE_TYPEDEF
 | |
| OM_uint32
 | |
| GSS_CALLCONV GSS_FUNC(gss_duplicate_name)
 | |
| (OM_uint32 *,             /* minor_status */
 | |
|  const gss_name_t,        /* src_name */
 | |
|  gss_name_t *             /* dest_name */
 | |
|  );
 | |
| 
 | |
|    /*
 | |
|     * The following routines are obsolete variants of gss_get_mic,
 | |
|     * gss_verify_mic, gss_wrap and gss_unwrap.  They should be
 | |
|     * provided by GSSAPI V2 implementations for backwards
 | |
|     * compatibility with V1 applications.  Distinct entrypoints
 | |
|     * (as opposed to #defines) should be provided, both to allow
 | |
|     * GSSAPI V1 applications to link against GSSAPI V2 implementations,
 | |
|     * and to retain the slight parameter type differences between the
 | |
|     * obsolete versions of these routines and their current forms.
 | |
|     */
 | |
| 
 | |
|    GSS_MAKE_TYPEDEF
 | |
|    OM_uint32
 | |
|    GSS_CALLCONV GSS_FUNC(gss_sign)
 | |
|               (OM_uint32 *,        /* minor_status */
 | |
|                gss_ctx_id_t,       /* context_handle */
 | |
|                int,                /* qop_req */
 | |
|                gss_buffer_t,       /* message_buffer */
 | |
|                gss_buffer_t        /* message_token */
 | |
|               );
 | |
| 
 | |
| 
 | |
|    GSS_MAKE_TYPEDEF
 | |
|    OM_uint32
 | |
|    GSS_CALLCONV GSS_FUNC(gss_verify)
 | |
|               (OM_uint32 *,        /* minor_status */
 | |
|                gss_ctx_id_t,       /* context_handle */
 | |
|                gss_buffer_t,       /* message_buffer */
 | |
|                gss_buffer_t,       /* token_buffer */
 | |
|                int *               /* qop_state */
 | |
|               );
 | |
| 
 | |
|    GSS_MAKE_TYPEDEF
 | |
|    OM_uint32
 | |
|    GSS_CALLCONV GSS_FUNC(gss_seal)
 | |
|               (OM_uint32 *,        /* minor_status */
 | |
|                gss_ctx_id_t,       /* context_handle */
 | |
|                int,                /* conf_req_flag */
 | |
|                int,                /* qop_req */
 | |
|                gss_buffer_t,       /* input_message_buffer */
 | |
|                int *,              /* conf_state */
 | |
|                gss_buffer_t        /* output_message_buffer */
 | |
|               );
 | |
| 
 | |
| 
 | |
|    GSS_MAKE_TYPEDEF
 | |
|    OM_uint32
 | |
|    GSS_CALLCONV GSS_FUNC(gss_unseal)
 | |
|               (OM_uint32 *,        /* minor_status */
 | |
|                gss_ctx_id_t,       /* context_handle */
 | |
|                gss_buffer_t,       /* input_message_buffer */
 | |
|                gss_buffer_t,       /* output_message_buffer */
 | |
|                int *,              /* conf_state */
 | |
|                int *               /* qop_state */
 | |
|               );
 | |
| 
 | |
| 
 | |
| #if defined(XP_MACOSX)
 | |
| #    pragma pack(pop)
 | |
| #endif
 | |
| 
 | |
| EXTERN_C_END
 | |
| 
 | |
| #endif /* GSSAPI_H_ */
 | |
| 
 |