xref: /minix3/crypto/external/bsd/heimdal/dist/lib/gssapi/krb5/external.c (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc /*	$NetBSD: external.c,v 1.1.1.2 2014/04/24 12:45:29 pettai Exp $	*/
2ebfedea0SLionel Sambuc 
3ebfedea0SLionel Sambuc /*
4ebfedea0SLionel Sambuc  * Copyright (c) 1997 - 2000 Kungliga Tekniska Högskolan
5ebfedea0SLionel Sambuc  * (Royal Institute of Technology, Stockholm, Sweden).
6ebfedea0SLionel Sambuc  * All rights reserved.
7ebfedea0SLionel Sambuc  *
8ebfedea0SLionel Sambuc  * Redistribution and use in source and binary forms, with or without
9ebfedea0SLionel Sambuc  * modification, are permitted provided that the following conditions
10ebfedea0SLionel Sambuc  * are met:
11ebfedea0SLionel Sambuc  *
12ebfedea0SLionel Sambuc  * 1. Redistributions of source code must retain the above copyright
13ebfedea0SLionel Sambuc  *    notice, this list of conditions and the following disclaimer.
14ebfedea0SLionel Sambuc  *
15ebfedea0SLionel Sambuc  * 2. Redistributions in binary form must reproduce the above copyright
16ebfedea0SLionel Sambuc  *    notice, this list of conditions and the following disclaimer in the
17ebfedea0SLionel Sambuc  *    documentation and/or other materials provided with the distribution.
18ebfedea0SLionel Sambuc  *
19ebfedea0SLionel Sambuc  * 3. Neither the name of the Institute nor the names of its contributors
20ebfedea0SLionel Sambuc  *    may be used to endorse or promote products derived from this software
21ebfedea0SLionel Sambuc  *    without specific prior written permission.
22ebfedea0SLionel Sambuc  *
23ebfedea0SLionel Sambuc  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
24ebfedea0SLionel Sambuc  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25ebfedea0SLionel Sambuc  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26ebfedea0SLionel Sambuc  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
27ebfedea0SLionel Sambuc  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28ebfedea0SLionel Sambuc  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29ebfedea0SLionel Sambuc  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30ebfedea0SLionel Sambuc  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31ebfedea0SLionel Sambuc  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32ebfedea0SLionel Sambuc  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33ebfedea0SLionel Sambuc  * SUCH DAMAGE.
34ebfedea0SLionel Sambuc  */
35ebfedea0SLionel Sambuc 
36ebfedea0SLionel Sambuc #include "gsskrb5_locl.h"
37ebfedea0SLionel Sambuc #include <gssapi_mech.h>
38ebfedea0SLionel Sambuc 
39ebfedea0SLionel Sambuc /*
40ebfedea0SLionel Sambuc  * The implementation must reserve static storage for a
41ebfedea0SLionel Sambuc  * gss_OID_desc object containing the value
42ebfedea0SLionel Sambuc  * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
43ebfedea0SLionel Sambuc  *              "\x01\x02\x01\x01"},
44ebfedea0SLionel Sambuc  * corresponding to an object-identifier value of
45ebfedea0SLionel Sambuc  * {iso(1) member-body(2) United States(840) mit(113554)
46ebfedea0SLionel Sambuc  *  infosys(1) gssapi(2) generic(1) user_name(1)}.  The constant
47ebfedea0SLionel Sambuc  * GSS_C_NT_USER_NAME should be initialized to point
48ebfedea0SLionel Sambuc  * to that gss_OID_desc.
49ebfedea0SLionel Sambuc  */
50ebfedea0SLionel Sambuc 
51ebfedea0SLionel Sambuc gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_nt_user_name_oid_desc =
52ebfedea0SLionel Sambuc     {10, rk_UNCONST("\x2a\x86\x48\x86\xf7\x12" "\x01\x02\x01\x01")};
53ebfedea0SLionel Sambuc 
54ebfedea0SLionel Sambuc /*
55ebfedea0SLionel Sambuc  * The implementation must reserve static storage for a
56ebfedea0SLionel Sambuc  * gss_OID_desc object containing the value
57ebfedea0SLionel Sambuc  * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
58ebfedea0SLionel Sambuc  *              "\x01\x02\x01\x02"},
59ebfedea0SLionel Sambuc  * corresponding to an object-identifier value of
60ebfedea0SLionel Sambuc  * {iso(1) member-body(2) United States(840) mit(113554)
61ebfedea0SLionel Sambuc  *  infosys(1) gssapi(2) generic(1) machine_uid_name(2)}.
62ebfedea0SLionel Sambuc  * The constant GSS_C_NT_MACHINE_UID_NAME should be
63ebfedea0SLionel Sambuc  * initialized to point to that gss_OID_desc.
64ebfedea0SLionel Sambuc  */
65ebfedea0SLionel Sambuc 
66ebfedea0SLionel Sambuc gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_nt_machine_uid_name_oid_desc =
67ebfedea0SLionel Sambuc     {10, rk_UNCONST("\x2a\x86\x48\x86\xf7\x12" "\x01\x02\x01\x02")};
68ebfedea0SLionel Sambuc 
69ebfedea0SLionel Sambuc /*
70ebfedea0SLionel Sambuc  * The implementation must reserve static storage for a
71ebfedea0SLionel Sambuc  * gss_OID_desc object containing the value
72ebfedea0SLionel Sambuc  * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
73ebfedea0SLionel Sambuc  *              "\x01\x02\x01\x03"},
74ebfedea0SLionel Sambuc  * corresponding to an object-identifier value of
75ebfedea0SLionel Sambuc  * {iso(1) member-body(2) United States(840) mit(113554)
76ebfedea0SLionel Sambuc  *  infosys(1) gssapi(2) generic(1) string_uid_name(3)}.
77ebfedea0SLionel Sambuc  * The constant GSS_C_NT_STRING_UID_NAME should be
78ebfedea0SLionel Sambuc  * initialized to point to that gss_OID_desc.
79ebfedea0SLionel Sambuc  */
80ebfedea0SLionel Sambuc 
81ebfedea0SLionel Sambuc gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_nt_string_uid_name_oid_desc =
82ebfedea0SLionel Sambuc     {10, rk_UNCONST("\x2a\x86\x48\x86\xf7\x12" "\x01\x02\x01\x03")};
83ebfedea0SLionel Sambuc 
84ebfedea0SLionel Sambuc /*
85ebfedea0SLionel Sambuc  * The implementation must reserve static storage for a
86ebfedea0SLionel Sambuc  * gss_OID_desc object containing the value
87ebfedea0SLionel Sambuc  * {6, (void *)"\x2b\x06\x01\x05\x06\x02"},
88ebfedea0SLionel Sambuc  * corresponding to an object-identifier value of
89ebfedea0SLionel Sambuc  * {iso(1) org(3) dod(6) internet(1) security(5)
90ebfedea0SLionel Sambuc  * nametypes(6) gss-host-based-services(2)).  The constant
91ebfedea0SLionel Sambuc  * GSS_C_NT_HOSTBASED_SERVICE_X should be initialized to point
92ebfedea0SLionel Sambuc  * to that gss_OID_desc.  This is a deprecated OID value, and
93ebfedea0SLionel Sambuc  * implementations wishing to support hostbased-service names
94ebfedea0SLionel Sambuc  * should instead use the GSS_C_NT_HOSTBASED_SERVICE OID,
95ebfedea0SLionel Sambuc  * defined below, to identify such names;
96ebfedea0SLionel Sambuc  * GSS_C_NT_HOSTBASED_SERVICE_X should be accepted a synonym
97ebfedea0SLionel Sambuc  * for GSS_C_NT_HOSTBASED_SERVICE when presented as an input
98ebfedea0SLionel Sambuc  * parameter, but should not be emitted by GSS-API
99ebfedea0SLionel Sambuc  * implementations
100ebfedea0SLionel Sambuc  */
101ebfedea0SLionel Sambuc 
102ebfedea0SLionel Sambuc gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_nt_hostbased_service_x_oid_desc =
103ebfedea0SLionel Sambuc     {6, rk_UNCONST("\x2b\x06\x01\x05\x06\x02")};
104ebfedea0SLionel Sambuc 
105ebfedea0SLionel Sambuc /*
106ebfedea0SLionel Sambuc  * The implementation must reserve static storage for a
107ebfedea0SLionel Sambuc  * gss_OID_desc object containing the value
108ebfedea0SLionel Sambuc  * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
109ebfedea0SLionel Sambuc  *              "\x01\x02\x01\x04"}, corresponding to an
110ebfedea0SLionel Sambuc  * object-identifier value of {iso(1) member-body(2)
111ebfedea0SLionel Sambuc  * Unites States(840) mit(113554) infosys(1) gssapi(2)
112ebfedea0SLionel Sambuc  * generic(1) service_name(4)}.  The constant
113ebfedea0SLionel Sambuc  * GSS_C_NT_HOSTBASED_SERVICE should be initialized
114ebfedea0SLionel Sambuc  * to point to that gss_OID_desc.
115ebfedea0SLionel Sambuc  */
116ebfedea0SLionel Sambuc gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_nt_hostbased_service_oid_desc =
117ebfedea0SLionel Sambuc     {10, rk_UNCONST("\x2a\x86\x48\x86\xf7\x12" "\x01\x02\x01\x04")};
118ebfedea0SLionel Sambuc 
119ebfedea0SLionel Sambuc /*
120ebfedea0SLionel Sambuc  * The implementation must reserve static storage for a
121ebfedea0SLionel Sambuc  * gss_OID_desc object containing the value
122ebfedea0SLionel Sambuc  * {6, (void *)"\x2b\x06\01\x05\x06\x03"},
123ebfedea0SLionel Sambuc  * corresponding to an object identifier value of
124ebfedea0SLionel Sambuc  * {1(iso), 3(org), 6(dod), 1(internet), 5(security),
125ebfedea0SLionel Sambuc  * 6(nametypes), 3(gss-anonymous-name)}.  The constant
126ebfedea0SLionel Sambuc  * and GSS_C_NT_ANONYMOUS should be initialized to point
127ebfedea0SLionel Sambuc  * to that gss_OID_desc.
128ebfedea0SLionel Sambuc  */
129ebfedea0SLionel Sambuc 
130ebfedea0SLionel Sambuc gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_nt_anonymous_oid_desc =
131ebfedea0SLionel Sambuc     {6, rk_UNCONST("\x2b\x06\01\x05\x06\x03")};
132ebfedea0SLionel Sambuc 
133ebfedea0SLionel Sambuc /*
134ebfedea0SLionel Sambuc  * The implementation must reserve static storage for a
135ebfedea0SLionel Sambuc  * gss_OID_desc object containing the value
136ebfedea0SLionel Sambuc  * {6, (void *)"\x2b\x06\x01\x05\x06\x04"},
137ebfedea0SLionel Sambuc  * corresponding to an object-identifier value of
138ebfedea0SLionel Sambuc  * {1(iso), 3(org), 6(dod), 1(internet), 5(security),
139ebfedea0SLionel Sambuc  * 6(nametypes), 4(gss-api-exported-name)}.  The constant
140ebfedea0SLionel Sambuc  * GSS_C_NT_EXPORT_NAME should be initialized to point
141ebfedea0SLionel Sambuc  * to that gss_OID_desc.
142ebfedea0SLionel Sambuc  */
143ebfedea0SLionel Sambuc 
144ebfedea0SLionel Sambuc gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_nt_export_name_oid_desc =
145ebfedea0SLionel Sambuc     {6, rk_UNCONST("\x2b\x06\x01\x05\x06\x04") };
146ebfedea0SLionel Sambuc 
147ebfedea0SLionel Sambuc /*
148ebfedea0SLionel Sambuc  *   This name form shall be represented by the Object Identifier {iso(1)
149ebfedea0SLionel Sambuc  *   member-body(2) United States(840) mit(113554) infosys(1) gssapi(2)
150ebfedea0SLionel Sambuc  *   krb5(2) krb5_name(1)}.  The recommended symbolic name for this type
151ebfedea0SLionel Sambuc  *   is "GSS_KRB5_NT_PRINCIPAL_NAME".
152ebfedea0SLionel Sambuc  */
153ebfedea0SLionel Sambuc 
154ebfedea0SLionel Sambuc gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_nt_principal_name_oid_desc =
155ebfedea0SLionel Sambuc     {10, rk_UNCONST("\x2a\x86\x48\x86\xf7\x12\x01\x02\x02\x01") };
156ebfedea0SLionel Sambuc 
157ebfedea0SLionel Sambuc /*
158ebfedea0SLionel Sambuc  * draft-ietf-cat-iakerb-09, IAKERB:
159ebfedea0SLionel Sambuc  *   The mechanism ID for IAKERB proxy GSS-API Kerberos, in accordance
160ebfedea0SLionel Sambuc  *   with the mechanism proposed by SPNEGO [7] for negotiating protocol
161ebfedea0SLionel Sambuc  *   variations, is:  {iso(1) org(3) dod(6) internet(1) security(5)
162ebfedea0SLionel Sambuc  *   mechanisms(5) iakerb(10) iakerbProxyProtocol(1)}.  The proposed
163ebfedea0SLionel Sambuc  *   mechanism ID for IAKERB minimum messages GSS-API Kerberos, in
164ebfedea0SLionel Sambuc  *   accordance with the mechanism proposed by SPNEGO for negotiating
165ebfedea0SLionel Sambuc  *   protocol variations, is: {iso(1) org(3) dod(6) internet(1)
166ebfedea0SLionel Sambuc  *   security(5) mechanisms(5) iakerb(10)
167ebfedea0SLionel Sambuc  *   iakerbMinimumMessagesProtocol(2)}.
168ebfedea0SLionel Sambuc  */
169ebfedea0SLionel Sambuc 
170ebfedea0SLionel Sambuc gss_OID_desc GSSAPI_LIB_VARIABLE  __gss_iakerb_proxy_mechanism_oid_desc =
171ebfedea0SLionel Sambuc     {7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0a\x01")};
172ebfedea0SLionel Sambuc 
173ebfedea0SLionel Sambuc gss_OID_desc GSSAPI_LIB_VARIABLE __gss_iakerb_min_msg_mechanism_oid_desc =
174ebfedea0SLionel Sambuc     {7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0a\x02") };
175ebfedea0SLionel Sambuc 
176ebfedea0SLionel Sambuc /*
177ebfedea0SLionel Sambuc  * Context for krb5 calls.
178ebfedea0SLionel Sambuc  */
179ebfedea0SLionel Sambuc 
180ebfedea0SLionel Sambuc static gss_mo_desc krb5_mo[] = {
181ebfedea0SLionel Sambuc     {
182ebfedea0SLionel Sambuc 	GSS_C_MA_SASL_MECH_NAME,
183ebfedea0SLionel Sambuc 	GSS_MO_MA,
184ebfedea0SLionel Sambuc 	"SASL mech name",
185*0a6a1f1dSLionel Sambuc 	rk_UNCONST("GS2-KRB5"),
186ebfedea0SLionel Sambuc 	_gss_mo_get_ctx_as_string,
187ebfedea0SLionel Sambuc 	NULL
188ebfedea0SLionel Sambuc     },
189ebfedea0SLionel Sambuc     {
190ebfedea0SLionel Sambuc 	GSS_C_MA_MECH_NAME,
191ebfedea0SLionel Sambuc 	GSS_MO_MA,
192ebfedea0SLionel Sambuc 	"Mechanism name",
193*0a6a1f1dSLionel Sambuc 	rk_UNCONST("KRB5"),
194ebfedea0SLionel Sambuc 	_gss_mo_get_ctx_as_string,
195ebfedea0SLionel Sambuc 	NULL
196ebfedea0SLionel Sambuc     },
197ebfedea0SLionel Sambuc     {
198ebfedea0SLionel Sambuc 	GSS_C_MA_MECH_DESCRIPTION,
199ebfedea0SLionel Sambuc 	GSS_MO_MA,
200ebfedea0SLionel Sambuc 	"Mechanism description",
201*0a6a1f1dSLionel Sambuc 	rk_UNCONST("Heimdal Kerberos 5 mech"),
202ebfedea0SLionel Sambuc 	_gss_mo_get_ctx_as_string,
203ebfedea0SLionel Sambuc 	NULL
204ebfedea0SLionel Sambuc     },
205ebfedea0SLionel Sambuc     {
206ebfedea0SLionel Sambuc 	GSS_C_MA_MECH_CONCRETE,
207ebfedea0SLionel Sambuc 	GSS_MO_MA
208ebfedea0SLionel Sambuc     },
209ebfedea0SLionel Sambuc     {
210ebfedea0SLionel Sambuc 	GSS_C_MA_ITOK_FRAMED,
211ebfedea0SLionel Sambuc 	GSS_MO_MA
212ebfedea0SLionel Sambuc     },
213ebfedea0SLionel Sambuc     {
214ebfedea0SLionel Sambuc 	GSS_C_MA_AUTH_INIT,
215ebfedea0SLionel Sambuc 	GSS_MO_MA
216ebfedea0SLionel Sambuc     },
217ebfedea0SLionel Sambuc     {
218ebfedea0SLionel Sambuc 	GSS_C_MA_AUTH_TARG,
219ebfedea0SLionel Sambuc 	GSS_MO_MA
220ebfedea0SLionel Sambuc     },
221ebfedea0SLionel Sambuc     {
222ebfedea0SLionel Sambuc 	GSS_C_MA_AUTH_INIT_ANON,
223ebfedea0SLionel Sambuc 	GSS_MO_MA
224ebfedea0SLionel Sambuc     },
225ebfedea0SLionel Sambuc     {
226ebfedea0SLionel Sambuc 	GSS_C_MA_DELEG_CRED,
227ebfedea0SLionel Sambuc 	GSS_MO_MA
228ebfedea0SLionel Sambuc     },
229ebfedea0SLionel Sambuc     {
230ebfedea0SLionel Sambuc 	GSS_C_MA_INTEG_PROT,
231ebfedea0SLionel Sambuc 	GSS_MO_MA
232ebfedea0SLionel Sambuc     },
233ebfedea0SLionel Sambuc     {
234ebfedea0SLionel Sambuc 	GSS_C_MA_CONF_PROT,
235ebfedea0SLionel Sambuc 	GSS_MO_MA
236ebfedea0SLionel Sambuc     },
237ebfedea0SLionel Sambuc     {
238ebfedea0SLionel Sambuc 	GSS_C_MA_MIC,
239ebfedea0SLionel Sambuc 	GSS_MO_MA
240ebfedea0SLionel Sambuc     },
241ebfedea0SLionel Sambuc     {
242ebfedea0SLionel Sambuc 	GSS_C_MA_WRAP,
243ebfedea0SLionel Sambuc 	GSS_MO_MA
244ebfedea0SLionel Sambuc     },
245ebfedea0SLionel Sambuc     {
246ebfedea0SLionel Sambuc 	GSS_C_MA_PROT_READY,
247ebfedea0SLionel Sambuc 	GSS_MO_MA
248ebfedea0SLionel Sambuc     },
249ebfedea0SLionel Sambuc     {
250ebfedea0SLionel Sambuc 	GSS_C_MA_REPLAY_DET,
251ebfedea0SLionel Sambuc 	GSS_MO_MA
252ebfedea0SLionel Sambuc     },
253ebfedea0SLionel Sambuc     {
254ebfedea0SLionel Sambuc 	GSS_C_MA_OOS_DET,
255ebfedea0SLionel Sambuc 	GSS_MO_MA
256ebfedea0SLionel Sambuc     },
257ebfedea0SLionel Sambuc     {
258ebfedea0SLionel Sambuc 	GSS_C_MA_CBINDINGS,
259ebfedea0SLionel Sambuc 	GSS_MO_MA
260ebfedea0SLionel Sambuc     },
261ebfedea0SLionel Sambuc     {
262ebfedea0SLionel Sambuc 	GSS_C_MA_PFS,
263ebfedea0SLionel Sambuc 	GSS_MO_MA
264ebfedea0SLionel Sambuc     },
265ebfedea0SLionel Sambuc     {
266ebfedea0SLionel Sambuc 	GSS_C_MA_CTX_TRANS,
267ebfedea0SLionel Sambuc 	GSS_MO_MA
268ebfedea0SLionel Sambuc     }
269ebfedea0SLionel Sambuc };
270ebfedea0SLionel Sambuc 
271ebfedea0SLionel Sambuc /*
272ebfedea0SLionel Sambuc  *
273ebfedea0SLionel Sambuc  */
274ebfedea0SLionel Sambuc 
275ebfedea0SLionel Sambuc static gssapi_mech_interface_desc krb5_mech = {
276ebfedea0SLionel Sambuc     GMI_VERSION,
277ebfedea0SLionel Sambuc     "kerberos 5",
278*0a6a1f1dSLionel Sambuc     {9, rk_UNCONST("\x2a\x86\x48\x86\xf7\x12\x01\x02\x02") },
279ebfedea0SLionel Sambuc     0,
280ebfedea0SLionel Sambuc     _gsskrb5_acquire_cred,
281ebfedea0SLionel Sambuc     _gsskrb5_release_cred,
282ebfedea0SLionel Sambuc     _gsskrb5_init_sec_context,
283ebfedea0SLionel Sambuc     _gsskrb5_accept_sec_context,
284ebfedea0SLionel Sambuc     _gsskrb5_process_context_token,
285ebfedea0SLionel Sambuc     _gsskrb5_delete_sec_context,
286ebfedea0SLionel Sambuc     _gsskrb5_context_time,
287ebfedea0SLionel Sambuc     _gsskrb5_get_mic,
288ebfedea0SLionel Sambuc     _gsskrb5_verify_mic,
289ebfedea0SLionel Sambuc     _gsskrb5_wrap,
290ebfedea0SLionel Sambuc     _gsskrb5_unwrap,
291ebfedea0SLionel Sambuc     _gsskrb5_display_status,
292ebfedea0SLionel Sambuc     _gsskrb5_indicate_mechs,
293ebfedea0SLionel Sambuc     _gsskrb5_compare_name,
294ebfedea0SLionel Sambuc     _gsskrb5_display_name,
295ebfedea0SLionel Sambuc     _gsskrb5_import_name,
296ebfedea0SLionel Sambuc     _gsskrb5_export_name,
297ebfedea0SLionel Sambuc     _gsskrb5_release_name,
298ebfedea0SLionel Sambuc     _gsskrb5_inquire_cred,
299ebfedea0SLionel Sambuc     _gsskrb5_inquire_context,
300ebfedea0SLionel Sambuc     _gsskrb5_wrap_size_limit,
301ebfedea0SLionel Sambuc     _gsskrb5_add_cred,
302ebfedea0SLionel Sambuc     _gsskrb5_inquire_cred_by_mech,
303ebfedea0SLionel Sambuc     _gsskrb5_export_sec_context,
304ebfedea0SLionel Sambuc     _gsskrb5_import_sec_context,
305ebfedea0SLionel Sambuc     _gsskrb5_inquire_names_for_mech,
306ebfedea0SLionel Sambuc     _gsskrb5_inquire_mechs_for_name,
307ebfedea0SLionel Sambuc     _gsskrb5_canonicalize_name,
308ebfedea0SLionel Sambuc     _gsskrb5_duplicate_name,
309ebfedea0SLionel Sambuc     _gsskrb5_inquire_sec_context_by_oid,
310ebfedea0SLionel Sambuc     _gsskrb5_inquire_cred_by_oid,
311ebfedea0SLionel Sambuc     _gsskrb5_set_sec_context_option,
312ebfedea0SLionel Sambuc     _gsskrb5_set_cred_option,
313ebfedea0SLionel Sambuc     _gsskrb5_pseudo_random,
314ebfedea0SLionel Sambuc     _gk_wrap_iov,
315ebfedea0SLionel Sambuc     _gk_unwrap_iov,
316ebfedea0SLionel Sambuc     _gk_wrap_iov_length,
317ebfedea0SLionel Sambuc     _gsskrb5_store_cred,
318ebfedea0SLionel Sambuc     _gsskrb5_export_cred,
319ebfedea0SLionel Sambuc     _gsskrb5_import_cred,
320*0a6a1f1dSLionel Sambuc     _gsskrb5_acquire_cred_ext,
321ebfedea0SLionel Sambuc     NULL,
322ebfedea0SLionel Sambuc     NULL,
323ebfedea0SLionel Sambuc     NULL,
324ebfedea0SLionel Sambuc     NULL,
325ebfedea0SLionel Sambuc     NULL,
326ebfedea0SLionel Sambuc     NULL,
327ebfedea0SLionel Sambuc     krb5_mo,
328*0a6a1f1dSLionel Sambuc     sizeof(krb5_mo) / sizeof(krb5_mo[0]),
329*0a6a1f1dSLionel Sambuc     _gsskrb5_pname_to_uid,
330*0a6a1f1dSLionel Sambuc     _gsskrb5_authorize_localname,
331*0a6a1f1dSLionel Sambuc     NULL,
332*0a6a1f1dSLionel Sambuc     NULL,
333*0a6a1f1dSLionel Sambuc     NULL,
334*0a6a1f1dSLionel Sambuc     NULL,
335*0a6a1f1dSLionel Sambuc     NULL,
336*0a6a1f1dSLionel Sambuc     NULL,
337*0a6a1f1dSLionel Sambuc     NULL
338ebfedea0SLionel Sambuc };
339ebfedea0SLionel Sambuc 
340ebfedea0SLionel Sambuc gssapi_mech_interface
__gss_krb5_initialize(void)341ebfedea0SLionel Sambuc __gss_krb5_initialize(void)
342ebfedea0SLionel Sambuc {
343ebfedea0SLionel Sambuc     return &krb5_mech;
344ebfedea0SLionel Sambuc }
345