import cyrus-sasl-2.1.23
[cyrus-sasl.git] / mac / CommonKClient / mac_kclient3 / Headers / GSS / gssapi_krb5.h
1 /*
2  * Copyright 1993 by OpenVision Technologies, Inc.
3  * 
4  * Permission to use, copy, modify, distribute, and sell this software
5  * and its documentation for any purpose is hereby granted without fee,
6  * provided that the above copyright notice appears in all copies and
7  * that both that copyright notice and this permission notice appear in
8  * supporting documentation, and that the name of OpenVision not be used
9  * in advertising or publicity pertaining to distribution of the software
10  * without specific, written prior permission. OpenVision makes no
11  * representations about the suitability of this software for any
12  * purpose.  It is provided "as is" without express or implied warranty.
13  * 
14  * OPENVISION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16  * EVENT SHALL OPENVISION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
18  * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
19  * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20  * PERFORMANCE OF THIS SOFTWARE.
21  */
22
23 #ifndef _GSSAPI_KRB5_H_
24 #define _GSSAPI_KRB5_H_
25
26 #if defined(macintosh) || (defined(__MACH__) && defined(__APPLE__))
27         #include <KerberosSupport/KerberosSupport.h>
28 #endif
29
30 #if TARGET_OS_MAC
31 #include <Kerberos5/Kerberos5.h>
32 #else
33 #include <krb5.h>
34 #endif
35
36 /* C++ friendlyness */
37 #ifdef __cplusplus
38 extern "C" {
39 #endif /* __cplusplus */
40
41 /* Reserved static storage for GSS_oids.  See rfc 1964 for more details. */
42
43 /* 2.1.1. Kerberos Principal Name Form: */
44 GSS_DLLIMP extern const gss_OID_desc * const GSS_KRB5_NT_PRINCIPAL_NAME;
45 /* This name form shall be represented by the Object Identifier {iso(1)
46  * member-body(2) United States(840) mit(113554) infosys(1) gssapi(2)
47  * krb5(2) krb5_name(1)}.  The recommended symbolic name for this type
48  * is "GSS_KRB5_NT_PRINCIPAL_NAME". */
49
50 /* 2.1.2. Host-Based Service Name Form */
51 #define GSS_KRB5_NT_HOSTBASED_SERVICE_NAME GSS_C_NT_HOSTBASED_SERVICE
52 /* This name form shall be represented by the Object Identifier {iso(1)
53  * member-body(2) United States(840) mit(113554) infosys(1) gssapi(2)
54  * generic(1) service_name(4)}.  The previously recommended symbolic
55  * name for this type is "GSS_KRB5_NT_HOSTBASED_SERVICE_NAME".  The
56  * currently preferred symbolic name for this type is
57  * "GSS_C_NT_HOSTBASED_SERVICE". */
58
59 /* 2.2.1. User Name Form */
60 #define GSS_KRB5_NT_USER_NAME GSS_C_NT_USER_NAME    
61 /* This name form shall be represented by the Object Identifier {iso(1)
62  * member-body(2) United States(840) mit(113554) infosys(1) gssapi(2)
63  * generic(1) user_name(1)}.  The recommended symbolic name for this
64  * type is "GSS_KRB5_NT_USER_NAME". */
65
66 /* 2.2.2. Machine UID Form */
67 #define GSS_KRB5_NT_MACHINE_UID_NAME GSS_C_NT_MACHINE_UID_NAME
68 /* This name form shall be represented by the Object Identifier {iso(1)
69  * member-body(2) United States(840) mit(113554) infosys(1) gssapi(2)
70  * generic(1) machine_uid_name(2)}.  The recommended symbolic name for
71  * this type is "GSS_KRB5_NT_MACHINE_UID_NAME". */
72
73 /* 2.2.3. String UID Form */
74 #define GSS_KRB5_NT_STRING_UID_NAME GSS_C_NT_STRING_UID_NAME
75 /* This name form shall be represented by the Object Identifier {iso(1)
76  * member-body(2) United States(840) mit(113554) infosys(1) gssapi(2)
77  * generic(1) string_uid_name(3)}.  The recommended symbolic name for
78  * this type is "GSS_KRB5_NT_STRING_UID_NAME". */ 
79
80 extern const gss_OID_desc * const gss_mech_krb5;
81 extern const gss_OID_desc * const gss_mech_krb5_old;
82 extern const gss_OID_desc * const gss_mech_krb5_v2;
83 extern const gss_OID_set_desc * const gss_mech_set_krb5;
84 extern const gss_OID_set_desc * const gss_mech_set_krb5_old;
85 extern const gss_OID_set_desc * const gss_mech_set_krb5_both;
86 extern const gss_OID_set_desc * const gss_mech_set_krb5_v2;
87 extern const gss_OID_set_desc * const gss_mech_set_krb5_v1v2;
88
89 extern const gss_OID_desc * const gss_nt_krb5_name;
90 extern const gss_OID_desc * const gss_nt_krb5_principal;
91
92 extern const gss_OID_desc krb5_gss_oid_array[];
93
94 #define gss_krb5_nt_general_name        gss_nt_krb5_name
95 #define gss_krb5_nt_principal           gss_nt_krb5_principal
96 #define gss_krb5_nt_service_name        gss_nt_service_name
97 #define gss_krb5_nt_user_name           gss_nt_user_name
98 #define gss_krb5_nt_machine_uid_name    gss_nt_machine_uid_name
99 #define gss_krb5_nt_string_uid_name     gss_nt_string_uid_name
100
101 GSS_DLLIMP OM_uint32 KRB5_CALLCONV gss_krb5_get_tkt_flags 
102         PROTOTYPE((OM_uint32 *minor_status,
103                    gss_ctx_id_t context_handle,
104                    krb5_flags *ticket_flags));
105
106 GSS_DLLIMP OM_uint32 KRB5_CALLCONV gss_krb5_copy_ccache
107         PROTOTYPE((OM_uint32 *minor_status,
108                    gss_cred_id_t cred_handle,
109                    krb5_ccache out_ccache));
110
111 GSS_DLLIMP OM_uint32 KRB5_CALLCONV gss_krb5_ccache_name
112         PROTOTYPE((OM_uint32 *minor_status, const char *name,
113                    const char **out_name));
114
115 #ifdef __cplusplus
116 }
117 #endif /* __cplusplus */
118
119 #endif /* _GSSAPI_KRB5_H_ */