1 /* 2 * Copied from Firefox source extensions/auth/gssapi.h 3 */ 4 5 /* ***** BEGIN LICENSE BLOCK ***** 6 * Copyright 1993 by OpenVision Technologies, Inc. 7 * 8 * Permission to use, copy, modify, distribute, and sell this software 9 * and its documentation for any purpose is hereby granted without fee, 10 * provided that the above copyright notice appears in all copies and 11 * that both that copyright notice and this permission notice appear in 12 * supporting documentation, and that the name of OpenVision not be used 13 * in advertising or publicity pertaining to distribution of the software 14 * without specific, written prior permission. OpenVision makes no 15 * representations about the suitability of this software for any 16 * purpose. It is provided "as is" without express or implied warranty. 17 * 18 * OPENVISION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 19 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO 20 * EVENT SHALL OPENVISION BE LIABLE FOR ANY SPECIAL, INDIRECT OR 21 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 22 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 23 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 24 * PERFORMANCE OF THIS SOFTWARE. 25 ****** END LICENSE BLOCK ***** */ 26 27 #ifndef GSSAPI_H_ 28 #define GSSAPI_H_ 29 30 /* 31 * Also define _GSSAPI_H_ as that is what the Kerberos 5 code defines and 32 * what header files on some systems look for. 33 */ 34 #define _GSSAPI_H_ 35 36 /* 37 * On Mac OS X, Kerberos/Kerberos.h is used to gain access to certain 38 * system-specific Kerberos functions, but on 10.4, that file also brings 39 * in other headers that conflict with this one. 40 */ 41 #define _GSSAPI_GENERIC_H_ 42 #define _GSSAPI_KRB5_H_ 43 44 /* 45 * Define windows specific needed parameters. 46 */ 47 48 #ifndef GSS_CALLCONV 49 #if defined(_WIN32) 50 #define GSS_CALLCONV __stdcall 51 #define GSS_CALLCONV_C __cdecl 52 #else 53 #define GSS_CALLCONV 54 #define GSS_CALLCONV_C 55 #endif 56 #endif /* GSS_CALLCONV */ 57 58 #ifdef GSS_USE_FUNCTION_POINTERS 59 #ifdef _WIN32 60 #undef GSS_CALLCONV 61 #define GSS_CALLCONV 62 #define GSS_FUNC(f) (__stdcall *f##_type) 63 #else 64 #define GSS_FUNC(f) (*f##_type) 65 #endif 66 #define GSS_MAKE_TYPEDEF typedef 67 #else 68 #define GSS_FUNC(f) f 69 #define GSS_MAKE_TYPEDEF 70 #endif 71 72 /* 73 * First, include stddef.h to get size_t defined. 74 */ 75 #include <stddef.h> 76 77 /* 78 * Configure set the following 79 */ 80 81 #ifndef SIZEOF_LONG 82 #undef SIZEOF_LONG 83 #endif 84 #ifndef SIZEOF_SHORT 85 #undef SIZEOF_SHORT 86 #endif 87 88 #ifndef EXTERN_C_BEGIN 89 #ifdef __cplusplus 90 #define EXTERN_C_BEGIN extern "C" { 91 #define EXTERN_C_END } 92 #else 93 #define EXTERN_C_BEGIN 94 #define EXTERN_C_END 95 #endif 96 #endif 97 98 EXTERN_C_BEGIN 99 100 /* 101 * If the platform supports the xom.h header file, it should be 102 * included here. 103 */ 104 /* #include <xom.h> */ 105 106 107 /* 108 * Now define the three implementation-dependent types. 109 */ 110 111 typedef void * gss_name_t ; 112 typedef void * gss_ctx_id_t ; 113 typedef void * gss_cred_id_t ; 114 115 116 /* 117 * The following type must be defined as the smallest natural 118 * unsigned integer supported by the platform that has at least 119 * 32 bits of precision. 120 */ 121 122 #if SIZEOF_LONG == 4 123 typedef unsigned long gss_uint32; 124 #elif SIZEOF_SHORT == 4 125 typedef unsigned short gss_uint32; 126 #else 127 typedef unsigned int gss_uint32; 128 #endif 129 130 #ifdef OM_STRING 131 132 /* 133 * We have included the xom.h header file. Verify that OM_uint32 134 * is defined correctly. 135 */ 136 137 #if sizeof(gss_uint32) != sizeof(OM_uint32) 138 #error Incompatible definition of OM_uint32 from xom.h 139 #endif 140 141 typedef OM_object_identifier gss_OID_desc, *gss_OID; 142 143 #else /* !OM_STRING */ 144 145 /* 146 * We can't use X/Open definitions, so roll our own. 147 */ 148 typedef gss_uint32 OM_uint32; 149 typedef struct gss_OID_desc_struct { 150 OM_uint32 length; 151 void *elements; 152 } gss_OID_desc, *gss_OID; 153 154 #endif /* !OM_STRING */ 155 156 typedef struct gss_OID_set_desc_struct { 157 size_t count; 158 gss_OID elements; 159 } gss_OID_set_desc, *gss_OID_set; 160 161 162 /* 163 * For now, define a QOP-type as an OM_uint32 164 */ 165 typedef OM_uint32 gss_qop_t; 166 167 typedef int gss_cred_usage_t; 168 169 170 typedef struct gss_buffer_desc_struct { 171 size_t length; 172 void *value; 173 } gss_buffer_desc, *gss_buffer_t; 174 175 typedef struct gss_channel_bindings_struct { 176 OM_uint32 initiator_addrtype; 177 gss_buffer_desc initiator_address; 178 OM_uint32 acceptor_addrtype; 179 gss_buffer_desc acceptor_address; 180 gss_buffer_desc application_data; 181 } *gss_channel_bindings_t; 182 183 184 /* 185 * Flag bits for context-level services. 186 */ 187 #define GSS_C_DELEG_FLAG 1 188 #define GSS_C_MUTUAL_FLAG 2 189 #define GSS_C_REPLAY_FLAG 4 190 #define GSS_C_SEQUENCE_FLAG 8 191 #define GSS_C_CONF_FLAG 16 192 #define GSS_C_INTEG_FLAG 32 193 #define GSS_C_ANON_FLAG 64 194 #define GSS_C_PROT_READY_FLAG 128 195 #define GSS_C_TRANS_FLAG 256 196 197 /* 198 * Credential usage options 199 */ 200 #define GSS_C_BOTH 0 201 #define GSS_C_INITIATE 1 202 #define GSS_C_ACCEPT 2 203 204 /* 205 * Status code types for gss_display_status 206 */ 207 #define GSS_C_GSS_CODE 1 208 #define GSS_C_MECH_CODE 2 209 210 /* 211 * The constant definitions for channel-bindings address families 212 */ 213 #define GSS_C_AF_UNSPEC 0 214 #define GSS_C_AF_LOCAL 1 215 #define GSS_C_AF_INET 2 216 #define GSS_C_AF_IMPLINK 3 217 #define GSS_C_AF_PUP 4 218 #define GSS_C_AF_CHAOS 5 219 #define GSS_C_AF_NS 6 220 #define GSS_C_AF_NBS 7 221 #define GSS_C_AF_ECMA 8 222 #define GSS_C_AF_DATAKIT 9 223 #define GSS_C_AF_CCITT 10 224 #define GSS_C_AF_SNA 11 225 #define GSS_C_AF_DECnet 12 226 #define GSS_C_AF_DLI 13 227 #define GSS_C_AF_LAT 14 228 #define GSS_C_AF_HYLINK 15 229 #define GSS_C_AF_APPLETALK 16 230 #define GSS_C_AF_BSC 17 231 #define GSS_C_AF_DSS 18 232 #define GSS_C_AF_OSI 19 233 #define GSS_C_AF_X25 21 234 235 #define GSS_C_AF_NULLADDR 255 236 237 /* 238 * Various Null values 239 */ 240 #define GSS_C_NO_NAME ((gss_name_t) 0) 241 #define GSS_C_NO_BUFFER ((gss_buffer_t) 0) 242 #define GSS_C_NO_OID ((gss_OID) 0) 243 #define GSS_C_NO_OID_SET ((gss_OID_set) 0) 244 #define GSS_C_NO_CONTEXT ((gss_ctx_id_t) 0) 245 #define GSS_C_NO_CREDENTIAL ((gss_cred_id_t) 0) 246 #define GSS_C_NO_CHANNEL_BINDINGS ((gss_channel_bindings_t) 0) 247 #define GSS_C_EMPTY_BUFFER {0, NULL} 248 249 /* 250 * Some alternate names for a couple of the above 251 * values. These are defined for V1 compatibility. 252 */ 253 #define GSS_C_NULL_OID GSS_C_NO_OID 254 #define GSS_C_NULL_OID_SET GSS_C_NO_OID_SET 255 256 /* 257 * Define the default Quality of Protection for per-message 258 * services. Note that an implementation that offers multiple 259 * levels of QOP may define GSS_C_QOP_DEFAULT to be either zero 260 * (as done here) to mean "default protection", or to a specific 261 * explicit QOP value. However, a value of 0 should always be 262 * interpreted by a GSSAPI implementation as a request for the 263 * default protection level. 264 */ 265 #define GSS_C_QOP_DEFAULT 0 266 267 /* 268 * Expiration time of 2^32-1 seconds means infinite lifetime for a 269 * credential or security context 270 */ 271 #define GSS_C_INDEFINITE 0xfffffffful 272 273 /* 274 * The implementation must reserve static storage for a 275 * gss_OID_desc object containing the value 276 * {10, (void *)"\x2a\x86\x48\x86\xf7\x12" 277 * "\x01\x02\x01\x01"}, 278 * corresponding to an object-identifier value of 279 * {iso(1) member-body(2) United States(840) mit(113554) 280 * infosys(1) gssapi(2) generic(1) user_name(1)}. The constant 281 * GSS_C_NT_USER_NAME should be initialized to point 282 * to that gss_OID_desc. 283 */ 284 extern gss_OID GSS_C_NT_USER_NAME; 285 286 /* 287 * The implementation must reserve static storage for a 288 * gss_OID_desc object containing the value 289 * {10, (void *)"\x2a\x86\x48\x86\xf7\x12" 290 * "\x01\x02\x01\x02"}, 291 * corresponding to an object-identifier value of 292 * {iso(1) member-body(2) United States(840) mit(113554) 293 * infosys(1) gssapi(2) generic(1) machine_uid_name(2)}. 294 * The constant GSS_C_NT_MACHINE_UID_NAME should be 295 * initialized to point to that gss_OID_desc. 296 */ 297 extern gss_OID GSS_C_NT_MACHINE_UID_NAME; 298 299 /* 300 * The implementation must reserve static storage for a 301 * gss_OID_desc object containing the value 302 * {10, (void *)"\x2a\x86\x48\x86\xf7\x12" 303 * "\x01\x02\x01\x03"}, 304 * corresponding to an object-identifier value of 305 * {iso(1) member-body(2) United States(840) mit(113554) 306 * infosys(1) gssapi(2) generic(1) string_uid_name(3)}. 307 * The constant GSS_C_NT_STRING_UID_NAME should be 308 * initialized to point to that gss_OID_desc. 309 */ 310 extern gss_OID GSS_C_NT_STRING_UID_NAME; 311 312 /* 313 * The implementation must reserve static storage for a 314 * gss_OID_desc object containing the value 315 * {6, (void *)"\x2b\x06\x01\x05\x06\x02"}, 316 * corresponding to an object-identifier value of 317 * {iso(1) org(3) dod(6) internet(1) security(5) 318 * nametypes(6) gss-host-based-services(2)). The constant 319 * GSS_C_NT_HOSTBASED_SERVICE_X should be initialized to point 320 * to that gss_OID_desc. This is a deprecated OID value, and 321 * implementations wishing to support hostbased-service names 322 * should instead use the GSS_C_NT_HOSTBASED_SERVICE OID, 323 * defined below, to identify such names; 324 * GSS_C_NT_HOSTBASED_SERVICE_X should be accepted a synonym 325 * for GSS_C_NT_HOSTBASED_SERVICE when presented as an input 326 * parameter, but should not be emitted by GSSAPI 327 * implementations 328 */ 329 extern gss_OID GSS_C_NT_HOSTBASED_SERVICE_X; 330 331 /* 332 * The implementation must reserve static storage for a 333 * gss_OID_desc object containing the value 334 * {10, (void *)"\x2a\x86\x48\x86\xf7\x12" 335 * "\x01\x02\x01\x04"}, corresponding to an 336 * object-identifier value of {iso(1) member-body(2) 337 * Unites States(840) mit(113554) infosys(1) gssapi(2) 338 * generic(1) service_name(4)}. The constant 339 * GSS_C_NT_HOSTBASED_SERVICE should be initialized 340 * to point to that gss_OID_desc. 341 */ 342 extern gss_OID GSS_C_NT_HOSTBASED_SERVICE; 343 344 345 /* 346 * The implementation must reserve static storage for a 347 * gss_OID_desc object containing the value 348 * {6, (void *)"\x2b\x06\01\x05\x06\x03"}, 349 * corresponding to an object identifier value of 350 * {1(iso), 3(org), 6(dod), 1(internet), 5(security), 351 * 6(nametypes), 3(gss-anonymous-name)}. The constant 352 * and GSS_C_NT_ANONYMOUS should be initialized to point 353 * to that gss_OID_desc. 354 */ 355 extern gss_OID GSS_C_NT_ANONYMOUS; 356 357 /* 358 * The implementation must reserve static storage for a 359 * gss_OID_desc object containing the value 360 * {6, (void *)"\x2b\x06\x01\x05\x06\x04"}, 361 * corresponding to an object-identifier value of 362 * {1(iso), 3(org), 6(dod), 1(internet), 5(security), 363 * 6(nametypes), 4(gss-api-exported-name)}. The constant 364 * GSS_C_NT_EXPORT_NAME should be initialized to point 365 * to that gss_OID_desc. 366 */ 367 extern gss_OID GSS_C_NT_EXPORT_NAME; 368 369 /* Major status codes */ 370 371 #define GSS_S_COMPLETE 0 372 373 /* 374 * Some "helper" definitions to make the status code macros obvious. 375 */ 376 #define GSS_C_CALLING_ERROR_OFFSET 24 377 #define GSS_C_ROUTINE_ERROR_OFFSET 16 378 #define GSS_C_SUPPLEMENTARY_OFFSET 0 379 #define GSS_C_CALLING_ERROR_MASK 0377ul 380 #define GSS_C_ROUTINE_ERROR_MASK 0377ul 381 #define GSS_C_SUPPLEMENTARY_MASK 0177777ul 382 383 /* 384 * The macros that test status codes for error conditions. 385 * Note that the GSS_ERROR() macro has changed slightly from 386 * the V1 GSSAPI so that it now evaluates its argument 387 * only once. 388 */ 389 #define GSS_CALLING_ERROR(x) \ 390 (x & (GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET)) 391 #define GSS_ROUTINE_ERROR(x) \ 392 (x & (GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET)) 393 #define GSS_SUPPLEMENTARY_INFO(x) \ 394 (x & (GSS_C_SUPPLEMENTARY_MASK << GSS_C_SUPPLEMENTARY_OFFSET)) 395 #define GSS_ERROR(x) \ 396 (x & ((GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET) | \ 397 (GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET))) 398 399 /* 400 * Now the actual status code definitions 401 */ 402 403 /* 404 * Calling errors: 405 */ 406 #define GSS_S_CALL_INACCESSIBLE_READ \ 407 (1ul << GSS_C_CALLING_ERROR_OFFSET) 408 #define GSS_S_CALL_INACCESSIBLE_WRITE \ 409 (2ul << GSS_C_CALLING_ERROR_OFFSET) 410 #define GSS_S_CALL_BAD_STRUCTURE \ 411 (3ul << GSS_C_CALLING_ERROR_OFFSET) 412 413 /* 414 * Routine errors: 415 */ 416 #define GSS_S_BAD_MECH (1ul << GSS_C_ROUTINE_ERROR_OFFSET) 417 #define GSS_S_BAD_NAME (2ul << GSS_C_ROUTINE_ERROR_OFFSET) 418 #define GSS_S_BAD_NAMETYPE (3ul << GSS_C_ROUTINE_ERROR_OFFSET) 419 #define GSS_S_BAD_BINDINGS (4ul << GSS_C_ROUTINE_ERROR_OFFSET) 420 #define GSS_S_BAD_STATUS (5ul << GSS_C_ROUTINE_ERROR_OFFSET) 421 #define GSS_S_BAD_SIG (6ul << GSS_C_ROUTINE_ERROR_OFFSET) 422 #define GSS_S_BAD_MIC GSS_S_BAD_SIG 423 #define GSS_S_NO_CRED (7ul << GSS_C_ROUTINE_ERROR_OFFSET) 424 #define GSS_S_NO_CONTEXT (8ul << GSS_C_ROUTINE_ERROR_OFFSET) 425 #define GSS_S_DEFECTIVE_TOKEN (9ul << GSS_C_ROUTINE_ERROR_OFFSET) 426 #define GSS_S_DEFECTIVE_CREDENTIAL (10ul << GSS_C_ROUTINE_ERROR_OFFSET) 427 #define GSS_S_CREDENTIALS_EXPIRED (11ul << GSS_C_ROUTINE_ERROR_OFFSET) 428 #define GSS_S_CONTEXT_EXPIRED (12ul << GSS_C_ROUTINE_ERROR_OFFSET) 429 #define GSS_S_FAILURE (13ul << GSS_C_ROUTINE_ERROR_OFFSET) 430 #define GSS_S_BAD_QOP (14ul << GSS_C_ROUTINE_ERROR_OFFSET) 431 #define GSS_S_UNAUTHORIZED (15ul << GSS_C_ROUTINE_ERROR_OFFSET) 432 #define GSS_S_UNAVAILABLE (16ul << GSS_C_ROUTINE_ERROR_OFFSET) 433 #define GSS_S_DUPLICATE_ELEMENT (17ul << GSS_C_ROUTINE_ERROR_OFFSET) 434 #define GSS_S_NAME_NOT_MN (18ul << GSS_C_ROUTINE_ERROR_OFFSET) 435 436 /* 437 * Supplementary info bits: 438 */ 439 #define GSS_S_CONTINUE_NEEDED (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 0)) 440 #define GSS_S_DUPLICATE_TOKEN (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 1)) 441 #define GSS_S_OLD_TOKEN (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 2)) 442 #define GSS_S_UNSEQ_TOKEN (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 3)) 443 #define GSS_S_GAP_TOKEN (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 4)) 444 445 /* 446 * Finally, function prototypes for the GSS-API routines. 447 */ 448 449 GSS_MAKE_TYPEDEF 450 OM_uint32 451 GSS_CALLCONV GSS_FUNC(gss_acquire_cred) 452 (OM_uint32 *, /* minor_status */ 453 const gss_name_t, /* desired_name */ 454 OM_uint32, /* time_req */ 455 const gss_OID_set, /* desired_mechs */ 456 gss_cred_usage_t, /* cred_usage */ 457 gss_cred_id_t *, /* output_cred_handle */ 458 gss_OID_set *, /* actual_mechs */ 459 OM_uint32 * /* time_rec */ 460 ); 461 462 GSS_MAKE_TYPEDEF 463 OM_uint32 464 GSS_CALLCONV GSS_FUNC(gss_release_cred) 465 (OM_uint32 *, /* minor_status */ 466 gss_cred_id_t * /* cred_handle */ 467 ); 468 469 GSS_MAKE_TYPEDEF 470 OM_uint32 471 GSS_CALLCONV GSS_FUNC(gss_init_sec_context) 472 (OM_uint32 *, /* minor_status */ 473 const gss_cred_id_t, /* initiator_cred_handle */ 474 gss_ctx_id_t *, /* context_handle */ 475 const gss_name_t, /* target_name */ 476 const gss_OID, /* mech_type */ 477 OM_uint32, /* req_flags */ 478 OM_uint32, /* time_req */ 479 const gss_channel_bindings_t, /* input_chan_bindings */ 480 const gss_buffer_t, /* input_token */ 481 gss_OID *, /* actual_mech_type */ 482 gss_buffer_t, /* output_token */ 483 OM_uint32 *, /* ret_flags */ 484 OM_uint32 * /* time_rec */ 485 ); 486 487 GSS_MAKE_TYPEDEF 488 OM_uint32 489 GSS_CALLCONV GSS_FUNC(gss_accept_sec_context) 490 (OM_uint32 *, /* minor_status */ 491 gss_ctx_id_t *, /* context_handle */ 492 const gss_cred_id_t, /* acceptor_cred_handle */ 493 const gss_buffer_t, /* input_token_buffer */ 494 const gss_channel_bindings_t, /* input_chan_bindings */ 495 gss_name_t *, /* src_name */ 496 gss_OID *, /* mech_type */ 497 gss_buffer_t, /* output_token */ 498 OM_uint32 *, /* ret_flags */ 499 OM_uint32 *, /* time_rec */ 500 gss_cred_id_t * /* delegated_cred_handle */ 501 ); 502 503 GSS_MAKE_TYPEDEF 504 OM_uint32 505 GSS_CALLCONV GSS_FUNC(gss_process_context_token) 506 (OM_uint32 *, /* minor_status */ 507 const gss_ctx_id_t, /* context_handle */ 508 const gss_buffer_t /* token_buffer */ 509 ); 510 511 GSS_MAKE_TYPEDEF 512 OM_uint32 513 GSS_CALLCONV GSS_FUNC(gss_delete_sec_context) 514 (OM_uint32 *, /* minor_status */ 515 gss_ctx_id_t *, /* context_handle */ 516 gss_buffer_t /* output_token */ 517 ); 518 519 GSS_MAKE_TYPEDEF 520 OM_uint32 521 GSS_CALLCONV GSS_FUNC(gss_context_time) 522 (OM_uint32 *, /* minor_status */ 523 const gss_ctx_id_t, /* context_handle */ 524 OM_uint32 * /* time_rec */ 525 ); 526 527 GSS_MAKE_TYPEDEF 528 OM_uint32 529 GSS_CALLCONV GSS_FUNC(gss_get_mic) 530 (OM_uint32 *, /* minor_status */ 531 const gss_ctx_id_t, /* context_handle */ 532 gss_qop_t, /* qop_req */ 533 const gss_buffer_t, /* message_buffer */ 534 gss_buffer_t /* message_token */ 535 ); 536 537 538 GSS_MAKE_TYPEDEF 539 OM_uint32 540 GSS_CALLCONV GSS_FUNC(gss_verify_mic) 541 (OM_uint32 *, /* minor_status */ 542 const gss_ctx_id_t, /* context_handle */ 543 const gss_buffer_t, /* message_buffer */ 544 const gss_buffer_t, /* token_buffer */ 545 gss_qop_t * /* qop_state */ 546 ); 547 548 GSS_MAKE_TYPEDEF 549 OM_uint32 550 GSS_CALLCONV GSS_FUNC(gss_wrap) 551 (OM_uint32 *, /* minor_status */ 552 const gss_ctx_id_t, /* context_handle */ 553 int, /* conf_req_flag */ 554 gss_qop_t, /* qop_req */ 555 const gss_buffer_t, /* input_message_buffer */ 556 int *, /* conf_state */ 557 gss_buffer_t /* output_message_buffer */ 558 ); 559 560 561 GSS_MAKE_TYPEDEF 562 OM_uint32 563 GSS_CALLCONV GSS_FUNC(gss_unwrap) 564 (OM_uint32 *, /* minor_status */ 565 const gss_ctx_id_t, /* context_handle */ 566 const gss_buffer_t, /* input_message_buffer */ 567 gss_buffer_t, /* output_message_buffer */ 568 int *, /* conf_state */ 569 gss_qop_t * /* qop_state */ 570 ); 571 572 GSS_MAKE_TYPEDEF 573 OM_uint32 574 GSS_CALLCONV GSS_FUNC(gss_display_status) 575 (OM_uint32 *, /* minor_status */ 576 OM_uint32, /* status_value */ 577 int, /* status_type */ 578 const gss_OID, /* mech_type */ 579 OM_uint32 *, /* message_context */ 580 gss_buffer_t /* status_string */ 581 ); 582 583 GSS_MAKE_TYPEDEF 584 OM_uint32 585 GSS_CALLCONV GSS_FUNC(gss_indicate_mechs) 586 (OM_uint32 *, /* minor_status */ 587 gss_OID_set * /* mech_set */ 588 ); 589 590 GSS_MAKE_TYPEDEF 591 OM_uint32 592 GSS_CALLCONV GSS_FUNC(gss_compare_name) 593 (OM_uint32 *, /* minor_status */ 594 const gss_name_t, /* name1 */ 595 const gss_name_t, /* name2 */ 596 int * /* name_equal */ 597 ); 598 599 GSS_MAKE_TYPEDEF 600 OM_uint32 601 GSS_CALLCONV GSS_FUNC(gss_display_name) 602 (OM_uint32 *, /* minor_status */ 603 const gss_name_t, /* input_name */ 604 gss_buffer_t, /* output_name_buffer */ 605 gss_OID * /* output_name_type */ 606 ); 607 608 GSS_MAKE_TYPEDEF 609 OM_uint32 610 GSS_CALLCONV GSS_FUNC(gss_import_name) 611 (OM_uint32 *, /* minor_status */ 612 const gss_buffer_t, /* input_name_buffer */ 613 const gss_OID, /* input_name_type */ 614 gss_name_t * /* output_name */ 615 ); 616 617 GSS_MAKE_TYPEDEF 618 OM_uint32 619 GSS_CALLCONV GSS_FUNC(gss_export_name) 620 (OM_uint32 *, /* minor_status */ 621 const gss_name_t, /* input_name */ 622 gss_buffer_t /* exported_name */ 623 ); 624 625 GSS_MAKE_TYPEDEF 626 OM_uint32 627 GSS_CALLCONV GSS_FUNC(gss_release_name) 628 (OM_uint32 *, /* minor_status */ 629 gss_name_t * /* input_name */ 630 ); 631 632 GSS_MAKE_TYPEDEF 633 OM_uint32 634 GSS_CALLCONV GSS_FUNC(gss_release_buffer) 635 (OM_uint32 *, /* minor_status */ 636 gss_buffer_t /* buffer */ 637 ); 638 639 GSS_MAKE_TYPEDEF 640 OM_uint32 641 GSS_CALLCONV GSS_FUNC(gss_release_oid_set) 642 (OM_uint32 *, /* minor_status */ 643 gss_OID_set * /* set */ 644 ); 645 646 GSS_MAKE_TYPEDEF 647 OM_uint32 648 GSS_CALLCONV GSS_FUNC(gss_inquire_cred) 649 (OM_uint32 *, /* minor_status */ 650 const gss_cred_id_t, /* cred_handle */ 651 gss_name_t *, /* name */ 652 OM_uint32 *, /* lifetime */ 653 gss_cred_usage_t *, /* cred_usage */ 654 gss_OID_set * /* mechanisms */ 655 ); 656 657 GSS_MAKE_TYPEDEF 658 OM_uint32 659 GSS_CALLCONV GSS_FUNC(gss_inquire_context) 660 (OM_uint32 *, /* minor_status */ 661 const gss_ctx_id_t, /* context_handle */ 662 gss_name_t *, /* src_name */ 663 gss_name_t *, /* targ_name */ 664 OM_uint32 *, /* lifetime_rec */ 665 gss_OID *, /* mech_type */ 666 OM_uint32 *, /* ctx_flags */ 667 int *, /* locally_initiated */ 668 int * /* open */ 669 ); 670 671 GSS_MAKE_TYPEDEF 672 OM_uint32 673 GSS_CALLCONV GSS_FUNC(gss_wrap_size_limit) 674 (OM_uint32 *, /* minor_status */ 675 const gss_ctx_id_t, /* context_handle */ 676 int, /* conf_req_flag */ 677 gss_qop_t, /* qop_req */ 678 OM_uint32, /* req_output_size */ 679 OM_uint32 * /* max_input_size */ 680 ); 681 682 GSS_MAKE_TYPEDEF 683 OM_uint32 684 GSS_CALLCONV GSS_FUNC(gss_add_cred) 685 (OM_uint32 *, /* minor_status */ 686 const gss_cred_id_t, /* input_cred_handle */ 687 const gss_name_t, /* desired_name */ 688 const gss_OID, /* desired_mech */ 689 gss_cred_usage_t, /* cred_usage */ 690 OM_uint32, /* initiator_time_req */ 691 OM_uint32, /* acceptor_time_req */ 692 gss_cred_id_t *, /* output_cred_handle */ 693 gss_OID_set *, /* actual_mechs */ 694 OM_uint32 *, /* initiator_time_rec */ 695 OM_uint32 * /* acceptor_time_rec */ 696 ); 697 698 GSS_MAKE_TYPEDEF 699 OM_uint32 700 GSS_CALLCONV GSS_FUNC(gss_inquire_cred_by_mech) 701 (OM_uint32 *, /* minor_status */ 702 const gss_cred_id_t, /* cred_handle */ 703 const gss_OID, /* mech_type */ 704 gss_name_t *, /* name */ 705 OM_uint32 *, /* initiator_lifetime */ 706 OM_uint32 *, /* acceptor_lifetime */ 707 gss_cred_usage_t * /* cred_usage */ 708 ); 709 710 GSS_MAKE_TYPEDEF 711 OM_uint32 712 GSS_CALLCONV GSS_FUNC(gss_export_sec_context) 713 (OM_uint32 *, /* minor_status */ 714 gss_ctx_id_t *, /* context_handle */ 715 gss_buffer_t /* interprocess_token */ 716 ); 717 718 GSS_MAKE_TYPEDEF 719 OM_uint32 720 GSS_CALLCONV GSS_FUNC(gss_import_sec_context) 721 (OM_uint32 *, /* minor_status */ 722 const gss_buffer_t, /* interprocess_token */ 723 gss_ctx_id_t * /* context_handle */ 724 ); 725 726 GSS_MAKE_TYPEDEF 727 OM_uint32 728 GSS_CALLCONV GSS_FUNC(gss_create_empty_oid_set) 729 (OM_uint32 *, /* minor_status */ 730 gss_OID_set * /* oid_set */ 731 ); 732 733 GSS_MAKE_TYPEDEF 734 OM_uint32 735 GSS_CALLCONV GSS_FUNC(gss_add_oid_set_member) 736 (OM_uint32 *, /* minor_status */ 737 const gss_OID, /* member_oid */ 738 gss_OID_set * /* oid_set */ 739 ); 740 741 GSS_MAKE_TYPEDEF 742 OM_uint32 743 GSS_CALLCONV GSS_FUNC(gss_test_oid_set_member) 744 (OM_uint32 *, /* minor_status */ 745 const gss_OID, /* member */ 746 const gss_OID_set, /* set */ 747 int * /* present */ 748 ); 749 750 GSS_MAKE_TYPEDEF 751 OM_uint32 752 GSS_CALLCONV GSS_FUNC(gss_inquire_names_for_mech) 753 (OM_uint32 *, /* minor_status */ 754 const gss_OID, /* mechanism */ 755 gss_OID_set * /* name_types */ 756 ); 757 758 GSS_MAKE_TYPEDEF 759 OM_uint32 760 GSS_CALLCONV GSS_FUNC(gss_inquire_mechs_for_name) 761 (OM_uint32 *, /* minor_status */ 762 const gss_name_t, /* input_name */ 763 gss_OID_set * /* mech_types */ 764 ); 765 766 GSS_MAKE_TYPEDEF 767 OM_uint32 768 GSS_CALLCONV GSS_FUNC(gss_canonicalize_name) 769 (OM_uint32 *, /* minor_status */ 770 const gss_name_t, /* input_name */ 771 const gss_OID, /* mech_type */ 772 gss_name_t * /* output_name */ 773 ); 774 775 GSS_MAKE_TYPEDEF 776 OM_uint32 777 GSS_CALLCONV GSS_FUNC(gss_duplicate_name) 778 (OM_uint32 *, /* minor_status */ 779 const gss_name_t, /* src_name */ 780 gss_name_t * /* dest_name */ 781 ); 782 783 /* 784 * The following routines are obsolete variants of gss_get_mic, 785 * gss_verify_mic, gss_wrap and gss_unwrap. They should be 786 * provided by GSSAPI V2 implementations for backwards 787 * compatibility with V1 applications. Distinct entrypoints 788 * (as opposed to #defines) should be provided, both to allow 789 * GSSAPI V1 applications to link against GSSAPI V2 implementations, 790 * and to retain the slight parameter type differences between the 791 * obsolete versions of these routines and their current forms. 792 */ 793 794 GSS_MAKE_TYPEDEF 795 OM_uint32 796 GSS_CALLCONV GSS_FUNC(gss_sign) 797 (OM_uint32 *, /* minor_status */ 798 gss_ctx_id_t, /* context_handle */ 799 int, /* qop_req */ 800 gss_buffer_t, /* message_buffer */ 801 gss_buffer_t /* message_token */ 802 ); 803 804 805 GSS_MAKE_TYPEDEF 806 OM_uint32 807 GSS_CALLCONV GSS_FUNC(gss_verify) 808 (OM_uint32 *, /* minor_status */ 809 gss_ctx_id_t, /* context_handle */ 810 gss_buffer_t, /* message_buffer */ 811 gss_buffer_t, /* token_buffer */ 812 int * /* qop_state */ 813 ); 814 815 GSS_MAKE_TYPEDEF 816 OM_uint32 817 GSS_CALLCONV GSS_FUNC(gss_seal) 818 (OM_uint32 *, /* minor_status */ 819 gss_ctx_id_t, /* context_handle */ 820 int, /* conf_req_flag */ 821 int, /* qop_req */ 822 gss_buffer_t, /* input_message_buffer */ 823 int *, /* conf_state */ 824 gss_buffer_t /* output_message_buffer */ 825 ); 826 827 828 GSS_MAKE_TYPEDEF 829 OM_uint32 830 GSS_CALLCONV GSS_FUNC(gss_unseal) 831 (OM_uint32 *, /* minor_status */ 832 gss_ctx_id_t, /* context_handle */ 833 gss_buffer_t, /* input_message_buffer */ 834 gss_buffer_t, /* output_message_buffer */ 835 int *, /* conf_state */ 836 int * /* qop_state */ 837 ); 838 839 840 841 EXTERN_C_END 842 843 #endif /* GSSAPI_H_ */ 844 845