Home | History | Annotate | Download | only in gssapi
      1  0  stevel /*
      2  0  stevel  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
      3  0  stevel  * Use is subject to license terms.
      4  0  stevel  */
      5  0  stevel 
      6  0  stevel /*
      7  0  stevel  * Copyright 1993 by OpenVision Technologies, Inc.
      8  0  stevel  *
      9  0  stevel  * Permission to use, copy, modify, distribute, and sell this software
     10  0  stevel  * and its documentation for any purpose is hereby granted without fee,
     11  0  stevel  * provided that the above copyright notice appears in all copies and
     12  0  stevel  * that both that copyright notice and this permission notice appear in
     13  0  stevel  * supporting documentation, and that the name of OpenVision not be used
     14  0  stevel  * in advertising or publicity pertaining to distribution of the software
     15  0  stevel  * without specific, written prior permission. OpenVision makes no
     16  0  stevel  * representations about the suitability of this software for any
     17  0  stevel  * purpose.  It is provided "as is" without express or implied warranty.
     18  0  stevel  *
     19  0  stevel  * OPENVISION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
     20  0  stevel  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
     21  0  stevel  * EVENT SHALL OPENVISION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
     22  0  stevel  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
     23  0  stevel  * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
     24  0  stevel  * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
     25  0  stevel  * PERFORMANCE OF THIS SOFTWARE.
     26  0  stevel  */
     27  0  stevel 
     28  0  stevel #ifndef	_GSSAPI_H_
     29  0  stevel #define	_GSSAPI_H_
     30  0  stevel 
     31  0  stevel #pragma ident	"%Z%%M%	%I%	%E% SMI"
     32  0  stevel 
     33  0  stevel #ifdef	__cplusplus
     34  0  stevel extern "C" {
     35  0  stevel #endif
     36  0  stevel 
     37  0  stevel 
     38  0  stevel /*
     39  0  stevel  * First, include sys/types.h to get size_t defined.
     40  0  stevel  */
     41  0  stevel #include <sys/types.h>
     42  0  stevel 
     43  0  stevel /*
     44  0  stevel  * If the platform supports the xom.h header file, it should be
     45  0  stevel  * included here.
     46  0  stevel  */
     47  0  stevel #ifdef HAVE_XOM_H
     48  0  stevel #include <xom.h>
     49  0  stevel #endif
     50  0  stevel 
     51  0  stevel /*
     52  0  stevel  * Now define the three implementation-dependent types.
     53  0  stevel  */
     54  0  stevel struct gss_ctx_id;
     55  0  stevel struct gss_cred_id;
     56  0  stevel struct gss_name;
     57  0  stevel 
     58  0  stevel typedef struct gss_ctx_id  *gss_ctx_id_t;
     59  0  stevel typedef struct gss_cred_id *gss_cred_id_t;
     60  0  stevel typedef struct gss_name *gss_name_t;
     61  0  stevel 
     62  0  stevel /*
     63  0  stevel  * The following type must be defined as the smallest natural
     64  0  stevel  * unsigned integer supported by the platform that has at least
     65  0  stevel  * 32 bits of precision.
     66  0  stevel  */
     67  0  stevel typedef unsigned int gss_uint32;
     68  0  stevel typedef int gss_int32;
     69  0  stevel 
     70  0  stevel 
     71  0  stevel #ifdef OM_STRING
     72  0  stevel /*
     73  0  stevel  * We have included the xom.h header file.  Verify that OM_uint32
     74  0  stevel  * is defined correctly.
     75  0  stevel  */
     76  0  stevel 
     77  0  stevel #if sizeof (gss_uint32) != sizeof (OM_uint32)
     78  0  stevel #error Incompatible definition of OM_uint32 from xom.h
     79  0  stevel #endif
     80  0  stevel 
     81  0  stevel typedef OM_object_identifier gss_OID_desc, *gss_OID;
     82  0  stevel 
     83  0  stevel #else
     84  0  stevel 
     85  0  stevel 
     86  0  stevel 
     87  0  stevel /*
     88  0  stevel  * We can't use X/Open definitions, so roll our own.
     89  0  stevel  */
     90  0  stevel 
     91  0  stevel typedef gss_uint32 OM_uint32;
     92  0  stevel 
     93  0  stevel typedef struct gss_OID_desc_struct {
     94  0  stevel 	OM_uint32 length;
     95  0  stevel 	void*elements;
     96  0  stevel } gss_OID_desc, *gss_OID;
     97  0  stevel 
     98  0  stevel #endif
     99  0  stevel 
    100  0  stevel typedef struct gss_OID_set_desc_struct	{
    101  0  stevel 	size_t  count;
    102  0  stevel 	gss_OID elements;
    103  0  stevel } gss_OID_set_desc, *gss_OID_set;
    104  0  stevel 
    105  0  stevel #ifdef	_SYSCALL32
    106  0  stevel typedef struct gss_OID_desc_struct32 {
    107  0  stevel 	OM_uint32 length;
    108  0  stevel 	caddr32_t elements;
    109  0  stevel } gss_OID_desc32, *gss_OID32;
    110  0  stevel #endif	/* _SYSCALL32 */
    111  0  stevel 
    112  0  stevel typedef struct gss_buffer_desc_struct {
    113  0  stevel 	size_t length;
    114  0  stevel 	void *value;
    115  0  stevel } gss_buffer_desc, *gss_buffer_t;
    116  0  stevel 
    117  0  stevel typedef struct gss_channel_bindings_struct {
    118  0  stevel 	OM_uint32 initiator_addrtype;
    119  0  stevel 	gss_buffer_desc initiator_address;
    120  0  stevel 	OM_uint32 acceptor_addrtype;
    121  0  stevel 	gss_buffer_desc acceptor_address;
    122  0  stevel 	gss_buffer_desc application_data;
    123  0  stevel } *gss_channel_bindings_t;
    124  0  stevel 
    125  0  stevel /*
    126  0  stevel  * For now, define a QOP-type as an OM_uint32
    127  0  stevel  */
    128  0  stevel typedef	OM_uint32 gss_qop_t;
    129  0  stevel typedef	int gss_cred_usage_t;
    130  0  stevel 
    131  0  stevel /*
    132  0  stevel  * Flag bits for context-level services.
    133  0  stevel  */
    134  0  stevel #define	GSS_C_DELEG_FLAG 1
    135  0  stevel #define	GSS_C_MUTUAL_FLAG 2
    136  0  stevel #define	GSS_C_REPLAY_FLAG 4
    137  0  stevel #define	GSS_C_SEQUENCE_FLAG 8
    138  0  stevel #define	GSS_C_CONF_FLAG 16
    139  0  stevel #define	GSS_C_INTEG_FLAG 32
    140  0  stevel #define	GSS_C_ANON_FLAG 64
    141  0  stevel #define	GSS_C_PROT_READY_FLAG 128
    142  0  stevel #define	GSS_C_TRANS_FLAG 256
    143  0  stevel 
    144  0  stevel /*
    145  0  stevel  * Credential usage options
    146  0  stevel  */
    147  0  stevel #define	GSS_C_BOTH 0
    148  0  stevel #define	GSS_C_INITIATE 1
    149  0  stevel #define	GSS_C_ACCEPT 2
    150  0  stevel 
    151  0  stevel /*
    152  0  stevel  * Status code types for gss_display_status
    153  0  stevel  */
    154  0  stevel #define	GSS_C_GSS_CODE 1
    155  0  stevel #define	GSS_C_MECH_CODE 2
    156  0  stevel 
    157  0  stevel /*
    158  0  stevel  * The constant definitions for channel-bindings address families
    159  0  stevel  */
    160  0  stevel #define	GSS_C_AF_UNSPEC		0
    161  0  stevel #define	GSS_C_AF_LOCAL		1
    162  0  stevel #define	GSS_C_AF_INET		2
    163  0  stevel #define	GSS_C_AF_IMPLINK	3
    164  0  stevel #define	GSS_C_AF_PUP		4
    165  0  stevel #define	GSS_C_AF_CHAOS		5
    166  0  stevel #define	GSS_C_AF_NS		6
    167  0  stevel #define	GSS_C_AF_NBS		7
    168  0  stevel #define	GSS_C_AF_ECMA		8
    169  0  stevel #define	GSS_C_AF_DATAKIT	9
    170  0  stevel #define	GSS_C_AF_CCITT		10
    171  0  stevel #define	GSS_C_AF_SNA		11
    172  0  stevel #define	GSS_C_AF_DECnet		12
    173  0  stevel #define	GSS_C_AF_DLI		13
    174  0  stevel #define	GSS_C_AF_LAT		14
    175  0  stevel #define	GSS_C_AF_HYLINK		15
    176  0  stevel #define	GSS_C_AF_APPLETALK	16
    177  0  stevel #define	GSS_C_AF_BSC		17
    178  0  stevel #define	GSS_C_AF_DSS		18
    179  0  stevel #define	GSS_C_AF_OSI		19
    180  0  stevel #define	GSS_C_AF_X25		21
    181  0  stevel 
    182  0  stevel #define	GSS_C_AF_NULLADDR	255
    183  0  stevel 
    184  0  stevel /*
    185  0  stevel  * Various Null values
    186  0  stevel  */
    187  0  stevel #define	GSS_C_NO_NAME ((gss_name_t) 0)
    188  0  stevel #define	GSS_C_NO_BUFFER ((gss_buffer_t) 0)
    189  0  stevel #define	GSS_C_NO_OID ((gss_OID) 0)
    190  0  stevel #define	GSS_C_NO_OID_SET ((gss_OID_set) 0)
    191  0  stevel #define	GSS_C_NO_CONTEXT ((gss_ctx_id_t) 0)
    192  0  stevel #define	GSS_C_NO_CREDENTIAL ((gss_cred_id_t) 0)
    193  0  stevel #define	GSS_C_NO_CHANNEL_BINDINGS ((gss_channel_bindings_t) 0)
    194  0  stevel #define	GSS_C_EMPTY_BUFFER {0, NULL}
    195  0  stevel 
    196  0  stevel /*
    197  0  stevel  * Some alternate names for a couple of the above
    198  0  stevel  * values.  These are defined for V1 compatibility.
    199  0  stevel  */
    200  0  stevel #define	GSS_C_NULL_OID		GSS_C_NO_OID
    201  0  stevel #define	GSS_C_NULL_OID_SET	GSS_C_NO_OID_SET
    202  0  stevel 
    203  0  stevel /*
    204  0  stevel  * Define the default Quality of Protection for per-message
    205  0  stevel  * services.  Note that an implementation that offers multiple
    206  0  stevel  * levels of QOP may define GSS_C_QOP_DEFAULT to be either zero
    207  0  stevel  * (as done here) to mean "default protection", or to a specific
    208  0  stevel  * explicit QOP value.  However, a value of 0 should always be
    209  0  stevel  * interpreted by a GSSAPI implementation as a request for the
    210  0  stevel  * default protection level.
    211  0  stevel  */
    212  0  stevel #define	GSS_C_QOP_DEFAULT 0
    213  0  stevel 
    214  0  stevel /*
    215  0  stevel  * Expiration time of 2^32-1 seconds means infinite lifetime for a
    216  0  stevel  * credential or security context
    217  0  stevel  */
    218  0  stevel #define	GSS_C_INDEFINITE ((OM_uint32) 0xfffffffful)
    219  0  stevel 
    220  0  stevel /*
    221  0  stevel  * The implementation must reserve static storage for a
    222  0  stevel  * gss_OID_desc object containing the value
    223  0  stevel  * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
    224  0  stevel  *  "\x01\x02\x01\x01"},
    225  0  stevel  * corresponding to an object-identifier value of
    226  0  stevel  * {iso(1) member-body(2) United States(840) mit(113554)
    227  0  stevel  *  infosys(1) gssapi(2) generic(1) user_name(1)}.  The constant
    228  0  stevel  * GSS_C_NT_USER_NAME should be initialized to point
    229  0  stevel  * to that gss_OID_desc.
    230  0  stevel  */
    231  0  stevel extern const gss_OID GSS_C_NT_USER_NAME;
    232  0  stevel 
    233  0  stevel /*
    234  0  stevel  * The implementation must reserve static storage for a
    235  0  stevel  * gss_OID_desc object containing the value
    236  0  stevel  * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
    237  0  stevel  *  "\x01\x02\x01\x02"},
    238  0  stevel  * corresponding to an object-identifier value of
    239  0  stevel  * {iso(1) member-body(2) United States(840) mit(113554)
    240  0  stevel  *  infosys(1) gssapi(2) generic(1) machine_uid_name(2)}.
    241  0  stevel  * The constant GSS_C_NT_MACHINE_UID_NAME should be
    242  0  stevel  * initialized to point to that gss_OID_desc.
    243  0  stevel  */
    244  0  stevel extern const gss_OID GSS_C_NT_MACHINE_UID_NAME;
    245  0  stevel 
    246  0  stevel /*
    247  0  stevel  * The implementation must reserve static storage for a
    248  0  stevel  * gss_OID_desc object containing the value
    249  0  stevel  * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
    250  0  stevel  *  "\x01\x02\x01\x03"},
    251  0  stevel  * corresponding to an object-identifier value of
    252  0  stevel  * {iso(1) member-body(2) United States(840) mit(113554)
    253  0  stevel  *  infosys(1) gssapi(2) generic(1) string_uid_name(3)}.
    254  0  stevel  * The constant GSS_C_NT_STRING_UID_NAME should be
    255  0  stevel  * initialized to point to that gss_OID_desc.
    256  0  stevel  */
    257  0  stevel extern const gss_OID GSS_C_NT_STRING_UID_NAME;
    258  0  stevel 
    259  0  stevel /*
    260  0  stevel  * The implementation must reserve static storage for a
    261  0  stevel  * gss_OID_desc object containing the value
    262  0  stevel  * {6, (void *)"\x2b\x06\x01\x05\x06\x02"},
    263  0  stevel  * corresponding to an object-identifier value of
    264  0  stevel  * {1(iso), 3(org), 6(dod), 1(internet), 5(security),
    265  0  stevel  * 6(nametypes), 2(gss-host-based-services)}.  The constant
    266  0  stevel  * GSS_C_NT_HOSTBASED_SERVICE should be initialized to point
    267  0  stevel  * to that gss_OID_desc.
    268  0  stevel  */
    269  0  stevel extern const gss_OID GSS_C_NT_HOSTBASED_SERVICE;
    270  0  stevel 
    271  0  stevel /*
    272  0  stevel  * The implementation must reserve static storage for a
    273  0  stevel  * gss_OID_desc object containing the value
    274  0  stevel  * {6, (void *)"\x2b\x06\01\x05\x06\x03"},
    275  0  stevel  * corresponding to an object identifier value of
    276  0  stevel  * {1(iso), 3(org), 6(dod), 1(internet), 5(security),
    277  0  stevel  * 6(nametypes), 3(gss-anonymous-name)}.  The constant
    278  0  stevel  * and GSS_C_NT_ANONYMOUS should be initialized to point
    279  0  stevel  * to that gss_OID_desc.
    280  0  stevel  */
    281  0  stevel extern const gss_OID GSS_C_NT_ANONYMOUS;
    282  0  stevel 
    283  0  stevel /*
    284  0  stevel  * The implementation must reserve static storage for a
    285  0  stevel  * gss_OID_desc object containing the value
    286  0  stevel  * {6, (void *)"\x2b\x06\x01\x05\x06\x04"},
    287  0  stevel  * corresponding to an object-identifier value of
    288  0  stevel  * {1(iso), 3(org), 6(dod), 1(internet), 5(security),
    289  0  stevel  * 6(nametypes), 4(gss-api-exported-name)}.  The constant
    290  0  stevel  * GSS_C_NT_EXPORT_NAME should be initialized to point
    291  0  stevel  * to that gss_OID_desc.
    292  0  stevel  */
    293  0  stevel extern const gss_OID GSS_C_NT_EXPORT_NAME;
    294  0  stevel 
    295  0  stevel 
    296  0  stevel /* Major status codes */
    297  0  stevel 
    298  0  stevel #define	GSS_S_COMPLETE 0
    299  0  stevel 
    300  0  stevel /*
    301  0  stevel  * Some "helper" definitions to make the status code macros obvious.
    302  0  stevel  */
    303  0  stevel #define	GSS_C_CALLING_ERROR_OFFSET 24
    304  0  stevel #define	GSS_C_ROUTINE_ERROR_OFFSET 16
    305  0  stevel #define	GSS_C_SUPPLEMENTARY_OFFSET 0
    306  0  stevel #define	GSS_C_CALLING_ERROR_MASK ((OM_uint32) 0377ul)
    307  0  stevel #define	GSS_C_ROUTINE_ERROR_MASK ((OM_uint32) 0377ul)
    308  0  stevel #define	GSS_C_SUPPLEMENTARY_MASK ((OM_uint32) 0177777ul)
    309  0  stevel 
    310  0  stevel /*
    311  0  stevel  * The macros that test status codes for error conditions.
    312  0  stevel  * Note that the GSS_ERROR() macro has changed slightly from
    313  0  stevel  * the V1 GSSAPI so that it now evaluates its argument
    314  0  stevel  * only once.
    315  0  stevel  */
    316  0  stevel #define	GSS_CALLING_ERROR(x) \
    317  0  stevel 	((x) & (GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET))
    318  0  stevel #define	GSS_ROUTINE_ERROR(x) \
    319  0  stevel 	((x) & (GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET))
    320  0  stevel #define	GSS_SUPPLEMENTARY_INFO(x) \
    321  0  stevel 	((x) & (GSS_C_SUPPLEMENTARY_MASK << GSS_C_SUPPLEMENTARY_OFFSET))
    322  0  stevel #define	GSS_ERROR(x) \
    323  0  stevel 	((x) & ((GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET) | \
    324  0  stevel 	(GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET)))
    325  0  stevel 
    326  0  stevel /*
    327  0  stevel  * Now the actual status code definitions
    328  0  stevel  */
    329  0  stevel 
    330  0  stevel /*
    331  0  stevel  * Calling errors:
    332  0  stevel  */
    333  0  stevel #define	GSS_S_CALL_INACCESSIBLE_READ \
    334  0  stevel 	(((OM_uint32) 1ul) << GSS_C_CALLING_ERROR_OFFSET)
    335  0  stevel #define	GSS_S_CALL_INACCESSIBLE_WRITE \
    336  0  stevel 	(((OM_uint32) 2ul) << GSS_C_CALLING_ERROR_OFFSET)
    337  0  stevel #define	GSS_S_CALL_BAD_STRUCTURE \
    338  0  stevel 	(((OM_uint32) 3ul) << GSS_C_CALLING_ERROR_OFFSET)
    339  0  stevel 
    340  0  stevel /*
    341  0  stevel  * Routine errors:
    342  0  stevel  */
    343  0  stevel #define	GSS_S_BAD_MECH (((OM_uint32) 1ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    344  0  stevel #define	GSS_S_BAD_NAME (((OM_uint32) 2ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    345  0  stevel #define	GSS_S_BAD_NAMETYPE (((OM_uint32) 3ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    346  0  stevel #define	GSS_S_BAD_BINDINGS (((OM_uint32) 4ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    347  0  stevel #define	GSS_S_BAD_STATUS (((OM_uint32) 5ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    348  0  stevel #define	GSS_S_BAD_SIG (((OM_uint32) 6ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    349  0  stevel #define	GSS_S_BAD_MIC GSS_S_BAD_SIG
    350  0  stevel #define	GSS_S_NO_CRED (((OM_uint32) 7ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    351  0  stevel #define	GSS_S_NO_CONTEXT (((OM_uint32) 8ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    352  0  stevel #define	GSS_S_DEFECTIVE_TOKEN (((OM_uint32) 9ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    353  0  stevel #define	GSS_S_DEFECTIVE_CREDENTIAL \
    354  0  stevel 	(((OM_uint32) 10ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    355  0  stevel #define	GSS_S_CREDENTIALS_EXPIRED \
    356  0  stevel 	(((OM_uint32) 11ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    357  0  stevel #define	GSS_S_CONTEXT_EXPIRED \
    358  0  stevel 	(((OM_uint32) 12ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    359  0  stevel #define	GSS_S_FAILURE (((OM_uint32) 13ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    360  0  stevel #define	GSS_S_BAD_QOP (((OM_uint32) 14ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    361  0  stevel #define	GSS_S_UNAUTHORIZED (((OM_uint32) 15ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    362  0  stevel #define	GSS_S_UNAVAILABLE (((OM_uint32) 16ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    363  0  stevel #define	GSS_S_DUPLICATE_ELEMENT \
    364  0  stevel 	(((OM_uint32) 17ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    365  0  stevel #define	GSS_S_NAME_NOT_MN (((OM_uint32) 18ul) << GSS_C_ROUTINE_ERROR_OFFSET)
    366  0  stevel 
    367  0  stevel /*
    368  0  stevel  * Supplementary info bits:
    369  0  stevel  */
    370  0  stevel #define	GSS_S_CONTINUE_NEEDED (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 0))
    371  0  stevel #define	GSS_S_DUPLICATE_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 1))
    372  0  stevel #define	GSS_S_OLD_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 2))
    373  0  stevel #define	GSS_S_UNSEQ_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 3))
    374  0  stevel #define	GSS_S_GAP_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 4))
    375  0  stevel 
    376  0  stevel 
    377  0  stevel /*
    378  0  stevel  * Finally, function prototypes for the GSS-API routines.
    379  0  stevel  */
    380  0  stevel 
    381  0  stevel OM_uint32 gss_acquire_cred(
    382  0  stevel 	OM_uint32 *,		/* minor_status */
    383  0  stevel 	const gss_name_t,	/* desired_name */
    384  0  stevel 	OM_uint32,		/* time_req */
    385  0  stevel 	const gss_OID_set,	/* desired_mechs */
    386  0  stevel 	gss_cred_usage_t,	/* cred_usage */
    387  0  stevel 	gss_cred_id_t *,	/* output_cred_handle */
    388  0  stevel 	gss_OID_set *,		/* actual_mechs */
    389  0  stevel 	OM_uint32 *		/* time_rec */
    390  0  stevel );
    391  0  stevel 
    392  0  stevel OM_uint32 gss_release_cred(
    393  0  stevel 	OM_uint32 *,		/* minor_status */
    394  0  stevel 	gss_cred_id_t *		/* cred_handle */
    395  0  stevel );
    396  0  stevel 
    397  0  stevel OM_uint32 gss_init_sec_context(
    398  0  stevel 	OM_uint32 *,		/* minor_status */
    399  0  stevel 	const gss_cred_id_t,	/* initiator_cred_handle */
    400  0  stevel 	gss_ctx_id_t *,		/* context_handle */
    401  0  stevel 	const gss_name_t,	/* target_name */
    402  0  stevel 	const gss_OID,		/* mech_type */
    403  0  stevel 	OM_uint32,		/* req_flags */
    404  0  stevel 	OM_uint32,		/* time_req */
    405  0  stevel 	gss_channel_bindings_t,	/* input_chan_bindings */
    406  0  stevel 	const gss_buffer_t,	/* input_token */
    407  0  stevel 	gss_OID *,		/* actual_mech_type */
    408  0  stevel 	gss_buffer_t,		/* output_token */
    409  0  stevel 	OM_uint32 *,		/* ret_flags */
    410  0  stevel 	OM_uint32 *		/* time_rec */
    411  0  stevel );
    412  0  stevel 
    413  0  stevel OM_uint32 gss_accept_sec_context(
    414  0  stevel 	OM_uint32 *,		/* minor_status */
    415  0  stevel 	gss_ctx_id_t *,		/* context_handle */
    416  0  stevel 	const gss_cred_id_t,	/* acceptor_cred_handle */
    417  0  stevel 	const gss_buffer_t,	/* input_token_buffer */
    418  0  stevel 	const gss_channel_bindings_t,	/* input_chan_bindings */
    419  0  stevel 	gss_name_t *,		/* src_name */
    420  0  stevel 	gss_OID *,		/* mech_type */
    421  0  stevel 	gss_buffer_t,		/* output_token */
    422  0  stevel 	OM_uint32 *,		/* ret_flags */
    423  0  stevel 	OM_uint32 *,		/* time_rec */
    424  0  stevel 	gss_cred_id_t *		/* delegated_cred_handle */
    425  0  stevel );
    426  0  stevel 
    427  0  stevel OM_uint32 gss_process_context_token(
    428  0  stevel 	OM_uint32 *,		/* minor_status */
    429  0  stevel 	const gss_ctx_id_t,	/* context_handle */
    430  0  stevel 	const gss_buffer_t	/* token_buffer */
    431  0  stevel );
    432  0  stevel 
    433  0  stevel OM_uint32 gss_delete_sec_context(
    434  0  stevel 	OM_uint32 *,		/* minor_status */
    435  0  stevel 	gss_ctx_id_t *,		/* context_handle */
    436  0  stevel 	gss_buffer_t		/* output_token */
    437  0  stevel );
    438  0  stevel 
    439  0  stevel OM_uint32 gss_context_time(
    440  0  stevel 	OM_uint32 *,		/* minor_status */
    441  0  stevel 	const gss_ctx_id_t,	/* context_handle */
    442  0  stevel 	OM_uint32 *		/* time_rec */
    443  0  stevel );
    444  0  stevel 
    445  0  stevel OM_uint32 gss_get_mic(
    446  0  stevel 	OM_uint32 *,		/* minor_status */
    447  0  stevel 	const gss_ctx_id_t,	/* context_handle */
    448  0  stevel 	gss_qop_t,		/* qop_req */
    449  0  stevel 	const gss_buffer_t,	/* message_buffer */
    450  0  stevel 	gss_buffer_t		/* message_token */
    451  0  stevel );
    452  0  stevel 
    453  0  stevel OM_uint32 gss_verify_mic(
    454  0  stevel 	OM_uint32 *,		/* minor_status */
    455  0  stevel 	const gss_ctx_id_t,	/* context_handle */
    456  0  stevel 	const gss_buffer_t,	/* message_buffer */
    457  0  stevel 	const gss_buffer_t,	/* token_buffer */
    458  0  stevel 	gss_qop_t *		/* qop_state */
    459  0  stevel );
    460  0  stevel 
    461  0  stevel OM_uint32 gss_wrap(
    462  0  stevel 	OM_uint32 *,		/* minor_status */
    463  0  stevel 	const gss_ctx_id_t,	/* context_handle */
    464  0  stevel 	int,			/* conf_req_flag */
    465  0  stevel 	gss_qop_t,		/* qop_req */
    466  0  stevel 	const gss_buffer_t,	/* input_message_buffer */
    467  0  stevel 	int *,			/* conf_state */
    468  0  stevel 	gss_buffer_t		/* output_message_buffer */
    469  0  stevel );
    470  0  stevel 
    471  0  stevel OM_uint32 gss_unwrap(
    472  0  stevel 	OM_uint32 *,		/* minor_status */
    473  0  stevel 	const gss_ctx_id_t,	/* context_handle */
    474  0  stevel 	const gss_buffer_t,	/* input_message_buffer */
    475  0  stevel 	gss_buffer_t,		/* output_message_buffer */
    476  0  stevel 	int *,			/* conf_state */
    477  0  stevel 	gss_qop_t *		/* qop_state */
    478  0  stevel );
    479  0  stevel 
    480  0  stevel OM_uint32 gss_display_status(
    481  0  stevel 	OM_uint32 *,		/* minor_status */
    482  0  stevel 	OM_uint32,		/* status_value */
    483  0  stevel 	int,			/* status_type */
    484  0  stevel 	const gss_OID,		/* mech_type */
    485  0  stevel 	OM_uint32 *,		/* message_context */
    486  0  stevel 	gss_buffer_t		/* status_string */
    487  0  stevel );
    488  0  stevel 
    489  0  stevel OM_uint32 gss_indicate_mechs(
    490  0  stevel 	OM_uint32 *,		/* minor_status */
    491  0  stevel 	gss_OID_set *		/* mech_set */
    492  0  stevel );
    493  0  stevel 
    494  0  stevel OM_uint32 gss_compare_name(
    495  0  stevel 	OM_uint32 *,		/* minor_status */
    496  0  stevel 	const gss_name_t,	/* name1 */
    497  0  stevel 	const gss_name_t,	/* name2 */
    498  0  stevel 	int *			/* name_equal */
    499  0  stevel );
    500  0  stevel 
    501  0  stevel OM_uint32 gss_display_name(
    502  0  stevel 	OM_uint32 *,		/* minor_status */
    503  0  stevel 	const gss_name_t,	/* input_name */
    504  0  stevel 	gss_buffer_t,		/* output_name_buffer */
    505  0  stevel 	gss_OID *		/* output_name_type */
    506  0  stevel );
    507  0  stevel 
    508  0  stevel OM_uint32 gss_import_name(
    509  0  stevel 	OM_uint32 *,		/* minor_status */
    510  0  stevel 	const gss_buffer_t,	/* input_name_buffer */
    511  0  stevel 	const gss_OID,		/* input_name_type */
    512  0  stevel 	gss_name_t *		/* output_name */
    513  0  stevel );
    514  0  stevel 
    515  0  stevel OM_uint32 gss_export_name(
    516  0  stevel 	OM_uint32 *,		/* minor_status */
    517  0  stevel 	const gss_name_t,  	/* input_name */
    518  0  stevel 	gss_buffer_t 		/* exported_name */
    519  0  stevel );
    520  0  stevel 
    521  0  stevel OM_uint32 gss_release_name(
    522  0  stevel 	OM_uint32 *,		/* minor_status */
    523  0  stevel 	gss_name_t *		/* input_name */
    524  0  stevel );
    525  0  stevel 
    526  0  stevel OM_uint32 gss_release_buffer(
    527  0  stevel 	OM_uint32 *,		/* minor_status */
    528  0  stevel 	gss_buffer_t		/* buffer */
    529  0  stevel );
    530  0  stevel 
    531  0  stevel OM_uint32 gss_release_oid_set(
    532  0  stevel 	OM_uint32 *,		/* minor_status */
    533  0  stevel 	gss_OID_set *		/* set */
    534  0  stevel );
    535  0  stevel 
    536  0  stevel OM_uint32 gss_inquire_cred(
    537  0  stevel 	OM_uint32 *,		/* minor_status */
    538  0  stevel 	const gss_cred_id_t,	/* cred_handle */
    539  0  stevel 	gss_name_t *,		/* name */
    540  0  stevel 	OM_uint32 *,		/* lifetime */
    541  0  stevel 	gss_cred_usage_t *,	/* cred_usage */
    542  0  stevel 	gss_OID_set *		/* mechanisms */
    543  0  stevel );
    544  0  stevel 
    545  0  stevel OM_uint32 gss_inquire_context(
    546  0  stevel 	OM_uint32 *,		/* minor_status */
    547  0  stevel 	const gss_ctx_id_t,	/* context_handle */
    548  0  stevel 	gss_name_t *,		/* src_name */
    549  0  stevel 	gss_name_t *,		/* targ_name */
    550  0  stevel 	OM_uint32 *,		/* lifetime_rec */
    551  0  stevel 	gss_OID *,		/* mech_type */
    552  0  stevel 	OM_uint32 *,		/* ctx_flags */
    553  0  stevel 	int *,			/* locally_initiated */
    554  0  stevel 	int *			/* open */
    555  0  stevel );
    556  0  stevel 
    557  0  stevel OM_uint32 gss_wrap_size_limit(
    558  0  stevel 	OM_uint32 *,		/* minor_status */
    559  0  stevel 	const gss_ctx_id_t,	/* context_handle */
    560  0  stevel 	int,			/* conf_req_flag */
    561  0  stevel 	gss_qop_t,		/* qop_req */
    562  0  stevel 	OM_uint32,		/* req_output_size */
    563  0  stevel 	OM_uint32 *		/* max_input_size */
    564  0  stevel );
    565  0  stevel 
    566  0  stevel OM_uint32 gss_add_cred(
    567  0  stevel 	OM_uint32 *,		/* minor_status */
    568  0  stevel 	const gss_cred_id_t,	/* input_cred_handle */
    569  0  stevel 	const gss_name_t,	/* desired_name */
    570  0  stevel 	const gss_OID,		/* desired_mech */
    571  0  stevel 	gss_cred_usage_t,	/* cred_usage */
    572  0  stevel 	OM_uint32,		/* initiator_time_req */
    573  0  stevel 	OM_uint32,		/* acceptor_time_req */
    574  0  stevel 	gss_cred_id_t *,	/* output_cred_handle */
    575  0  stevel 	gss_OID_set *,		/* actual_mechs */
    576  0  stevel 	OM_uint32 *,		/* initiator_time_rec */
    577  0  stevel 	OM_uint32 *		/* acceptor_time_rec */
    578  0  stevel );
    579  0  stevel 
    580  0  stevel OM_uint32 gss_store_cred(
    581  0  stevel 	OM_uint32 *,		/* minor_status */
    582  0  stevel 	const gss_cred_id_t,	/* input_cred */
    583  0  stevel 	gss_cred_usage_t,	/* cred_usage */
    584  0  stevel 	const gss_OID,		/* desired_mech */
    585  0  stevel 	OM_uint32,		/* overwrite_cred */
    586  0  stevel 	OM_uint32,		/* default_cred */
    587  0  stevel 	gss_OID_set *,		/* elements_stored */
    588  0  stevel 	gss_cred_usage_t *	/* cred_usage_stored */
    589  0  stevel );
    590  0  stevel 
    591  0  stevel OM_uint32 gss_inquire_cred_by_mech(
    592  0  stevel 	OM_uint32  *,		/* minor_status */
    593  0  stevel 	const gss_cred_id_t,	/* cred_handle */
    594  0  stevel 	const gss_OID,		/* mech_type */
    595  0  stevel 	gss_name_t *,		/* name */
    596  0  stevel 	OM_uint32 *,		/* initiator_lifetime */
    597  0  stevel 	OM_uint32 *,		/* acceptor_lifetime */
    598  0  stevel 	gss_cred_usage_t *	/* cred_usage */
    599  0  stevel );
    600  0  stevel 
    601  0  stevel OM_uint32 gss_export_sec_context(
    602  0  stevel 	OM_uint32 *,		/* minor_status */
    603  0  stevel 	gss_ctx_id_t *,		/* context_handle */
    604  0  stevel 	gss_buffer_t		/* interprocess_token */
    605  0  stevel );
    606  0  stevel 
    607  0  stevel OM_uint32 gss_import_sec_context(
    608  0  stevel 	OM_uint32 *,		/* minor_status */
    609  0  stevel 	const gss_buffer_t,	/* interprocess_token */
    610  0  stevel 	gss_ctx_id_t *		/* context_handle */
    611  0  stevel );
    612  0  stevel 
    613  0  stevel OM_uint32 gss_create_empty_oid_set(
    614  0  stevel 	OM_uint32 *, 		/* minor_status */
    615  0  stevel 	gss_OID_set *		/* oid_set */
    616  0  stevel );
    617  0  stevel 
    618  0  stevel OM_uint32 gss_add_oid_set_member(
    619  0  stevel 	OM_uint32 *, 		/* minor_status */
    620  0  stevel 	const gss_OID,  	/* member_oid */
    621  0  stevel 	gss_OID_set *		/* oid_set */
    622  0  stevel );
    623  0  stevel 
    624  0  stevel OM_uint32 gss_test_oid_set_member(
    625  0  stevel 	OM_uint32 *, 		/* minor_status */
    626  0  stevel 	const gss_OID,  	/* member */
    627  0  stevel 	const gss_OID_set, 	/* set */
    628  0  stevel 	int *  			/* present */
    629  0  stevel );
    630  0  stevel 
    631  0  stevel OM_uint32 gss_inquire_names_for_mech(
    632  0  stevel 	OM_uint32 *, 		/* minor_status */
    633  0  stevel 	const gss_OID,  	/* mechanism */
    634  0  stevel 	gss_OID_set *		/* name_types */
    635  0  stevel );
    636  0  stevel 
    637  0  stevel OM_uint32 gss_inquire_mechs_for_name(
    638  0  stevel 	OM_uint32 *, 		/* minor_status */
    639  0  stevel 	const gss_name_t,  	/* input_name */
    640  0  stevel 	gss_OID_set *		/* mech_types */
    641  0  stevel );
    642  0  stevel 
    643  0  stevel OM_uint32 gss_canonicalize_name(
    644  0  stevel 	OM_uint32 *, 		/* minor_status */
    645  0  stevel 	const gss_name_t,  	/* input_name */
    646  0  stevel 	const gss_OID,  	/* mech_type */
    647  0  stevel 	gss_name_t * 		/* output_name */
    648  0  stevel );
    649  0  stevel 
    650  0  stevel OM_uint32 gss_duplicate_name(
    651  0  stevel 	OM_uint32 *, 		/* minor_status */
    652  0  stevel 	const gss_name_t,  	/* src_name */
    653  0  stevel 	gss_name_t * 		/* dest_name */
    654  0  stevel );
    655  0  stevel 
    656  0  stevel 
    657  0  stevel OM_uint32 gss_release_oid(
    658  0  stevel 	OM_uint32 *,		/* minor_status */
    659  0  stevel 	gss_OID *		/* oid */
    660  0  stevel );
    661  0  stevel 
    662  0  stevel OM_uint32 gss_str_to_oid(
    663  0  stevel 	OM_uint32 *,		/* minor_status */
    664  0  stevel 	const gss_buffer_t,	/* oid_str */
    665  0  stevel 	gss_OID *		/* oid */
    666  0  stevel );
    667  0  stevel 
    668  0  stevel OM_uint32 gss_oid_to_str(
    669  0  stevel 	OM_uint32 *,		/* minor_status */
    670  0  stevel 	const gss_OID,		/* oid */
    671  0  stevel 	gss_buffer_t		/* oid_str */
    672  0  stevel );
    673  0  stevel 
    674  0  stevel 
    675  0  stevel /*
    676  0  stevel  * The following routines are obsolete variants of gss_get_mic,
    677  0  stevel  * gss_verify_mic, gss_wrap and gss_unwrap.  They should be
    678  0  stevel  * provided by GSSAPI V2 implementations for backwards
    679  0  stevel  * compatibility with V1 applications.  Distinct entrypoints
    680  0  stevel  * (as opposed to #defines) should be provided, both to allow
    681  0  stevel  * GSSAPI V1 applications to link against GSSAPI V2 implementations,
    682  0  stevel  * and to retain the slight parameter type differences between the
    683  0  stevel  * obsolete versions of these routines and their current forms.
    684  0  stevel  */
    685  0  stevel 
    686  0  stevel OM_uint32 gss_sign(
    687  0  stevel 	OM_uint32 *,		/* minor_status */
    688  0  stevel 	gss_ctx_id_t,		/* context_handle */
    689  0  stevel 	int,			/* qop_req */
    690  0  stevel 	gss_buffer_t,		/* message_buffer */
    691  0  stevel 	gss_buffer_t		/* message_token */
    692  0  stevel );
    693  0  stevel 
    694  0  stevel OM_uint32 gss_verify(
    695  0  stevel 	OM_uint32 *,		/* minor_status */
    696  0  stevel 	gss_ctx_id_t,		/* context_handle */
    697  0  stevel 	gss_buffer_t,		/* message_buffer */
    698  0  stevel 	gss_buffer_t,		/* token_buffer */
    699  0  stevel 	int *			/* qop_state */
    700  0  stevel );
    701  0  stevel 
    702  0  stevel OM_uint32 gss_seal(
    703  0  stevel 	OM_uint32 *,		/* minor_status */
    704  0  stevel 	gss_ctx_id_t,		/* context_handle */
    705  0  stevel 	int,			/* conf_req_flag */
    706  0  stevel 	int,			/* qop_req */
    707  0  stevel 	gss_buffer_t,		/* input_message_buffer */
    708  0  stevel 	int *,			/* conf_state */
    709  0  stevel 	gss_buffer_t		/* output_message_buffer */
    710  0  stevel );
    711  0  stevel 
    712  0  stevel OM_uint32 gss_unseal(
    713  0  stevel 	OM_uint32 *,		/* minor_status */
    714  0  stevel 	gss_ctx_id_t,		/* context_handle */
    715  0  stevel 	gss_buffer_t,		/* input_message_buffer */
    716  0  stevel 	gss_buffer_t,		/* output_message_buffer */
    717  0  stevel 	int *,			/* conf_state */
    718  0  stevel 	int *			/* qop_state */
    719  0  stevel );
    720  0  stevel 
    721  0  stevel 
    722  0  stevel #ifdef _KERNEL /* For kernel */
    723  0  stevel 
    724  0  stevel #include <rpc/types.h>
    725  0  stevel 
    726  0  stevel void kgss_free_oid(gss_OID oid);
    727  0  stevel 
    728  0  stevel OM_uint32 kgss_acquire_cred(
    729  0  stevel 	OM_uint32 *,
    730  0  stevel 	const gss_name_t,
    731  0  stevel 	OM_uint32,
    732  0  stevel 	const gss_OID_set,
    733  0  stevel 	int,
    734  0  stevel 	gss_cred_id_t *,
    735  0  stevel 	gss_OID_set *,
    736  0  stevel 	OM_uint32 *,
    737  0  stevel 	uid_t);
    738  0  stevel 
    739  0  stevel OM_uint32 kgss_add_cred(
    740  0  stevel 	OM_uint32 *,
    741  0  stevel 	gss_cred_id_t,
    742  0  stevel 	gss_name_t,
    743  0  stevel 	gss_OID,
    744  0  stevel 	int,
    745  0  stevel 	int,
    746  0  stevel 	int,
    747  0  stevel 	gss_OID_set *,
    748  0  stevel 	OM_uint32 *,
    749  0  stevel 	OM_uint32 *,
    750  0  stevel 	uid_t);
    751  0  stevel 
    752  0  stevel OM_uint32 kgss_release_cred(
    753  0  stevel 	OM_uint32 *,
    754  0  stevel 	gss_cred_id_t *,
    755  0  stevel 	uid_t);
    756  0  stevel 
    757  0  stevel OM_uint32 kgss_init_sec_context(
    758  0  stevel 	OM_uint32 *,
    759  0  stevel 	const gss_cred_id_t,
    760  0  stevel 	gss_ctx_id_t *,
    761  0  stevel 	const gss_name_t,
    762  0  stevel 	const gss_OID,
    763  0  stevel 	int,
    764  0  stevel 	OM_uint32,
    765  0  stevel 	const gss_channel_bindings_t,
    766  0  stevel 	const gss_buffer_t,
    767  0  stevel 	gss_OID *,
    768  0  stevel 	gss_buffer_t,
    769  0  stevel 	int *,
    770  0  stevel 	OM_uint32 *,
    771  0  stevel 	uid_t);
    772  0  stevel 
    773  0  stevel OM_uint32 kgss_accept_sec_context(
    774  0  stevel 	OM_uint32 *,
    775  0  stevel 	gss_ctx_id_t *,
    776  0  stevel 	const gss_cred_id_t,
    777  0  stevel 	const gss_buffer_t,
    778  0  stevel 	const gss_channel_bindings_t,
    779  0  stevel 	const gss_buffer_t,
    780  0  stevel 	gss_OID *,
    781  0  stevel 	gss_buffer_t,
    782  0  stevel 	int *,
    783  0  stevel 	OM_uint32 *,
    784  0  stevel 	gss_cred_id_t *,
    785  0  stevel 	uid_t);
    786  0  stevel 
    787  0  stevel OM_uint32 kgss_process_context_token(
    788  0  stevel 	OM_uint32 *,
    789  0  stevel 	const gss_ctx_id_t,
    790  0  stevel 	const gss_buffer_t,
    791  0  stevel 	uid_t);
    792  0  stevel 
    793  0  stevel OM_uint32 kgss_delete_sec_context(
    794  0  stevel 	OM_uint32 *,
    795  0  stevel 	gss_ctx_id_t *,
    796  0  stevel 	gss_buffer_t);
    797  0  stevel 
    798  0  stevel OM_uint32 kgss_export_sec_context(
    799  0  stevel 	OM_uint32 *,
    800  0  stevel 	const gss_ctx_id_t,
    801  0  stevel 	gss_buffer_t);
    802  0  stevel 
    803  0  stevel OM_uint32 kgss_import_sec_context(
    804  0  stevel 	OM_uint32  *,
    805  0  stevel 	const gss_buffer_t,
    806  0  stevel 	gss_ctx_id_t);
    807  0  stevel 
    808  0  stevel OM_uint32 kgss_context_time(
    809  0  stevel 	OM_uint32 *,
    810  0  stevel 	const gss_ctx_id_t,
    811  0  stevel 	OM_uint32 *,
    812  0  stevel 	uid_t);
    813  0  stevel 
    814  0  stevel OM_uint32 kgss_sign(
    815  0  stevel 	OM_uint32 *,
    816  0  stevel 	const gss_ctx_id_t,
    817  0  stevel 	int,
    818  0  stevel 	const gss_buffer_t,
    819  0  stevel 	gss_buffer_t);
    820  0  stevel 
    821  0  stevel 
    822  0  stevel OM_uint32 kgss_verify(
    823  0  stevel 	OM_uint32 *,
    824  0  stevel 	const gss_ctx_id_t,
    825  0  stevel 	const gss_buffer_t,
    826  0  stevel 	const gss_buffer_t,
    827  0  stevel 	int *);
    828  0  stevel 
    829  0  stevel OM_uint32 kgss_seal(
    830  0  stevel 	OM_uint32 *,
    831  0  stevel 	const gss_ctx_id_t,
    832  0  stevel 	int,
    833  0  stevel 	int,
    834  0  stevel 	const gss_buffer_t,
    835  0  stevel 	int *,
    836  0  stevel 	gss_buffer_t);
    837  0  stevel 
    838  0  stevel OM_uint32 kgss_unseal(
    839  0  stevel 	OM_uint32 *,
    840  0  stevel 	const gss_ctx_id_t,
    841  0  stevel 	const gss_buffer_t,
    842  0  stevel 	gss_buffer_t,
    843  0  stevel 	int *,
    844  0  stevel 	int *);
    845  0  stevel 
    846  0  stevel OM_uint32 kgss_display_status(
    847  0  stevel 	OM_uint32 *,
    848  0  stevel 	OM_uint32,
    849  0  stevel 	int,
    850  0  stevel 	const gss_OID,
    851  0  stevel 	int *,
    852  0  stevel 	gss_buffer_t,
    853  0  stevel 	uid_t);
    854  0  stevel 
    855  0  stevel OM_uint32 kgss_indicate_mechs(
    856  0  stevel 	OM_uint32 *,
    857  0  stevel 	gss_OID_set *,
    858  0  stevel 	uid_t);
    859  0  stevel 
    860  0  stevel OM_uint32 kgss_inquire_cred(
    861  0  stevel 	OM_uint32 *,
    862  0  stevel 	const gss_cred_id_t,
    863  0  stevel 	gss_name_t *,
    864  0  stevel 	OM_uint32 *,
    865  0  stevel 	int *,
    866  0  stevel 	gss_OID_set *,
    867  0  stevel 	uid_t);
    868  0  stevel 
    869  0  stevel OM_uint32 kgss_inquire_cred_by_mech(
    870  0  stevel 	OM_uint32 *,
    871  0  stevel 	gss_cred_id_t,
    872  0  stevel 	gss_OID,
    873  0  stevel 	uid_t);
    874  0  stevel 
    875  0  stevel 
    876  0  stevel #endif /* if _KERNEL */
    877  0  stevel 
    878  0  stevel #ifdef	__cplusplus
    879  0  stevel }
    880  0  stevel #endif
    881  0  stevel 
    882  0  stevel #endif	/* _GSSAPI_H_ */
    883