Home | History | Annotate | Download | only in include
      1 /*
      2  * CDDL HEADER START
      3  *
      4  * The contents of this file are subject to the terms of the
      5  * Common Development and Distribution License, Version 1.0 only
      6  * (the "License").  You may not use this file except in compliance
      7  * with the License.
      8  *
      9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
     10  * or http://www.opensolaris.org/os/licensing.
     11  * See the License for the specific language governing permissions
     12  * and limitations under the License.
     13  *
     14  * When distributing Covered Code, include this CDDL HEADER in each
     15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     16  * If applicable, add the following below this CDDL HEADER, with the
     17  * fields enclosed by brackets "[]" replaced with your own identifying
     18  * information: Portions Copyright [yyyy] [name of copyright owner]
     19  *
     20  * CDDL HEADER END
     21  */
     22 /*
     23  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
     24  * Use is subject to license terms.
     25  */
     26 
     27 #ifndef	_GSSAPIP_DUMMY_H
     28 #define	_GSSAPIP_DUMMY_H
     29 
     30 #pragma ident	"%Z%%M%	%I%	%E% SMI"
     31 
     32 #ifdef	__cplusplus
     33 extern "C" {
     34 #endif
     35 
     36 #include <gssapi/gssapi.h>
     37 
     38 #define	SEC_CONTEXT_TOKEN 1
     39 #define	DUMMY_SIZE_OF_INT 4
     40 
     41 typedef void * dummy_token_t;
     42 
     43 /* dummy name structure for internal representation. */
     44 typedef struct {
     45 	gss_OID type;
     46 	gss_buffer_t buffer;
     47 } dummy_name_desc, *dummy_name_t;
     48 
     49 /* Structure for context handle */
     50 typedef struct {
     51 	OM_uint32 last_stat;
     52 	int token_number;
     53 	int established;
     54 } dummy_gss_ctx_id_rec, *dummy_gss_ctx_id_t;
     55 
     56 /* Dummy oid structure */
     57 static const gss_OID_desc dummy_oids[] = {
     58 	{10, "\053\006\001\004\001\052\002\032\001\002"},
     59 };
     60 const gss_OID_desc * const gss_mech_dummy = dummy_oids+0;
     61 static const gss_OID_set_desc dummy_oidsets[] = {
     62 	{1, (gss_OID) dummy_oids+0},
     63 };
     64 const gss_OID_set_desc * const gss_mech_set_dummy = dummy_oidsets+0;
     65 
     66 #define	TWRITE_STR(ptr, str, len) \
     67 	(void) memcpy((ptr), (char *) (str), (len)); \
     68 	(ptr) += (len);
     69 #ifndef	_KERNEL
     70 
     71 #ifdef DEBUG_ON
     72 
     73 #define	dprintf(a) printf(a)
     74 #define	dprintf1(a, b) printf(a, b)
     75 
     76 #else
     77 
     78 #define	dprintf(a)
     79 #define	dprintf1(a, b)
     80 #define	DUMMY_STATIC
     81 
     82 #endif	/* DEBUG_ON */
     83 
     84 #else	/* _KERNEL */
     85 
     86 #if defined(DEBUG) && !defined(DUMMY_MECH_DEBUG)
     87 #define	DUMMY_MECH_DEBUG
     88 #endif
     89 
     90 #ifdef DUMMY_MECH_DEBUG
     91 #define	DUMMY_MECH_LOG(A, B, C) \
     92 	((void)((dummy_mech_log & (A)) && (printf((B), (C)), TRUE)))
     93 #define	DUMMY_MECH_LOG0(A, B)   \
     94 	((void)((dummy_mech_log & (A)) && (printf(B), TRUE)))
     95 #else
     96 #define	DUMMY_MECH_LOG(A, B, C)
     97 #define	DUMMY_MECH_LOG0(A, B)
     98 
     99 #endif
    100 
    101 #define	dprintf(a)	DUMMY_MECH_LOG0(8, a)
    102 #define	dprintf1(a, b)	DUMMY_MECH_LOG(8, a, b)
    103 #define	DUMMY_STATIC	static
    104 
    105 #endif	/* _KERNEL */
    106 
    107 /*
    108  * declarations of internal name mechanism functions
    109  */
    110 
    111 OM_uint32 dummy_gss_acquire_cred
    112 	(
    113 		void *,			/* dummy context */
    114 		OM_uint32 *,		/* minor_status */
    115 		gss_name_t,		/* desired_name */
    116 		OM_uint32,		/* time_req */
    117 		gss_OID_set,		/* desired_mechs */
    118 		gss_cred_usage_t,	/* cred_usage */
    119 		gss_cred_id_t *,	/* output_cred_handle */
    120 		gss_OID_set *,		/* actual_mechs */
    121 		OM_uint32 *		/* time_rec */
    122 	/* */);
    123 
    124 OM_uint32 dummy_gss_release_cred
    125 	(
    126 		void *,			/* dummy context */
    127 		OM_uint32 *,		/* minor_status */
    128 		gss_cred_id_t *		/* cred_handle */
    129 	/* */);
    130 
    131 OM_uint32 dummy_gss_init_sec_context
    132 	(
    133 		void *,			/* dummy context */
    134 		OM_uint32 *,		/* minor_status */
    135 		gss_cred_id_t,		/* claimant_cred_handle */
    136 		gss_ctx_id_t *,		/* context_handle */
    137 		gss_name_t,		/* target_name */
    138 		gss_OID,		/* mech_type */
    139 		OM_uint32,		/* req_flags */
    140 		OM_uint32,		/* time_req */
    141 		gss_channel_bindings_t, /* input_chan_bindings */
    142 		gss_buffer_t,		/* input_token */
    143 		gss_OID *,		/* actual_mech_type */
    144 		gss_buffer_t,		/* output_token */
    145 		OM_uint32 *,		/* ret_flags */
    146 		OM_uint32 *		/* time_rec */
    147 	/* */);
    148 
    149 OM_uint32 dummy_gss_accept_sec_context
    150 	(
    151 		void *,			/* dummy context */
    152 		OM_uint32 *,		/* minor_status */
    153 		gss_ctx_id_t *,		/* context_handle */
    154 		gss_cred_id_t,		/* verifier_cred_handle */
    155 		gss_buffer_t,		/* input_token_buffer */
    156 		gss_channel_bindings_t, /* input_chan_bindings */
    157 		gss_name_t *,		/* src_name */
    158 		gss_OID *,		/* mech_type */
    159 		gss_buffer_t,		/* output_token */
    160 		OM_uint32 *,		/* ret_flags */
    161 		OM_uint32 *,		/* time_rec */
    162 		gss_cred_id_t *		/* delegated_cred_handle */
    163 	/* */);
    164 
    165 OM_uint32 dummy_gss_process_context_token
    166 	(
    167 		void *,			/* dummy context */
    168 		OM_uint32 *,		/* minor_status */
    169 		gss_ctx_id_t,		/* context_handle */
    170 		gss_buffer_t		/* token_buffer */
    171 	/* */);
    172 
    173 DUMMY_STATIC OM_uint32 dummy_gss_delete_sec_context
    174 	(
    175 		void *,			/* dummy context */
    176 		OM_uint32 *,		/* minor_status */
    177 		gss_ctx_id_t *,		/* context_handle */
    178 		gss_buffer_t		/* output_token */
    179 #ifdef	_KERNEL
    180 	/* */, OM_uint32
    181 #endif
    182 	/* */);
    183 
    184 OM_uint32 dummy_gss_context_time
    185 	(
    186 		void *,			/* dummy context */
    187 		OM_uint32 *,		/* minor_status */
    188 		gss_ctx_id_t,		/* context_handle */
    189 		OM_uint32 *		/* time_rec */
    190 	/* */);
    191 
    192 DUMMY_STATIC OM_uint32 dummy_gss_sign
    193 	(
    194 		void *,			/* dummy context */
    195 		OM_uint32 *,		/* minor_status */
    196 		gss_ctx_id_t,		/* context_handle */
    197 		int,			/* qop_req */
    198 		gss_buffer_t,		/* message_buffer */
    199 		gss_buffer_t		/* message_token */
    200 #ifdef	_KERNEL
    201 	/* */, OM_uint32
    202 #endif
    203 	/* */);
    204 
    205 DUMMY_STATIC OM_uint32 dummy_gss_verify
    206 	(
    207 		void *,			/* dummy context */
    208 		OM_uint32 *,		/* minor_status */
    209 		gss_ctx_id_t,		/* context_handle */
    210 		gss_buffer_t,		/* message_buffer */
    211 		gss_buffer_t,		/* token_buffer */
    212 		int *			/* qop_state */
    213 #ifdef	_KERNEL
    214 	/* */, OM_uint32
    215 
    216 #endif
    217 	/* */);
    218 /* EXPORT DELETE START */
    219 DUMMY_STATIC OM_uint32 dummy_gss_seal
    220 	(
    221 		void *,			/* dummy context */
    222 		OM_uint32 *,		/* minor_status */
    223 		gss_ctx_id_t,		/* context_handle */
    224 		int,			/* conf_req_flag */
    225 		int,			/* qop_req */
    226 		gss_buffer_t,		/* input_message_buffer */
    227 		int *,			/* conf_state */
    228 		gss_buffer_t		/* output_message_buffer */
    229 #ifdef	_KERNEL
    230 	/* */, OM_uint32
    231 #endif
    232 	/* */);
    233 
    234 DUMMY_STATIC OM_uint32 dummy_gss_unseal
    235 	(
    236 		void *,			/* dummy context */
    237 		OM_uint32 *,		/* minor_status */
    238 		gss_ctx_id_t,		/* context_handle */
    239 		gss_buffer_t,		/* input_message_buffer */
    240 		gss_buffer_t,		/* output_message_buffer */
    241 		int *,			/* conf_state */
    242 		int *			/* qop_state */
    243 #ifdef	_KERNEL
    244 	/* */, OM_uint32
    245 #endif
    246 	/* */);
    247 /* EXPORT DELETE END */
    248 
    249 OM_uint32 dummy_gss_display_status
    250 	(
    251 		void *,			/* dummy context */
    252 		OM_uint32 *,		/* minor_status */
    253 		OM_uint32,		/* status_value */
    254 		int,			/* status_type */
    255 		gss_OID,		/* mech_type */
    256 		OM_uint32 *,		/* message_context */
    257 		gss_buffer_t		/* status_string */
    258 	/* */);
    259 
    260 OM_uint32 dummy_gss_indicate_mechs
    261 	(
    262 		void *,			/* dummy context */
    263 		OM_uint32 *,		/* minor_status */
    264 		gss_OID_set *		/* mech_set */
    265 	/* */);
    266 
    267 OM_uint32 dummy_gss_compare_name
    268 	(
    269 		void *,			/* dummy context */
    270 		OM_uint32 *,		/* minor_status */
    271 		gss_name_t,		/* name1 */
    272 		gss_name_t,		/* name2 */
    273 		int *			/* name_equal */
    274 	/* */);
    275 
    276 OM_uint32 dummy_gss_display_name
    277 	(
    278 		void *,			/* dummy context */
    279 		OM_uint32 *,		/* minor_status */
    280 		gss_name_t,		/* input_name */
    281 		gss_buffer_t,		/* output_name_buffer */
    282 		gss_OID *		/* output_name_type */
    283 	/* */);
    284 
    285 OM_uint32 dummy_gss_import_name
    286 	(
    287 		void *,			/* dummy context */
    288 		OM_uint32 *,		/* minor_status */
    289 		gss_buffer_t,		/* input_name_buffer */
    290 		gss_OID,		/* input_name_type */
    291 		gss_name_t *		/* output_name */
    292 	/* */);
    293 
    294 OM_uint32 dummy_gss_release_name
    295 	(
    296 		void *,			/* dummy context */
    297 		OM_uint32 *,		/* minor_status */
    298 		gss_name_t *		/* input_name */
    299 	/* */);
    300 
    301 OM_uint32 dummy_gss_inquire_cred
    302 	(
    303 		void *,			/* dummy context */
    304 		OM_uint32 *,		/* minor_status */
    305 		gss_cred_id_t,		/* cred_handle */
    306 		gss_name_t *,		/* name */
    307 		OM_uint32 *,		/* lifetime */
    308 		gss_cred_usage_t *,	/* cred_usage */
    309 		gss_OID_set *		/* mechanisms */
    310 	/* */);
    311 
    312 OM_uint32 dummy_gss_inquire_context
    313 	(
    314 		void *,			/* dummy context */
    315 		OM_uint32 *,		/* minor_status */
    316 		gss_ctx_id_t,		/* context_handle */
    317 		gss_name_t *,		/* initiator_name */
    318 		gss_name_t *,		/* acceptor_name */
    319 		OM_uint32 *,		/* lifetime_rec */
    320 		gss_OID *,		/* mech_type */
    321 		OM_uint32 *,		/* ret_flags */
    322 		int *,			/* locally_initiated */
    323 		int *			/* open */
    324 	/* */);
    325 
    326 /* New V2 entry points */
    327 OM_uint32 dummy_gss_get_mic
    328 	(
    329 		void *,			/* dummy context */
    330 		OM_uint32 *,		/* minor_status */
    331 		gss_ctx_id_t,		/* context_handle */
    332 		gss_qop_t,		/* qop_req */
    333 		gss_buffer_t,		/* message_buffer */
    334 		gss_buffer_t		/* message_token */
    335 	/* */);
    336 
    337 OM_uint32 dummy_gss_verify_mic
    338 	(
    339 		void *,			/* dummy context */
    340 		OM_uint32 *,		/* minor_status */
    341 		gss_ctx_id_t,		/* context_handle */
    342 		gss_buffer_t,		/* message_buffer */
    343 		gss_buffer_t,		/* message_token */
    344 		gss_qop_t *		/* qop_state */
    345 	/* */);
    346 
    347 OM_uint32 dummy_gss_wrap
    348 	(
    349 		void *,			/* dummy context */
    350 		OM_uint32 *,		/* minor_status */
    351 		gss_ctx_id_t,		/* context_handle */
    352 		int,			/* conf_req_flag */
    353 		gss_qop_t,		/* qop_req */
    354 		gss_buffer_t,		/* input_message_buffer */
    355 		int *,			/* conf_state */
    356 		gss_buffer_t		/* output_message_buffer */
    357 	/* */);
    358 
    359 OM_uint32 dummy_gss_unwrap
    360 	(
    361 		void *,			/* dummy context */
    362 		OM_uint32 *,		/* minor_status */
    363 		gss_ctx_id_t,		/* context_handle */
    364 		gss_buffer_t,		/* input_message_buffer */
    365 		gss_buffer_t,		/* output_message_buffer */
    366 		int *,			/* conf_state */
    367 		gss_qop_t *		/* qop_state */
    368 	/* */);
    369 
    370 OM_uint32 dummy_gss_wrap_size_limit
    371 	(
    372 		void *,			/* dummy context */
    373 		OM_uint32 *,		/* minor_status */
    374 		gss_ctx_id_t,		/* context_handle */
    375 		int,			/* conf_req_flag */
    376 		gss_qop_t,		/* qop_req */
    377 		OM_uint32,		/* req_output_size */
    378 		OM_uint32 *		/* max_input_size */
    379 	/* */);
    380 
    381 OM_uint32 dummy_gss_add_cred
    382 	(
    383 		void *,			/* dummy context */
    384 		OM_uint32 *,		/* minor_status */
    385 		gss_cred_id_t,		/* input_cred_handle */
    386 		gss_name_t,		/* desired_name */
    387 		gss_OID,		/* desired_mech */
    388 		gss_cred_usage_t,	/* cred_usage */
    389 		OM_uint32,		/* initiator_time_req */
    390 		OM_uint32,		/* acceptor_time_req */
    391 		gss_cred_id_t *,	/* output_cred_handle */
    392 		gss_OID_set *,		/* actual_mechs */
    393 		OM_uint32 *,		/* initiator_time_rec */
    394 		OM_uint32 *		/* acceptor_time_rec */
    395 	/* */);
    396 
    397 OM_uint32 dummy_gss_inquire_cred_by_mech
    398 	(
    399 		void *,			/* dummy context */
    400 		OM_uint32  *,		/* minor_status */
    401 		gss_cred_id_t,		/* cred_handle */
    402 		gss_OID,		/* mech_type */
    403 		gss_name_t *,		/* name */
    404 		OM_uint32 *,		/* initiator_lifetime */
    405 		OM_uint32 *,		/* acceptor_lifetime */
    406 		gss_cred_usage_t *	/* cred_usage */
    407 	/* */);
    408 
    409 OM_uint32 dummy_gss_export_sec_context
    410 	(
    411 		void *,			/* dummy context */
    412 		OM_uint32 *,		/* minor_status */
    413 		gss_ctx_id_t *,		/* context_handle */
    414 		gss_buffer_t		/* interprocess_token */
    415 	/* */);
    416 
    417 OM_uint32 dummy_gss_import_sec_context
    418 	(
    419 		void *,			/* dummy context */
    420 		OM_uint32 *,		/* minor_status */
    421 		gss_buffer_t,		/* interprocess_token */
    422 		gss_ctx_id_t *		/* context_handle */
    423 	/* */);
    424 
    425 #if 0
    426 OM_uint32 dummy_gss_release_oid
    427 	(
    428 		OM_uint32 *,		/* minor_status */
    429 		gss_OID *		/* oid */
    430 	/* */);
    431 #endif
    432 
    433 OM_uint32 dummy_gss_internal_release_oid
    434 	(
    435 		void *,			/* dummy context  */
    436 		OM_uint32 *,		/* minor_status */
    437 		gss_OID *		/* oid */
    438 	/* */);
    439 
    440 OM_uint32 dummy_gss_inquire_names_for_mech
    441 	(
    442 		void *,		/* dummy context */
    443 		OM_uint32 *,		/* minor_status */
    444 		gss_OID,		/* mechanism */
    445 		gss_OID_set *		/* name_types */
    446 	/* */);
    447 
    448 OM_uint32 dummy_pname_to_uid
    449 	(
    450 		void *,			/* dummy context */
    451 		OM_uint32 *,		/* minor status */
    452 		const gss_name_t,	/* pname */
    453 		uid_t *			/* uidOut */
    454 	/* */);
    455 
    456 
    457 #ifdef	__cplusplus
    458 }
    459 #endif
    460 
    461 #endif /* _GSSAPIP_DUMMY_H */
    462