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 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 248 OM_uint32 dummy_gss_display_status 249 ( 250 void *, /* dummy context */ 251 OM_uint32 *, /* minor_status */ 252 OM_uint32, /* status_value */ 253 int, /* status_type */ 254 gss_OID, /* mech_type */ 255 OM_uint32 *, /* message_context */ 256 gss_buffer_t /* status_string */ 257 /* */); 258 259 OM_uint32 dummy_gss_indicate_mechs 260 ( 261 void *, /* dummy context */ 262 OM_uint32 *, /* minor_status */ 263 gss_OID_set * /* mech_set */ 264 /* */); 265 266 OM_uint32 dummy_gss_compare_name 267 ( 268 void *, /* dummy context */ 269 OM_uint32 *, /* minor_status */ 270 gss_name_t, /* name1 */ 271 gss_name_t, /* name2 */ 272 int * /* name_equal */ 273 /* */); 274 275 OM_uint32 dummy_gss_display_name 276 ( 277 void *, /* dummy context */ 278 OM_uint32 *, /* minor_status */ 279 gss_name_t, /* input_name */ 280 gss_buffer_t, /* output_name_buffer */ 281 gss_OID * /* output_name_type */ 282 /* */); 283 284 OM_uint32 dummy_gss_import_name 285 ( 286 void *, /* dummy context */ 287 OM_uint32 *, /* minor_status */ 288 gss_buffer_t, /* input_name_buffer */ 289 gss_OID, /* input_name_type */ 290 gss_name_t * /* output_name */ 291 /* */); 292 293 OM_uint32 dummy_gss_release_name 294 ( 295 void *, /* dummy context */ 296 OM_uint32 *, /* minor_status */ 297 gss_name_t * /* input_name */ 298 /* */); 299 300 OM_uint32 dummy_gss_inquire_cred 301 ( 302 void *, /* dummy context */ 303 OM_uint32 *, /* minor_status */ 304 gss_cred_id_t, /* cred_handle */ 305 gss_name_t *, /* name */ 306 OM_uint32 *, /* lifetime */ 307 gss_cred_usage_t *, /* cred_usage */ 308 gss_OID_set * /* mechanisms */ 309 /* */); 310 311 OM_uint32 dummy_gss_inquire_context 312 ( 313 void *, /* dummy context */ 314 OM_uint32 *, /* minor_status */ 315 gss_ctx_id_t, /* context_handle */ 316 gss_name_t *, /* initiator_name */ 317 gss_name_t *, /* acceptor_name */ 318 OM_uint32 *, /* lifetime_rec */ 319 gss_OID *, /* mech_type */ 320 OM_uint32 *, /* ret_flags */ 321 int *, /* locally_initiated */ 322 int * /* open */ 323 /* */); 324 325 /* New V2 entry points */ 326 OM_uint32 dummy_gss_get_mic 327 ( 328 void *, /* dummy context */ 329 OM_uint32 *, /* minor_status */ 330 gss_ctx_id_t, /* context_handle */ 331 gss_qop_t, /* qop_req */ 332 gss_buffer_t, /* message_buffer */ 333 gss_buffer_t /* message_token */ 334 /* */); 335 336 OM_uint32 dummy_gss_verify_mic 337 ( 338 void *, /* dummy context */ 339 OM_uint32 *, /* minor_status */ 340 gss_ctx_id_t, /* context_handle */ 341 gss_buffer_t, /* message_buffer */ 342 gss_buffer_t, /* message_token */ 343 gss_qop_t * /* qop_state */ 344 /* */); 345 346 OM_uint32 dummy_gss_wrap 347 ( 348 void *, /* dummy context */ 349 OM_uint32 *, /* minor_status */ 350 gss_ctx_id_t, /* context_handle */ 351 int, /* conf_req_flag */ 352 gss_qop_t, /* qop_req */ 353 gss_buffer_t, /* input_message_buffer */ 354 int *, /* conf_state */ 355 gss_buffer_t /* output_message_buffer */ 356 /* */); 357 358 OM_uint32 dummy_gss_unwrap 359 ( 360 void *, /* dummy context */ 361 OM_uint32 *, /* minor_status */ 362 gss_ctx_id_t, /* context_handle */ 363 gss_buffer_t, /* input_message_buffer */ 364 gss_buffer_t, /* output_message_buffer */ 365 int *, /* conf_state */ 366 gss_qop_t * /* qop_state */ 367 /* */); 368 369 OM_uint32 dummy_gss_wrap_size_limit 370 ( 371 void *, /* dummy context */ 372 OM_uint32 *, /* minor_status */ 373 gss_ctx_id_t, /* context_handle */ 374 int, /* conf_req_flag */ 375 gss_qop_t, /* qop_req */ 376 OM_uint32, /* req_output_size */ 377 OM_uint32 * /* max_input_size */ 378 /* */); 379 380 OM_uint32 dummy_gss_add_cred 381 ( 382 void *, /* dummy context */ 383 OM_uint32 *, /* minor_status */ 384 gss_cred_id_t, /* input_cred_handle */ 385 gss_name_t, /* desired_name */ 386 gss_OID, /* desired_mech */ 387 gss_cred_usage_t, /* cred_usage */ 388 OM_uint32, /* initiator_time_req */ 389 OM_uint32, /* acceptor_time_req */ 390 gss_cred_id_t *, /* output_cred_handle */ 391 gss_OID_set *, /* actual_mechs */ 392 OM_uint32 *, /* initiator_time_rec */ 393 OM_uint32 * /* acceptor_time_rec */ 394 /* */); 395 396 OM_uint32 dummy_gss_inquire_cred_by_mech 397 ( 398 void *, /* dummy context */ 399 OM_uint32 *, /* minor_status */ 400 gss_cred_id_t, /* cred_handle */ 401 gss_OID, /* mech_type */ 402 gss_name_t *, /* name */ 403 OM_uint32 *, /* initiator_lifetime */ 404 OM_uint32 *, /* acceptor_lifetime */ 405 gss_cred_usage_t * /* cred_usage */ 406 /* */); 407 408 OM_uint32 dummy_gss_export_sec_context 409 ( 410 void *, /* dummy context */ 411 OM_uint32 *, /* minor_status */ 412 gss_ctx_id_t *, /* context_handle */ 413 gss_buffer_t /* interprocess_token */ 414 /* */); 415 416 OM_uint32 dummy_gss_import_sec_context 417 ( 418 void *, /* dummy context */ 419 OM_uint32 *, /* minor_status */ 420 gss_buffer_t, /* interprocess_token */ 421 gss_ctx_id_t * /* context_handle */ 422 /* */); 423 424 #if 0 425 OM_uint32 dummy_gss_release_oid 426 ( 427 OM_uint32 *, /* minor_status */ 428 gss_OID * /* oid */ 429 /* */); 430 #endif 431 432 OM_uint32 dummy_gss_internal_release_oid 433 ( 434 void *, /* dummy context */ 435 OM_uint32 *, /* minor_status */ 436 gss_OID * /* oid */ 437 /* */); 438 439 OM_uint32 dummy_gss_inquire_names_for_mech 440 ( 441 void *, /* dummy context */ 442 OM_uint32 *, /* minor_status */ 443 gss_OID, /* mechanism */ 444 gss_OID_set * /* name_types */ 445 /* */); 446 447 OM_uint32 dummy_pname_to_uid 448 ( 449 void *, /* dummy context */ 450 OM_uint32 *, /* minor status */ 451 const gss_name_t, /* pname */ 452 uid_t * /* uidOut */ 453 /* */); 454 455 456 #ifdef __cplusplus 457 } 458 #endif 459 460 #endif /* _GSSAPIP_DUMMY_H */