forked from mirrors/gecko-dev
		
	 d5d2b965d2
			
		
	
	
		d5d2b965d2
		
	
	
	
	
		
			
			Don't pragma pack gssapi structs on ARM64 to be consistent with macOS system gssapi.h header file. Issue reported to reported to Apple and acknowledged. Differential Revision: https://phabricator.services.mozilla.com/D102361
		
			
				
	
	
		
			792 lines
		
	
	
	
		
			24 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			792 lines
		
	
	
	
		
			24 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* vim:set ts=4 sw=2 sts=2 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) && !defined(__aarch64__)
 | |
| #  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) && !defined(__aarch64__)
 | |
| #  pragma pack(pop)
 | |
| #endif
 | |
| 
 | |
| EXTERN_C_END
 | |
| 
 | |
| #endif /* GSSAPI_H_ */
 |