31 #if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__)
32 #define GSS_CALLCONV __stdcall
33 #define GSS_CALLCONV_C __cdecl
36 #define GSS_CALLCONV_C
40 #ifdef GSS_USE_FUNCTION_POINTERS
41 #define GSS_FUNC(f) (*f##_type)
42 #define GSS_MAKE_TYPEDEF typedef
45 #define GSS_MAKE_TYPEDEF
48 #include "globus_common.h"
60 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
121 #define GLOBUS_GSI_GSSAPI_MODULE (&globus_i_gsi_gssapi_module)
124 globus_module_descriptor_t globus_i_gsi_gssapi_module;
126 #define _GGSL(s) globus_common_i18n_get_string(GLOBUS_GSI_GSSAPI_MODULE,\
141 typedef struct gss_name_desc_struct * gss_name_t;
142 typedef struct gss_ctx_id_desc_struct * gss_ctx_id_t;
143 typedef struct gss_cred_id_desc_struct * gss_cred_id_t;
157 #if sizeof(globus_uint) != sizeof(OM_uint32)
158 #error Incompatible definition of OM_uint32 from xom.h
161 typedef OM_object_identifier gss_OID_desc, *gss_OID;
168 typedef globus_uint_t OM_uint32;
169 typedef struct gss_OID_desc_struct
173 } gss_OID_desc, *gss_OID;
177 typedef struct gss_OID_set_desc_struct
181 } gss_OID_set_desc, *gss_OID_set;
187 typedef OM_uint32 gss_qop_t;
189 typedef int gss_cred_usage_t;
192 typedef struct gss_buffer_desc_struct
196 } gss_buffer_desc, *gss_buffer_t;
198 typedef struct gss_channel_bindings_struct
200 OM_uint32 initiator_addrtype;
201 gss_buffer_desc initiator_address;
202 OM_uint32 acceptor_addrtype;
203 gss_buffer_desc acceptor_address;
204 gss_buffer_desc application_data;
205 } *gss_channel_bindings_t;
210 #define GSS_C_DELEG_FLAG 1
211 #define GSS_C_MUTUAL_FLAG 2
212 #define GSS_C_REPLAY_FLAG 4
213 #define GSS_C_SEQUENCE_FLAG 8
214 #define GSS_C_CONF_FLAG 16
215 #define GSS_C_INTEG_FLAG 32
216 #define GSS_C_ANON_FLAG 64
217 #define GSS_C_PROT_READY_FLAG 128
218 #define GSS_C_TRANS_FLAG 256
265 #define GSS_C_GLOBUS_DONT_ACCEPT_LIMITED_PROXY_FLAG 8192
274 #define GSS_C_GLOBUS_DELEGATE_LIMITED_PROXY_FLAG 4096
285 #define GSS_C_GLOBUS_ACCEPT_PROXY_SIGNED_BY_LIMITED_PROXY_FLAG 32768
294 #define GSS_C_GLOBUS_ALLOW_MISSING_SIGNING_POLICY 65536
303 #define GSS_C_GLOBUS_FORCE_SSL3 131072
322 #define GSS_C_GLOBUS_RECEIVED_LIMITED_PROXY_FLAG 8192
332 #define GSS_C_GLOBUS_RECEIVED_LIMITED_PROXY_DURING_DELEGATION_FLAG 4096
334 #define GSS_C_GLOBUS_LIMITED_DELEG_PROXY_FLAG 4096
335 #define GSS_C_GLOBUS_LIMITED_PROXY_FLAG 8192
336 #define GSS_C_GLOBUS_SSL_COMPATIBLE 16384
345 #define GSS_C_GLOBUS_LIMITED_PROXY_MANY_FLAG 32768
351 #define GSS_C_INITIATE 1
352 #define GSS_C_ACCEPT 2
357 #define GSS_C_GSS_CODE 1
358 #define GSS_C_MECH_CODE 2
363 #define GSS_C_AF_UNSPEC 0
364 #define GSS_C_AF_LOCAL 1
365 #define GSS_C_AF_INET 2
366 #define GSS_C_AF_IMPLINK 3
367 #define GSS_C_AF_PUP 4
368 #define GSS_C_AF_CHAOS 5
369 #define GSS_C_AF_NS 6
370 #define GSS_C_AF_NBS 7
371 #define GSS_C_AF_ECMA 8
372 #define GSS_C_AF_DATAKIT 9
373 #define GSS_C_AF_CCITT 10
374 #define GSS_C_AF_SNA 11
375 #define GSS_C_AF_DECnet 12
376 #define GSS_C_AF_DLI 13
377 #define GSS_C_AF_LAT 14
378 #define GSS_C_AF_HYLINK 15
379 #define GSS_C_AF_APPLETALK 16
380 #define GSS_C_AF_BSC 17
381 #define GSS_C_AF_DSS 18
382 #define GSS_C_AF_OSI 19
383 #define GSS_C_AF_X25 21
385 #define GSS_C_AF_NULLADDR 255
390 #define GSS_C_NO_NAME ((gss_name_t) 0)
391 #define GSS_C_NO_BUFFER ((gss_buffer_t) 0)
392 #define GSS_C_NO_BUFFER_SET ((gss_buffer_set_t) 0)
393 #define GSS_C_NO_OID ((gss_OID) 0)
394 #define GSS_C_NO_OID_SET ((gss_OID_set) 0)
395 #define GSS_C_NO_CONTEXT ((gss_ctx_id_t) 0)
396 #define GSS_C_NO_CREDENTIAL ((gss_cred_id_t) 0)
397 #define GSS_C_NO_CHANNEL_BINDINGS ((gss_channel_bindings_t) 0)
398 #define GSS_C_EMPTY_BUFFER {0, NULL}
399 #define GSS_C_EMPTY_BUFFER_SET {0, (gss_buffer_t) 0}
405 #define GSS_C_NULL_OID GSS_C_NO_OID
406 #define GSS_C_NULL_OID_SET GSS_C_NO_OID_SET
417 #define GSS_C_QOP_DEFAULT 0
423 #define GSS_C_INDEFINITE 0xfffffffful
436 extern gss_OID GSS_C_NT_USER_NAME;
449 extern gss_OID GSS_C_NT_MACHINE_UID_NAME;
462 extern gss_OID GSS_C_NT_STRING_UID_NAME;
481 extern gss_OID GSS_C_NT_HOSTBASED_SERVICE_X;
494 extern gss_OID GSS_C_NT_HOSTBASED_SERVICE;
507 extern gss_OID GSS_C_NT_ANONYMOUS;
519 extern gss_OID GSS_C_NT_EXPORT_NAME;
523 #define GSS_S_COMPLETE 0
528 #define GSS_C_CALLING_ERROR_OFFSET 24
529 #define GSS_C_ROUTINE_ERROR_OFFSET 16
530 #define GSS_C_SUPPLEMENTARY_OFFSET 0
531 #define GSS_C_CALLING_ERROR_MASK 0377ul
532 #define GSS_C_ROUTINE_ERROR_MASK 0377ul
533 #define GSS_C_SUPPLEMENTARY_MASK 0177777ul
541 #define GSS_CALLING_ERROR(x) \
542 (x & (GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET))
543 #define GSS_ROUTINE_ERROR(x) \
544 (x & (GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET))
545 #define GSS_SUPPLEMENTARY_INFO(x) \
546 (x & (GSS_C_SUPPLEMENTARY_MASK << GSS_C_SUPPLEMENTARY_OFFSET))
547 #define GSS_ERROR(x) \
548 (x & ((GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET) | \
549 (GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET)))
558 #define GSS_S_CALL_INACCESSIBLE_READ \
559 (1ul << GSS_C_CALLING_ERROR_OFFSET)
560 #define GSS_S_CALL_INACCESSIBLE_WRITE \
561 (2ul << GSS_C_CALLING_ERROR_OFFSET)
562 #define GSS_S_CALL_BAD_STRUCTURE \
563 (3ul << GSS_C_CALLING_ERROR_OFFSET)
568 #define GSS_S_BAD_MECH (1ul << GSS_C_ROUTINE_ERROR_OFFSET)
569 #define GSS_S_BAD_NAME (2ul << GSS_C_ROUTINE_ERROR_OFFSET)
570 #define GSS_S_BAD_NAMETYPE (3ul << GSS_C_ROUTINE_ERROR_OFFSET)
571 #define GSS_S_BAD_BINDINGS (4ul << GSS_C_ROUTINE_ERROR_OFFSET)
572 #define GSS_S_BAD_STATUS (5ul << GSS_C_ROUTINE_ERROR_OFFSET)
573 #define GSS_S_BAD_SIG (6ul << GSS_C_ROUTINE_ERROR_OFFSET)
574 #define GSS_S_BAD_MIC GSS_S_BAD_SIG
575 #define GSS_S_NO_CRED (7ul << GSS_C_ROUTINE_ERROR_OFFSET)
576 #define GSS_S_NO_CONTEXT (8ul << GSS_C_ROUTINE_ERROR_OFFSET)
577 #define GSS_S_DEFECTIVE_TOKEN (9ul << GSS_C_ROUTINE_ERROR_OFFSET)
578 #define GSS_S_DEFECTIVE_CREDENTIAL (10ul << GSS_C_ROUTINE_ERROR_OFFSET)
579 #define GSS_S_CREDENTIALS_EXPIRED (11ul << GSS_C_ROUTINE_ERROR_OFFSET)
580 #define GSS_S_CONTEXT_EXPIRED (12ul << GSS_C_ROUTINE_ERROR_OFFSET)
581 #define GSS_S_FAILURE (13ul << GSS_C_ROUTINE_ERROR_OFFSET)
582 #define GSS_S_BAD_QOP (14ul << GSS_C_ROUTINE_ERROR_OFFSET)
583 #define GSS_S_UNAUTHORIZED (15ul << GSS_C_ROUTINE_ERROR_OFFSET)
584 #define GSS_S_UNAVAILABLE (16ul << GSS_C_ROUTINE_ERROR_OFFSET)
585 #define GSS_S_DUPLICATE_ELEMENT (17ul << GSS_C_ROUTINE_ERROR_OFFSET)
586 #define GSS_S_NAME_NOT_MN (18ul << GSS_C_ROUTINE_ERROR_OFFSET)
587 #define GSS_S_EXT_COMPAT (19ul << GSS_C_ROUTINE_ERROR_OFFSET)
593 #define GSS_S_CONTINUE_NEEDED (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 0))
594 #define GSS_S_DUPLICATE_TOKEN (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 1))
595 #define GSS_S_OLD_TOKEN (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 2))
596 #define GSS_S_UNSEQ_TOKEN (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 3))
597 #define GSS_S_GAP_TOKEN (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 4))
631 const gss_channel_bindings_t,
645 const gss_channel_bindings_t,
655 GSS_CALLCONV GSS_FUNC(gss_process_context_token)
815 GSS_CALLCONV GSS_FUNC(gss_add_cred)
830 GSS_CALLCONV GSS_FUNC(gss_inquire_cred_by_mech)
876 GSS_CALLCONV GSS_FUNC(gss_inquire_names_for_mech)
884 GSS_CALLCONV GSS_FUNC(gss_inquire_mechs_for_name)
891 GSS_CALLCONV GSS_FUNC(gss_canonicalize_name)
954 #ifndef USE_ONLY_STANDARD_GSSAPI
955 #define _HAVE_GSI_EXTENDED_GSSAPI
977 typedef struct gss_buffer_set_desc_struct
980 gss_buffer_t elements;
981 } gss_buffer_set_desc, *gss_buffer_set_t;
1000 gss_buffer_set_t *);
1017 const gss_cred_id_t,
1027 const gss_cred_id_t,
1030 const gss_buffer_set_t,
1042 const gss_buffer_set_t,
1057 gss_buffer_set_t *);
1063 const gss_cred_id_t,
1065 gss_buffer_set_t *);
1073 const gss_buffer_t);
1075 extern const gss_OID_desc *
const GSS_DISALLOW_ENCRYPTION;
1076 extern const gss_OID_desc *
const GSS_PROTECTION_FAIL_ON_CONTEXT_EXPIRATION;
1077 extern const gss_OID_desc *
const GSS_APPLICATION_WILL_HANDLE_EXTENSIONS;