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