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