1
2#ifndef GSSAPI_GSSAPI_SPI_H_
3#define GSSAPI_GSSAPI_SPI_H_
4
5#include <gssapi.h>
6#include <gssapi_rewrite.h>
7
8/* binary compat glue, these are missing _oid_desc */
9extern gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ntlm_v1;
10extern gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ntlm_v2;
11extern gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ntlm_session_key;
12extern gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ntlm_force_v1;
13extern gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ntlm_support_channelbindings;
14extern gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ntlm_support_lm2;
15extern gss_OID_desc GSSAPI_LIB_VARIABLE __gss_appl_lkdc_supported_desc;
16extern gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_nt_uuid_desc;
17
18
19extern int __gss_ntlm_is_digest_service;
20
21struct gssapi_mech_interface_desc;
22struct _gss_mechanism_name;
23struct _gss_mechanism_cred;
24struct _gss_name;
25struct _gss_name_type;
26struct gss_mo_desc;
27
28#if defined(__APPLE__) && (defined(__ppc__) || defined(__ppc64__) || defined(__i386__) || defined(__x86_64__))
29#pragma pack(push,2)
30#endif
31
32typedef struct gss_auth_identity {
33    uint32_t type;
34#define GSS_AUTH_IDENTITY_TYPE_1	1
35    uint32_t flags;
36    char *username;
37    char *realm;
38    char *password;
39    gss_buffer_t *credentialsRef;
40} gss_auth_identity_desc;
41
42/*
43 * Query functions
44 */
45
46typedef struct {
47    size_t header; /**< size of header */
48    size_t trailer; /**< size of trailer */
49    size_t max_msg_size; /**< maximum message size */
50    size_t buffers; /**< extra GSS_IOV_BUFFER_TYPE_EMPTY buffer to pass */
51    size_t blocksize; /**< Specificed optimal size of messages, also
52			 is the maximum padding size
53			 (GSS_IOV_BUFFER_TYPE_PADDING) */
54} gss_context_stream_sizes;
55
56extern gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_attr_stream_sizes_oid_desc;
57#define GSS_C_ATTR_STREAM_SIZES (&__gss_c_attr_stream_sizes_oid_desc)
58
59/*
60 * Kerberos SPI
61 */
62
63#ifndef __KRB5_H__
64struct krb5_keytab_data;
65struct krb5_ccache_data;
66struct Principal;
67struct EncryptionKey;
68#endif
69
70struct gsskrb5_send_to_kdc {
71    void *func;
72    void *ptr;
73};
74
75struct gsskrb5_krb5_plugin {
76    int type;
77    char *name;
78    void *symbol;
79};
80
81GSSAPI_CPP_START
82
83#ifdef __BLOCKS__
84typedef void (^gss_acquire_cred_complete)(gss_status_id_t, gss_cred_id_t, gss_OID_set, OM_uint32);
85#endif
86
87
88#include <gssapi_private.h>
89
90GSSAPI_CPP_END
91
92#if defined(__APPLE__) && (defined(__ppc__) || defined(__ppc64__) || defined(__i386__) || defined(__x86_64__))
93#pragma pack(pop)
94#endif
95
96#endif /* GSSAPI_GSSAPI_H_ */
97