Home | History | Annotate | Download | only in gssapi
      1  0  stevel /*
      2  0  stevel  * CDDL HEADER START
      3  0  stevel  *
      4  0  stevel  * The contents of this file are subject to the terms of the
      5  0  stevel  * Common Development and Distribution License, Version 1.0 only
      6  0  stevel  * (the "License").  You may not use this file except in compliance
      7  0  stevel  * with the License.
      8  0  stevel  *
      9  0  stevel  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
     10  0  stevel  * or http://www.opensolaris.org/os/licensing.
     11  0  stevel  * See the License for the specific language governing permissions
     12  0  stevel  * and limitations under the License.
     13  0  stevel  *
     14  0  stevel  * When distributing Covered Code, include this CDDL HEADER in each
     15  0  stevel  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     16  0  stevel  * If applicable, add the following below this CDDL HEADER, with the
     17  0  stevel  * fields enclosed by brackets "[]" replaced with your own identifying
     18  0  stevel  * information: Portions Copyright [yyyy] [name of copyright owner]
     19  0  stevel  *
     20  0  stevel  * CDDL HEADER END
     21  0  stevel  */
     22  0  stevel %/*
     23  0  stevel % * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
     24  0  stevel % * Use is subject to license terms.
     25  0  stevel % */
     26  0  stevel %
     27  0  stevel %#pragma ident	"%Z%%M%	%I%	%E% SMI"
     28  0  stevel %
     29  0  stevel %/*
     30  0  stevel % *  RPC protocol information for gssd, the usermode daemon that
     31  0  stevel % *  assists the kernel with gssapi. It is gssd that executes all
     32  0  stevel % *  gssapi calls except for some such as gss_sign(), and
     33  0  stevel % *  gss_verify(), which are executed in the kernel itself.
     34  0  stevel % *
     35  0  stevel % *  File generated from gssd.x
     36  0  stevel % */
     37  0  stevel %
     38  0  stevel %#define	NO 0
     39  0  stevel %#define	YES 1
     40  0  stevel %#define	FOREVER 1
     41  0  stevel %
     42  0  stevel %#include <sys/types.h>
     43  0  stevel %#include <sys/time.h>
     44  0  stevel %#include <rpc/auth_sys.h>
     45  0  stevel %#ifndef _KERNEL
     46  0  stevel %#include <locale.h>
     47  0  stevel %#endif /* not _KERNEL */
     48  0  stevel %
     49  0  stevel 
     50  0  stevel %#ifdef _KERNEL
     51  0  stevel %extern void killgssd_handle(CLIENT *);
     52  0  stevel %extern CLIENT *getgssd_handle(void);
     53  0  stevel %#endif /* _KERNEL */
     54  0  stevel %
     55  0  stevel /*
     56  0  stevel  * These are the definitions for the interface to GSSD.
     57  0  stevel  */
     58  0  stevel 
     59  0  stevel typedef unsigned int				OM_UINT32;
     60  0  stevel 
     61  0  stevel typedef opaque					GSS_CTX_ID_T<>;
     62  0  stevel typedef opaque					GSS_CRED_ID_T<>;
     63  0  stevel typedef opaque					GSS_OID<>;
     64  0  stevel typedef opaque					GSS_BUFFER_T<>;
     65  0  stevel typedef gid_t					GSSCRED_GIDS<>;
     66  0  stevel 
     67  0  stevel typedef GSS_OID					GSS_OID_SET<>;
     68  0  stevel 
     69  0  stevel struct GSS_CHANNEL_BINDINGS_STRUCT {
     70  0  stevel 	int		present;
     71  0  stevel 	OM_UINT32	initiator_addrtype;
     72  0  stevel 	GSS_BUFFER_T	initiator_address;
     73  0  stevel 	OM_UINT32	acceptor_addrtype;
     74  0  stevel 	GSS_BUFFER_T    acceptor_address;
     75  0  stevel 	GSS_BUFFER_T    application_data;
     76  0  stevel };
     77  0  stevel 
     78  0  stevel typedef	struct GSS_CHANNEL_BINDINGS_STRUCT	GSS_CHANNEL_BINDINGS;
     79  0  stevel 
     80  0  stevel struct gss_acquire_cred_arg {
     81  0  stevel 	uid_t		uid;			/* client uid */
     82  0  stevel 	GSS_BUFFER_T	desired_name;		/* name of cred */
     83  0  stevel 	GSS_OID		name_type;		/* type of desired name */
     84  0  stevel 	OM_UINT32	time_req;		/* context validity interval */
     85  0  stevel 	GSS_OID_SET	desired_mechs;		/* cred mechanisms */
     86  0  stevel 	int		cred_usage;		/* init/accept/both */
     87  0  stevel };
     88  0  stevel 
     89  0  stevel struct gss_acquire_cred_res {
     90  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
     91  0  stevel 	GSS_CRED_ID_T	output_cred_handle;	/* returned credential handle */
     92  0  stevel 	OM_UINT32	gssd_cred_verifier; 	/* verifier for cred handle */
     93  0  stevel 	GSS_OID_SET	actual_mechs;		/* found cred mechanisms */
     94  0  stevel 	OM_UINT32	time_rec;		/* actual context validity */
     95  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
     96  0  stevel };
     97  0  stevel 
     98  0  stevel struct gss_add_cred_arg {
     99  0  stevel 	uid_t		uid;			/* client uid */
    100  0  stevel 	GSS_CRED_ID_T	input_cred_handle;	/* input credential handle */
    101  0  stevel 	OM_UINT32	gssd_cred_verifier; 	/* verifier for cred handle */
    102  0  stevel 	GSS_BUFFER_T	desired_name;		/* name of cred */
    103  0  stevel 	GSS_OID		name_type;		/* type of desired name */
    104  0  stevel 	GSS_OID		desired_mech_type;	/* cred mechanisms */
    105  0  stevel 	int		cred_usage;		/* init/accept/both */
    106  0  stevel 	OM_UINT32	initiator_time_req;	/* context validity interval */
    107  0  stevel 	OM_UINT32	acceptor_time_req;	/* context validity interval */
    108  0  stevel };
    109  0  stevel /* Note: For gss_add_cred we always update the underlying credentials of
    110  0  stevel  * input_cred_handle. We always pass NULL as output_cred_handle when the call
    111  0  stevel  * to gss_add_cred is made
    112  0  stevel */
    113  0  stevel struct gss_add_cred_res {
    114  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
    115  0  stevel 	GSS_OID_SET	actual_mechs;		/* found cred mechanisms */
    116  0  stevel 	OM_UINT32	initiator_time_rec;	/* cred validity interval */
    117  0  stevel 	OM_UINT32	acceptor_time_rec;	/* cred validity interval */
    118  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
    119  0  stevel };
    120  0  stevel 
    121  0  stevel struct gss_release_cred_arg {
    122  0  stevel 	uid_t		uid;			/* client uid */
    123  0  stevel 	OM_UINT32	gssd_cred_verifier; 	/* verifier for cred handles */
    124  0  stevel 	GSS_CRED_ID_T	cred_handle;		/* credential handle */
    125  0  stevel };
    126  0  stevel 
    127  0  stevel struct gss_release_cred_res {
    128  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
    129  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
    130  0  stevel };
    131  0  stevel 
    132  0  stevel struct gss_init_sec_context_arg {
    133  0  stevel 	uid_t		uid;			/* client uid */
    134  0  stevel 	GSS_CTX_ID_T	context_handle;		/* handle to existing context */
    135  0  stevel 	OM_UINT32	gssd_context_verifier;	/* verifier for context handles */
    136  0  stevel 	GSS_CRED_ID_T	claimant_cred_handle;	/* must = GSS_C_NO_CREDENTIAL */
    137  0  stevel 	OM_UINT32	gssd_cred_verifier;	/* verifier for cred handle */
    138  0  stevel 	GSS_BUFFER_T	target_name;		/* name of server */
    139  0  stevel 	GSS_OID		name_type;		/* type of principal name */
    140  0  stevel 	GSS_OID		mech_type;		/* requested mechanism */
    141  0  stevel 	int		req_flags;		/* requested context options */
    142  0  stevel 	OM_UINT32	time_req;		/* context validity interval */
    143  0  stevel 	GSS_CHANNEL_BINDINGS
    144  0  stevel 			input_chan_bindings;	/* requested channel bindings */
    145  0  stevel 	GSS_BUFFER_T	input_token;		/* token to send to peer */
    146  0  stevel };
    147  0  stevel 
    148  0  stevel struct gss_init_sec_context_res {
    149  0  stevel 	GSS_CTX_ID_T	context_handle;		/* handle to created context */
    150  0  stevel 	OM_UINT32	gssd_context_verifier;	/* verifier for context handles */
    151  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
    152  0  stevel 	GSS_OID		actual_mech_type;	/* actual mechanism used */
    153  0  stevel 	GSS_BUFFER_T	output_token;		/* where peer token is put */
    154  0  stevel 	OM_UINT32	ret_flags;		/* options of context */
    155  0  stevel 	OM_UINT32	time_rec;		/* actual context validity */
    156  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
    157  0  stevel };
    158  0  stevel 
    159  0  stevel struct gss_accept_sec_context_arg {
    160  0  stevel 	uid_t		uid;			/* client uid */
    161  0  stevel 	GSS_CTX_ID_T	context_handle;		/* handle to existing context */
    162  0  stevel 	OM_UINT32	gssd_context_verifier;	/* verifier for context handles */
    163  0  stevel 	GSS_CRED_ID_T	verifier_cred_handle;	/* must = GSS_C_NO_CREDENTIAL */
    164  0  stevel 	OM_UINT32	gssd_cred_verifier;	/* verifier for cred handle */
    165  0  stevel 	GSS_BUFFER_T	input_token_buffer;	/* token to send to peer */
    166  0  stevel 	GSS_CHANNEL_BINDINGS
    167  0  stevel 			input_chan_bindings;	/* requested channel bindings */
    168  0  stevel };
    169  0  stevel 
    170  0  stevel struct gss_accept_sec_context_res {
    171  0  stevel 	GSS_CTX_ID_T	context_handle;		/* handle to created context */
    172  0  stevel 	OM_UINT32	gssd_context_verifier;	/* verifier for context handles */
    173  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
    174  0  stevel 	GSS_BUFFER_T	src_name;		/* authenticated name of peer */
    175  0  stevel 	GSS_OID		mech_type;		/* mechanism used */
    176  0  stevel 	GSS_BUFFER_T	output_token;		/* where peer token is put */
    177  0  stevel 	OM_UINT32	ret_flags;		/* options of context */
    178  0  stevel 	OM_UINT32	time_rec;		/* actual context validity */
    179  0  stevel 	GSS_CRED_ID_T	delegated_cred_handle;	/* always GSS_C_NO_CREDENTIAL */
    180  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
    181  0  stevel };
    182  0  stevel 
    183  0  stevel struct gss_process_context_token_arg {
    184  0  stevel 	uid_t		uid;			/* client uid */
    185  0  stevel 	OM_UINT32	gssd_context_verifier;	/* verifier for context handles */
    186  0  stevel 	GSS_CTX_ID_T	context_handle;		/* handle to existing context */
    187  0  stevel 	GSS_BUFFER_T	token_buffer;		/* token to process */
    188  0  stevel };
    189  0  stevel 
    190  0  stevel struct gss_process_context_token_res {
    191  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
    192  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
    193  0  stevel };
    194  0  stevel 
    195  0  stevel struct gss_delete_sec_context_arg {
    196  0  stevel 	OM_UINT32	gssd_context_verifier;	/* verifier for context handles */
    197  0  stevel 	GSS_CTX_ID_T	context_handle;		/* handle to existing context */
    198  0  stevel };
    199  0  stevel 
    200  0  stevel struct gss_delete_sec_context_res {
    201  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
    202  0  stevel 	GSS_CTX_ID_T	context_handle;		/* handle to deleted context */
    203  0  stevel 	GSS_BUFFER_T	output_token;		/* output token for peer */
    204  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
    205  0  stevel };
    206  0  stevel 
    207  0  stevel struct gss_export_sec_context_arg {
    208  0  stevel         GSS_CTX_ID_T context_handle;		/* handle to existing context */
    209  0  stevel 	OM_UINT32	gssd_context_verifier;	/* verifier for context handles */
    210  0  stevel };
    211  0  stevel 
    212  0  stevel struct gss_export_sec_context_res {
    213  0  stevel         OM_UINT32	minor_status;		/* status from the mechanism */
    214  0  stevel         GSS_CTX_ID_T	context_handle;		/* handle to existing context */
    215  0  stevel         GSS_BUFFER_T	output_token;		/* input token for import_sec_context */
    216  0  stevel         OM_UINT32	status;			/* status of GSSAPI call */
    217  0  stevel };
    218  0  stevel 
    219  0  stevel struct gss_import_sec_context_arg {
    220  0  stevel         GSS_BUFFER_T	input_token;		/* input token for import_sec_context */
    221  0  stevel 	OM_UINT32	gssd_context_verifier;	/* verifier for context handles */
    222  0  stevel };
    223  0  stevel 
    224  0  stevel struct gss_import_sec_context_res {
    225  0  stevel         OM_UINT32	minor_status;		/* status from the mechanism */
    226  0  stevel         GSS_CTX_ID_T	context_handle;		/* handle to created context */
    227  0  stevel         OM_UINT32	status;			/* status of GSSAPI call */
    228  0  stevel };
    229  0  stevel 
    230  0  stevel struct gss_context_time_arg {
    231  0  stevel 	uid_t		uid;			/* client uid */
    232  0  stevel 	OM_UINT32	gssd_context_verifier;	/* verifier for context handles */
    233  0  stevel 	GSS_CTX_ID_T	context_handle;		/* handle to existing context */
    234  0  stevel };
    235  0  stevel 
    236  0  stevel struct gss_context_time_res {
    237  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
    238  0  stevel 	OM_UINT32	time_rec;		/* actual context validity */
    239  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
    240  0  stevel };
    241  0  stevel 
    242  0  stevel struct gss_sign_arg {
    243  0  stevel 	OM_UINT32	gssd_context_verifier;	/* verifier for context handles */
    244  0  stevel 	GSS_CTX_ID_T	context_handle;		/* handle to existing context */
    245  0  stevel 	int		qop_req;		/* quality of protection */
    246  0  stevel 	GSS_BUFFER_T	message_buffer;		/* message to sign */
    247  0  stevel };
    248  0  stevel 
    249  0  stevel struct gss_sign_res {
    250  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
    251  0  stevel 	GSS_BUFFER_T	msg_token;		/* msg_token */
    252  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
    253  0  stevel };
    254  0  stevel 
    255  0  stevel struct gss_verify_arg {
    256  0  stevel 	OM_UINT32	gssd_context_verifier;	/* verifier for context handles */
    257  0  stevel 	GSS_CTX_ID_T	context_handle;		/* handle to existing context */
    258  0  stevel 	GSS_BUFFER_T	message_buffer;		/* message to verify */
    259  0  stevel 	GSS_BUFFER_T	token_buffer;		/* buffer containg token */
    260  0  stevel };
    261  0  stevel 
    262  0  stevel struct gss_verify_res {
    263  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
    264  0  stevel 	int		qop_state;		/* quality of protection */
    265  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
    266  0  stevel };
    267  0  stevel 
    268  0  stevel %/* EXPORT DELETE START */
    269  0  stevel struct gss_seal_arg {
    270  0  stevel 	OM_UINT32	gssd_context_verifier;	/* verifier for context handles */
    271  0  stevel 	GSS_CTX_ID_T	context_handle;		/* handle to existing context */
    272  0  stevel 	int		conf_req_flag;		/* type of conf requested */
    273  0  stevel 	int		qop_req;		/* quality of prot. requested */
    274  0  stevel 	GSS_BUFFER_T	input_message_buffer;	/* message to protect */
    275  0  stevel };
    276  0  stevel 
    277  0  stevel struct gss_seal_res {
    278  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
    279  0  stevel 	int		conf_state;		/* type of conf. applied */
    280  0  stevel 	GSS_BUFFER_T	output_message_buffer;	/* protected message */
    281  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
    282  0  stevel };
    283  0  stevel 
    284  0  stevel struct gss_unseal_arg {
    285  0  stevel 	OM_UINT32	gssd_context_verifier;	/* verifier for context handles */
    286  0  stevel 	GSS_CTX_ID_T	context_handle;		/* handle to existing context */
    287  0  stevel 	GSS_BUFFER_T	input_message_buffer;	/* message to protect */
    288  0  stevel };
    289  0  stevel 
    290  0  stevel struct gss_unseal_res {
    291  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
    292  0  stevel 	GSS_BUFFER_T	output_message_buffer;	/* protected message */
    293  0  stevel 	int		conf_state;		/* type of conf. provided */
    294  0  stevel 	int		qop_state;		/* quality of prot. provided */
    295  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
    296  0  stevel };
    297  0  stevel 
    298  0  stevel %/* EXPORT DELETE END */
    299  0  stevel 
    300  0  stevel struct gss_display_status_arg {
    301  0  stevel 	uid_t		uid;			/* client uid */
    302  0  stevel 	int		status_value;		/* status to be converted */
    303  0  stevel 	int		status_type;		/* GSS or mech status */
    304  0  stevel 	GSS_OID		mech_type;		/* mechanism */
    305  0  stevel 	OM_UINT32	message_context;	/* recursion flag */
    306  0  stevel };
    307  0  stevel 
    308  0  stevel struct gss_display_status_res {
    309  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
    310  0  stevel 	int		message_context;	/* recursion flag */
    311  0  stevel 	GSS_BUFFER_T	status_string;		/* text equiv of status */
    312  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
    313  0  stevel };
    314  0  stevel 
    315  0  stevel %/* gss_indicate_mechs_arg is void. This appears in the rpc call def */
    316  0  stevel 
    317  0  stevel struct gss_indicate_mechs_res {
    318  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
    319  0  stevel 	GSS_OID_SET	mech_set;		/* mechanism set supported */
    320  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
    321  0  stevel };
    322  0  stevel 
    323  0  stevel struct gss_inquire_cred_arg {
    324  0  stevel 	uid_t		uid;			/* client uid */
    325  0  stevel 	OM_UINT32	gssd_cred_verifier;	/* verifier for cred handle */
    326  0  stevel 	GSS_CRED_ID_T	cred_handle;		/* credential handle */
    327  0  stevel };
    328  0  stevel 
    329  0  stevel struct gss_inquire_cred_res {
    330  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
    331  0  stevel 	GSS_BUFFER_T	name;			/* name associated with cred */
    332  0  stevel 	GSS_OID		name_type;		/* type of name */
    333  0  stevel 	OM_UINT32	lifetime;		/* remaining validiy period */
    334  0  stevel 	int		cred_usage;		/* how creds may be used */
    335  0  stevel 	GSS_OID_SET	mechanisms;		/* mechs associated with cred */
    336  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
    337  0  stevel };
    338  0  stevel 
    339  0  stevel struct gss_inquire_cred_by_mech_arg {
    340  0  stevel 	uid_t		uid;			/* client uid */
    341  0  stevel 	OM_UINT32	gssd_cred_verifier;	/* verifier for cred handle */
    342  0  stevel 	GSS_CRED_ID_T	cred_handle;		/* credential handle */
    343  0  stevel 	GSS_OID		mech_type;		/* cred mechanism */
    344  0  stevel };
    345  0  stevel 
    346  0  stevel struct gss_inquire_cred_by_mech_res {
    347  0  stevel 	OM_UINT32	minor_status;		/* status from the mechanism */
    348  0  stevel 	OM_UINT32	status;			/* status of GSSAPI call */
    349  0  stevel };
    350  0  stevel 
    351  0  stevel struct gsscred_name_to_unix_cred_arg {
    352  0  stevel 	uid_t		uid;			/* client uid */
    353  0  stevel 	GSS_BUFFER_T	pname;			/* principal name */
    354  0  stevel 	GSS_OID		name_type;		/* oid of principal name */
    355  0  stevel 	GSS_OID		mech_type;		/* for which mechanism to use */
    356  0  stevel };
    357  0  stevel 
    358  0  stevel struct gsscred_name_to_unix_cred_res {
    359  0  stevel 	uid_t		uid;			/* principal's uid */
    360  0  stevel 	gid_t		gid;			/* principal's gid */
    361  0  stevel 	GSSCRED_GIDS	gids;			/* array of principal's gids */
    362  0  stevel 	OM_UINT32	major;			/* status of the GSSAPI call */
    363  0  stevel };
    364  0  stevel 
    365  0  stevel 
    366  0  stevel struct
    367  0  stevel gsscred_expname_to_unix_cred_arg {
    368  0  stevel 	uid_t		uid;			/* client uid */
    369  0  stevel 	GSS_BUFFER_T	expname;		/* principal in export format */
    370  0  stevel };
    371  0  stevel 
    372  0  stevel struct
    373  0  stevel gsscred_expname_to_unix_cred_res {
    374  0  stevel 	uid_t		uid;			/* principal's uid */
    375  0  stevel 	gid_t		gid;			/* principal's gid */
    376  0  stevel 	GSSCRED_GIDS	gids;			/* array of principal's gids */
    377  0  stevel 	OM_UINT32	major;			/* major status code */
    378  0  stevel };
    379  0  stevel 
    380  0  stevel 
    381  0  stevel struct gss_get_group_info_arg {
    382  0  stevel 	uid_t		uid;			/* client uid */
    383  0  stevel 	uid_t		puid;			/* principal's uid */
    384  0  stevel };
    385  0  stevel 
    386  0  stevel struct gss_get_group_info_res {
    387  0  stevel 	gid_t		gid;			/* principal's gid */
    388  0  stevel 	GSSCRED_GIDS	gids;			/* array of principal's gids */
    389  0  stevel 	OM_UINT32	major;			/* major status code */
    390  0  stevel };
    391  0  stevel 
    392  0  stevel 
    393  0  stevel struct gss_get_kmod_arg	{
    394  0  stevel 	GSS_OID mech_oid;
    395  0  stevel 
    396  0  stevel };
    397  0  stevel 
    398  0  stevel union gss_get_kmod_res switch (bool module_follow) {
    399  0  stevel 	case TRUE:
    400  0  stevel 		string modname<>;
    401  0  stevel 	case FALSE:
    402  0  stevel 		void;
    403  0  stevel };
    404  0  stevel 
    405  0  stevel 
    406  0  stevel /*
    407  0  stevel  *  The server accepts requests only from the loopback address.
    408  0  stevel  *  Unix authentication is used, and the port must be in the reserved range.
    409  0  stevel  */
    410  0  stevel 
    411  0  stevel program GSSPROG {
    412  0  stevel     version GSSVERS {
    413  0  stevel 
    414  0  stevel 	/*
    415  0  stevel 	 *  Called by the client to acquire a credential.
    416  0  stevel 	 */
    417  0  stevel 	gss_acquire_cred_res
    418  0  stevel 		GSS_ACQUIRE_CRED(gss_acquire_cred_arg)			= 1;
    419  0  stevel 
    420  0  stevel 	/*
    421  0  stevel 	 *  Called by the client to release a credential.
    422  0  stevel 	 */
    423  0  stevel 	gss_release_cred_res
    424  0  stevel 		GSS_RELEASE_CRED(gss_release_cred_arg)			= 2;
    425  0  stevel 
    426  0  stevel 	/*
    427  0  stevel 	 *  Called by the client to initialize a security context.
    428  0  stevel 	 */
    429  0  stevel 	gss_init_sec_context_res
    430  0  stevel 		GSS_INIT_SEC_CONTEXT(gss_init_sec_context_arg)		= 3;
    431  0  stevel 
    432  0  stevel 	/*
    433  0  stevel 	 *  Called by the server to initialize a security context.
    434  0  stevel 	 */
    435  0  stevel 	gss_accept_sec_context_res
    436  0  stevel 		GSS_ACCEPT_SEC_CONTEXT(gss_accept_sec_context_arg) 	= 4;
    437  0  stevel 
    438  0  stevel 	/*
    439  0  stevel 	 *  Called to pass token to underlying mechanism.
    440  0  stevel 	 */
    441  0  stevel 	gss_process_context_token_res
    442  0  stevel 		GSS_PROCESS_CONTEXT_TOKEN(gss_process_context_token_arg) = 5;
    443  0  stevel 
    444  0  stevel 	/*
    445  0  stevel 	 *  Called to delete a security context.
    446  0  stevel 	 */
    447  0  stevel 	gss_delete_sec_context_res
    448  0  stevel 		GSS_DELETE_SEC_CONTEXT(gss_delete_sec_context_arg) 	= 6;
    449  0  stevel 
    450  0  stevel 	/*
    451  0  stevel 	 *  Called to get remaining time security context has to live.
    452  0  stevel 	 */
    453  0  stevel 	gss_context_time_res
    454  0  stevel 		GSS_CONTEXT_TIME(gss_context_time_arg) 			= 7;
    455  0  stevel 
    456  0  stevel 	/*
    457  0  stevel 	 *  Called to sign a message.
    458  0  stevel 	 */
    459  0  stevel 	gss_sign_res	GSS_SIGN(gss_sign_arg)				= 8;
    460  0  stevel 
    461  0  stevel 	/*
    462  0  stevel 	 *  Called to verify a signed message.
    463  0  stevel 	 */
    464  0  stevel 	gss_verify_res	GSS_VERIFY(gss_verify_arg)			= 9;
    465  0  stevel 
    466  0  stevel 	/*
    467  0  stevel 	 *  Called to translate minor status into a string.
    468  0  stevel 	 */
    469  0  stevel 	gss_display_status_res
    470  0  stevel 			GSS_DISPLAY_STATUS(gss_display_status_arg)	= 10;
    471  0  stevel 
    472  0  stevel 	/*
    473  0  stevel 	 *  Called to indicate which underlying mechanisms are supported
    474  0  stevel 	 */
    475  0  stevel 	gss_indicate_mechs_res
    476  0  stevel 			GSS_INDICATE_MECHS(void)			= 11;
    477  0  stevel 
    478  0  stevel 	/*
    479  0  stevel 	 *  Called by the client to inquire about a credential.
    480  0  stevel 	 */
    481  0  stevel 	gss_inquire_cred_res
    482  0  stevel 		GSS_INQUIRE_CRED(gss_inquire_cred_arg)			= 12;
    483  0  stevel 
    484  0  stevel 
    485  0  stevel /* EXPORT DELETE START */
    486  0  stevel 
    487  0  stevel 	/*
    488  0  stevel 	 *  Called to seal a message.
    489  0  stevel 	 */
    490  0  stevel 	gss_seal_res	GSS_SEAL(gss_seal_arg)				= 13;
    491  0  stevel 
    492  0  stevel 	/*
    493  0  stevel 	 *  Called to unseal a message.
    494  0  stevel 	 */
    495  0  stevel 	gss_unseal_res	GSS_UNSEAL(gss_unseal_arg)			= 14;
    496  0  stevel 
    497  0  stevel /* EXPORT DELETE END */
    498  0  stevel 
    499  0  stevel 	/*
    500  0  stevel 	 * gsscred interface functions to obtain principal uid and gids
    501  0  stevel 	 */
    502  0  stevel 	gsscred_expname_to_unix_cred_res
    503  0  stevel 			GSSCRED_EXPNAME_TO_UNIX_CRED(
    504  0  stevel 				gsscred_expname_to_unix_cred_arg)	= 15;
    505  0  stevel 
    506  0  stevel 	gsscred_name_to_unix_cred_res
    507  0  stevel 			GSSCRED_NAME_TO_UNIX_CRED(
    508  0  stevel 				gsscred_name_to_unix_cred_arg)		= 16;
    509  0  stevel 
    510  0  stevel 	gss_get_group_info_res
    511  0  stevel 			GSS_GET_GROUP_INFO(gss_get_group_info_arg)	= 17;
    512  0  stevel 
    513  0  stevel 	gss_get_kmod_res
    514  0  stevel 			GSS_GET_KMOD(gss_get_kmod_arg)			= 18;
    515  0  stevel 
    516  0  stevel 	gss_export_sec_context_res
    517  0  stevel 			GSS_EXPORT_SEC_CONTEXT(gss_export_sec_context_arg) = 19;
    518  0  stevel 
    519  0  stevel 	gss_import_sec_context_res
    520  0  stevel 			GSS_IMPORT_SEC_CONTEXT(gss_import_sec_context_arg) = 20;
    521  0  stevel 	/*
    522  0  stevel 	 *  Called by the client to add to a credential.
    523  0  stevel 	 */
    524  0  stevel 	gss_add_cred_res
    525  0  stevel 		GSS_ADD_CRED(gss_add_cred_arg)				= 21;
    526  0  stevel 	gss_inquire_cred_by_mech_res
    527  0  stevel 		GSS_INQUIRE_CRED_BY_MECH(gss_inquire_cred_by_mech_arg)
    528  0  stevel 									= 22;
    529  0  stevel 
    530  0  stevel     } = 1;
    531  0  stevel } = 100234;
    532