gssapi.h revision c407dc5cd9bdc5668497f21b26b09d988ab439de
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 98EXTERN_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 111typedef void * gss_name_t ; 112typedef void * gss_ctx_id_t ; 113typedef 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 123typedef unsigned long gss_uint32; 124#elif SIZEOF_SHORT == 4 125typedef unsigned short gss_uint32; 126#else 127typedef 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 141typedef 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 */ 148typedef gss_uint32 OM_uint32; 149typedef struct gss_OID_desc_struct { 150 OM_uint32 length; 151 void *elements; 152} gss_OID_desc, *gss_OID; 153 154#endif /* !OM_STRING */ 155 156typedef 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 */ 165typedef OM_uint32 gss_qop_t; 166 167typedef int gss_cred_usage_t; 168 169 170typedef struct gss_buffer_desc_struct { 171 size_t length; 172 void *value; 173} gss_buffer_desc, *gss_buffer_t; 174 175typedef 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 */ 284extern 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 */ 297extern 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 */ 310extern 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 */ 329extern 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 */ 342extern 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 */ 355extern 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 */ 367extern 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 449GSS_MAKE_TYPEDEF 450OM_uint32 451GSS_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 462GSS_MAKE_TYPEDEF 463OM_uint32 464GSS_CALLCONV GSS_FUNC(gss_release_cred) 465(OM_uint32 *, /* minor_status */ 466 gss_cred_id_t * /* cred_handle */ 467 ); 468 469GSS_MAKE_TYPEDEF 470OM_uint32 471GSS_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 487GSS_MAKE_TYPEDEF 488OM_uint32 489GSS_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 503GSS_MAKE_TYPEDEF 504OM_uint32 505GSS_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 511GSS_MAKE_TYPEDEF 512OM_uint32 513GSS_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 519GSS_MAKE_TYPEDEF 520OM_uint32 521GSS_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 527GSS_MAKE_TYPEDEF 528OM_uint32 529GSS_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 538GSS_MAKE_TYPEDEF 539OM_uint32 540GSS_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 548GSS_MAKE_TYPEDEF 549OM_uint32 550GSS_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 561GSS_MAKE_TYPEDEF 562OM_uint32 563GSS_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 572GSS_MAKE_TYPEDEF 573OM_uint32 574GSS_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 583GSS_MAKE_TYPEDEF 584OM_uint32 585GSS_CALLCONV GSS_FUNC(gss_indicate_mechs) 586(OM_uint32 *, /* minor_status */ 587 gss_OID_set * /* mech_set */ 588 ); 589 590GSS_MAKE_TYPEDEF 591OM_uint32 592GSS_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 599GSS_MAKE_TYPEDEF 600OM_uint32 601GSS_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 608GSS_MAKE_TYPEDEF 609OM_uint32 610GSS_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 617GSS_MAKE_TYPEDEF 618OM_uint32 619GSS_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 625GSS_MAKE_TYPEDEF 626OM_uint32 627GSS_CALLCONV GSS_FUNC(gss_release_name) 628(OM_uint32 *, /* minor_status */ 629 gss_name_t * /* input_name */ 630 ); 631 632GSS_MAKE_TYPEDEF 633OM_uint32 634GSS_CALLCONV GSS_FUNC(gss_release_buffer) 635(OM_uint32 *, /* minor_status */ 636 gss_buffer_t /* buffer */ 637 ); 638 639GSS_MAKE_TYPEDEF 640OM_uint32 641GSS_CALLCONV GSS_FUNC(gss_release_oid_set) 642(OM_uint32 *, /* minor_status */ 643 gss_OID_set * /* set */ 644 ); 645 646GSS_MAKE_TYPEDEF 647OM_uint32 648GSS_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 657GSS_MAKE_TYPEDEF 658OM_uint32 659GSS_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 671GSS_MAKE_TYPEDEF 672OM_uint32 673GSS_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 682GSS_MAKE_TYPEDEF 683OM_uint32 684GSS_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 698GSS_MAKE_TYPEDEF 699OM_uint32 700GSS_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 710GSS_MAKE_TYPEDEF 711OM_uint32 712GSS_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 718GSS_MAKE_TYPEDEF 719OM_uint32 720GSS_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 726GSS_MAKE_TYPEDEF 727OM_uint32 728GSS_CALLCONV GSS_FUNC(gss_create_empty_oid_set) 729(OM_uint32 *, /* minor_status */ 730 gss_OID_set * /* oid_set */ 731 ); 732 733GSS_MAKE_TYPEDEF 734OM_uint32 735GSS_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 741GSS_MAKE_TYPEDEF 742OM_uint32 743GSS_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 750GSS_MAKE_TYPEDEF 751OM_uint32 752GSS_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 758GSS_MAKE_TYPEDEF 759OM_uint32 760GSS_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 766GSS_MAKE_TYPEDEF 767OM_uint32 768GSS_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 775GSS_MAKE_TYPEDEF 776OM_uint32 777GSS_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 841EXTERN_C_END 842 843#endif /* GSSAPI_H_ */ 844 845