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 33extern "C" { 34#endif 35 36#include <gssapi/gssapi.h> 37 38#define SEC_CONTEXT_TOKEN 1 39#define DUMMY_SIZE_OF_INT 4 40 41typedef void * dummy_token_t; 42 43/* dummy name structure for internal representation. */ 44typedef struct { 45 gss_OID type; 46 gss_buffer_t buffer; 47} dummy_name_desc, *dummy_name_t; 48 49/* Structure for context handle */ 50typedef 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 */ 57static const gss_OID_desc dummy_oids[] = { 58 {10, "\053\006\001\004\001\052\002\032\001\002"}, 59}; 60const gss_OID_desc * const gss_mech_dummy = dummy_oids+0; 61static const gss_OID_set_desc dummy_oidsets[] = { 62 {1, (gss_OID) dummy_oids+0}, 63}; 64const 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 111OM_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 124OM_uint32 dummy_gss_release_cred 125 ( 126 void *, /* dummy context */ 127 OM_uint32 *, /* minor_status */ 128 gss_cred_id_t * /* cred_handle */ 129 /* */); 130 131OM_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 149OM_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 165OM_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 173DUMMY_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 184OM_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 192DUMMY_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 205DUMMY_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 */ 219DUMMY_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 234DUMMY_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 249OM_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 260OM_uint32 dummy_gss_indicate_mechs 261 ( 262 void *, /* dummy context */ 263 OM_uint32 *, /* minor_status */ 264 gss_OID_set * /* mech_set */ 265 /* */); 266 267OM_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 276OM_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 285OM_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 294OM_uint32 dummy_gss_release_name 295 ( 296 void *, /* dummy context */ 297 OM_uint32 *, /* minor_status */ 298 gss_name_t * /* input_name */ 299 /* */); 300 301OM_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 312OM_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 */ 327OM_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 337OM_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 347OM_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 359OM_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 370OM_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 381OM_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 397OM_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 409OM_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 417OM_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 426OM_uint32 dummy_gss_release_oid 427 ( 428 OM_uint32 *, /* minor_status */ 429 gss_OID * /* oid */ 430 /* */); 431#endif 432 433OM_uint32 dummy_gss_internal_release_oid 434 ( 435 void *, /* dummy context */ 436 OM_uint32 *, /* minor_status */ 437 gss_OID * /* oid */ 438 /* */); 439 440OM_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 448OM_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