1 | /* $NetBSD: gssapi_mech.h,v 1.2 2017/01/28 21:31:46 christos Exp $ */ |
2 | |
3 | /*- |
4 | * Copyright (c) 2005 Doug Rabson |
5 | * All rights reserved. |
6 | * |
7 | * Redistribution and use in source and binary forms, with or without |
8 | * modification, are permitted provided that the following conditions |
9 | * are met: |
10 | * 1. Redistributions of source code must retain the above copyright |
11 | * notice, this list of conditions and the following disclaimer. |
12 | * 2. Redistributions in binary form must reproduce the above copyright |
13 | * notice, this list of conditions and the following disclaimer in the |
14 | * documentation and/or other materials provided with the distribution. |
15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND |
17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |
20 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
21 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
22 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
23 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
24 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
25 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
26 | * SUCH DAMAGE. |
27 | * |
28 | * $FreeBSD: src/lib/libgssapi/mech_switch.h,v 1.1 2005/12/29 14:40:20 dfr Exp $ |
29 | */ |
30 | |
31 | #ifndef GSSAPI_MECH_H |
32 | #define GSSAPI_MECH_H 1 |
33 | |
34 | #include <gssapi/gssapi.h> |
35 | |
36 | typedef OM_uint32 GSSAPI_CALLCONV _gss_acquire_cred_t |
37 | (OM_uint32 *, /* minor_status */ |
38 | gss_const_name_t, /* desired_name */ |
39 | OM_uint32, /* time_req */ |
40 | const gss_OID_set, /* desired_mechs */ |
41 | gss_cred_usage_t, /* cred_usage */ |
42 | gss_cred_id_t *, /* output_cred_handle */ |
43 | gss_OID_set *, /* actual_mechs */ |
44 | OM_uint32 * /* time_rec */ |
45 | ); |
46 | |
47 | typedef OM_uint32 GSSAPI_CALLCONV _gss_release_cred_t |
48 | (OM_uint32 *, /* minor_status */ |
49 | gss_cred_id_t * /* cred_handle */ |
50 | ); |
51 | |
52 | typedef OM_uint32 GSSAPI_CALLCONV _gss_init_sec_context_t |
53 | (OM_uint32 *, /* minor_status */ |
54 | gss_const_cred_id_t, /* initiator_cred_handle */ |
55 | gss_ctx_id_t *, /* context_handle */ |
56 | gss_const_name_t, /* target_name */ |
57 | const gss_OID, /* mech_type */ |
58 | OM_uint32, /* req_flags */ |
59 | OM_uint32, /* time_req */ |
60 | const gss_channel_bindings_t, |
61 | /* input_chan_bindings */ |
62 | const gss_buffer_t, /* input_token */ |
63 | gss_OID *, /* actual_mech_type */ |
64 | gss_buffer_t, /* output_token */ |
65 | OM_uint32 *, /* ret_flags */ |
66 | OM_uint32 * /* time_rec */ |
67 | ); |
68 | |
69 | typedef OM_uint32 GSSAPI_CALLCONV _gss_accept_sec_context_t |
70 | (OM_uint32 *, /* minor_status */ |
71 | gss_ctx_id_t *, /* context_handle */ |
72 | gss_const_cred_id_t, /* acceptor_cred_handle */ |
73 | const gss_buffer_t, /* input_token_buffer */ |
74 | const gss_channel_bindings_t, |
75 | /* input_chan_bindings */ |
76 | gss_name_t *, /* src_name */ |
77 | gss_OID *, /* mech_type */ |
78 | gss_buffer_t, /* output_token */ |
79 | OM_uint32 *, /* ret_flags */ |
80 | OM_uint32 *, /* time_rec */ |
81 | gss_cred_id_t * /* delegated_cred_handle */ |
82 | ); |
83 | |
84 | typedef OM_uint32 GSSAPI_CALLCONV _gss_process_context_token_t |
85 | (OM_uint32 *, /* minor_status */ |
86 | gss_const_ctx_id_t, /* context_handle */ |
87 | const gss_buffer_t /* token_buffer */ |
88 | ); |
89 | |
90 | typedef OM_uint32 GSSAPI_CALLCONV _gss_delete_sec_context_t |
91 | (OM_uint32 *, /* minor_status */ |
92 | gss_ctx_id_t *, /* context_handle */ |
93 | gss_buffer_t /* output_token */ |
94 | ); |
95 | |
96 | typedef OM_uint32 GSSAPI_CALLCONV _gss_context_time_t |
97 | (OM_uint32 *, /* minor_status */ |
98 | gss_const_ctx_id_t, /* context_handle */ |
99 | OM_uint32 * /* time_rec */ |
100 | ); |
101 | |
102 | typedef OM_uint32 GSSAPI_CALLCONV _gss_get_mic_t |
103 | (OM_uint32 *, /* minor_status */ |
104 | gss_const_ctx_id_t, /* context_handle */ |
105 | gss_qop_t, /* qop_req */ |
106 | const gss_buffer_t, /* message_buffer */ |
107 | gss_buffer_t /* message_token */ |
108 | ); |
109 | |
110 | typedef OM_uint32 GSSAPI_CALLCONV _gss_verify_mic_t |
111 | (OM_uint32 *, /* minor_status */ |
112 | gss_const_ctx_id_t, /* context_handle */ |
113 | const gss_buffer_t, /* message_buffer */ |
114 | const gss_buffer_t, /* token_buffer */ |
115 | gss_qop_t * /* qop_state */ |
116 | ); |
117 | |
118 | typedef OM_uint32 GSSAPI_CALLCONV _gss_wrap_t |
119 | (OM_uint32 *, /* minor_status */ |
120 | gss_const_ctx_id_t, /* context_handle */ |
121 | int, /* conf_req_flag */ |
122 | gss_qop_t, /* qop_req */ |
123 | const gss_buffer_t, /* input_message_buffer */ |
124 | int *, /* conf_state */ |
125 | gss_buffer_t /* output_message_buffer */ |
126 | ); |
127 | |
128 | typedef OM_uint32 GSSAPI_CALLCONV _gss_unwrap_t |
129 | (OM_uint32 *, /* minor_status */ |
130 | gss_const_ctx_id_t, /* context_handle */ |
131 | const gss_buffer_t, /* input_message_buffer */ |
132 | gss_buffer_t, /* output_message_buffer */ |
133 | int *, /* conf_state */ |
134 | gss_qop_t * /* qop_state */ |
135 | ); |
136 | |
137 | typedef OM_uint32 GSSAPI_CALLCONV _gss_display_status_t |
138 | (OM_uint32 *, /* minor_status */ |
139 | OM_uint32, /* status_value */ |
140 | int, /* status_type */ |
141 | const gss_OID, /* mech_type */ |
142 | OM_uint32 *, /* message_context */ |
143 | gss_buffer_t /* status_string */ |
144 | ); |
145 | |
146 | typedef OM_uint32 GSSAPI_CALLCONV _gss_indicate_mechs_t |
147 | (OM_uint32 *, /* minor_status */ |
148 | gss_OID_set * /* mech_set */ |
149 | ); |
150 | |
151 | typedef OM_uint32 GSSAPI_CALLCONV _gss_compare_name_t |
152 | (OM_uint32 *, /* minor_status */ |
153 | gss_const_name_t, /* name1 */ |
154 | gss_const_name_t, /* name2 */ |
155 | int * /* name_equal */ |
156 | ); |
157 | |
158 | typedef OM_uint32 GSSAPI_CALLCONV _gss_display_name_t |
159 | (OM_uint32 *, /* minor_status */ |
160 | gss_const_name_t, /* input_name */ |
161 | gss_buffer_t, /* output_name_buffer */ |
162 | gss_OID * /* output_name_type */ |
163 | ); |
164 | |
165 | typedef OM_uint32 GSSAPI_CALLCONV _gss_import_name_t |
166 | (OM_uint32 *, /* minor_status */ |
167 | const gss_buffer_t, /* input_name_buffer */ |
168 | const gss_OID, /* input_name_type */ |
169 | gss_name_t * /* output_name */ |
170 | ); |
171 | |
172 | typedef OM_uint32 GSSAPI_CALLCONV _gss_export_name_t |
173 | (OM_uint32 *, /* minor_status */ |
174 | gss_const_name_t, /* input_name */ |
175 | gss_buffer_t /* exported_name */ |
176 | ); |
177 | |
178 | typedef OM_uint32 GSSAPI_CALLCONV _gss_release_name_t |
179 | (OM_uint32 *, /* minor_status */ |
180 | gss_name_t * /* input_name */ |
181 | ); |
182 | |
183 | typedef OM_uint32 GSSAPI_CALLCONV _gss_inquire_cred_t |
184 | (OM_uint32 *, /* minor_status */ |
185 | gss_const_cred_id_t, /* cred_handle */ |
186 | gss_name_t *, /* name */ |
187 | OM_uint32 *, /* lifetime */ |
188 | gss_cred_usage_t *, /* cred_usage */ |
189 | gss_OID_set * /* mechanisms */ |
190 | ); |
191 | |
192 | typedef OM_uint32 GSSAPI_CALLCONV _gss_inquire_context_t |
193 | (OM_uint32 *, /* minor_status */ |
194 | gss_const_ctx_id_t, /* context_handle */ |
195 | gss_name_t *, /* src_name */ |
196 | gss_name_t *, /* targ_name */ |
197 | OM_uint32 *, /* lifetime_rec */ |
198 | gss_OID *, /* mech_type */ |
199 | OM_uint32 *, /* ctx_flags */ |
200 | int *, /* locally_initiated */ |
201 | int * /* open */ |
202 | ); |
203 | |
204 | typedef OM_uint32 GSSAPI_CALLCONV _gss_wrap_size_limit_t |
205 | (OM_uint32 *, /* minor_status */ |
206 | gss_const_ctx_id_t, /* context_handle */ |
207 | int, /* conf_req_flag */ |
208 | gss_qop_t, /* qop_req */ |
209 | OM_uint32, /* req_output_size */ |
210 | OM_uint32 * /* max_input_size */ |
211 | ); |
212 | |
213 | typedef OM_uint32 GSSAPI_CALLCONV _gss_add_cred_t ( |
214 | OM_uint32 *, /* minor_status */ |
215 | gss_const_cred_id_t, /* input_cred_handle */ |
216 | gss_const_name_t, /* desired_name */ |
217 | const gss_OID, /* desired_mech */ |
218 | gss_cred_usage_t, /* cred_usage */ |
219 | OM_uint32, /* initiator_time_req */ |
220 | OM_uint32, /* acceptor_time_req */ |
221 | gss_cred_id_t *, /* output_cred_handle */ |
222 | gss_OID_set *, /* actual_mechs */ |
223 | OM_uint32 *, /* initiator_time_rec */ |
224 | OM_uint32 * /* acceptor_time_rec */ |
225 | ); |
226 | |
227 | typedef OM_uint32 GSSAPI_CALLCONV _gss_inquire_cred_by_mech_t ( |
228 | OM_uint32 *, /* minor_status */ |
229 | gss_const_cred_id_t, /* cred_handle */ |
230 | const gss_OID, /* mech_type */ |
231 | gss_name_t *, /* name */ |
232 | OM_uint32 *, /* initiator_lifetime */ |
233 | OM_uint32 *, /* acceptor_lifetime */ |
234 | gss_cred_usage_t * /* cred_usage */ |
235 | ); |
236 | |
237 | typedef OM_uint32 GSSAPI_CALLCONV _gss_export_sec_context_t ( |
238 | OM_uint32 *, /* minor_status */ |
239 | gss_ctx_id_t *, /* context_handle */ |
240 | gss_buffer_t /* interprocess_token */ |
241 | ); |
242 | |
243 | typedef OM_uint32 GSSAPI_CALLCONV _gss_import_sec_context_t ( |
244 | OM_uint32 *, /* minor_status */ |
245 | const gss_buffer_t, /* interprocess_token */ |
246 | gss_ctx_id_t * /* context_handle */ |
247 | ); |
248 | |
249 | typedef OM_uint32 GSSAPI_CALLCONV _gss_inquire_names_for_mech_t ( |
250 | OM_uint32 *, /* minor_status */ |
251 | const gss_OID, /* mechanism */ |
252 | gss_OID_set * /* name_types */ |
253 | ); |
254 | |
255 | typedef OM_uint32 GSSAPI_CALLCONV _gss_inquire_mechs_for_name_t ( |
256 | OM_uint32 *, /* minor_status */ |
257 | gss_const_name_t, /* input_name */ |
258 | gss_OID_set * /* mech_types */ |
259 | ); |
260 | |
261 | typedef OM_uint32 GSSAPI_CALLCONV _gss_canonicalize_name_t ( |
262 | OM_uint32 *, /* minor_status */ |
263 | gss_const_name_t, /* input_name */ |
264 | const gss_OID, /* mech_type */ |
265 | gss_name_t * /* output_name */ |
266 | ); |
267 | |
268 | typedef OM_uint32 GSSAPI_CALLCONV _gss_duplicate_name_t ( |
269 | OM_uint32 *, /* minor_status */ |
270 | gss_const_name_t, /* src_name */ |
271 | gss_name_t * /* dest_name */ |
272 | ); |
273 | |
274 | typedef OM_uint32 GSSAPI_CALLCONV _gss_inquire_sec_context_by_oid ( |
275 | OM_uint32 *minor_status, |
276 | gss_const_ctx_id_t context_handle, |
277 | const gss_OID desired_object, |
278 | gss_buffer_set_t *data_set |
279 | ); |
280 | |
281 | typedef OM_uint32 GSSAPI_CALLCONV _gss_inquire_cred_by_oid ( |
282 | OM_uint32 *minor_status, |
283 | gss_const_cred_id_t cred, |
284 | const gss_OID desired_object, |
285 | gss_buffer_set_t *data_set |
286 | ); |
287 | |
288 | typedef OM_uint32 GSSAPI_CALLCONV _gss_set_sec_context_option ( |
289 | OM_uint32 *minor_status, |
290 | gss_ctx_id_t *cred_handle, |
291 | const gss_OID desired_object, |
292 | const gss_buffer_t value |
293 | ); |
294 | |
295 | typedef OM_uint32 GSSAPI_CALLCONV _gss_set_cred_option ( |
296 | OM_uint32 *minor_status, |
297 | gss_cred_id_t *cred_handle, |
298 | const gss_OID desired_object, |
299 | const gss_buffer_t value |
300 | ); |
301 | |
302 | |
303 | typedef OM_uint32 GSSAPI_CALLCONV _gss_pseudo_random( |
304 | OM_uint32 *minor_status, |
305 | gss_ctx_id_t context, |
306 | int prf_key, |
307 | const gss_buffer_t prf_in, |
308 | ssize_t desired_output_len, |
309 | gss_buffer_t prf_out |
310 | ); |
311 | |
312 | typedef OM_uint32 GSSAPI_CALLCONV |
313 | _gss_wrap_iov_t(OM_uint32 *minor_status, |
314 | gss_ctx_id_t context_handle, |
315 | int conf_req_flag, |
316 | gss_qop_t qop_req, |
317 | int * conf_state, |
318 | gss_iov_buffer_desc *iov, |
319 | int iov_count); |
320 | |
321 | typedef OM_uint32 GSSAPI_CALLCONV |
322 | _gss_unwrap_iov_t(OM_uint32 *minor_status, |
323 | gss_ctx_id_t context_handle, |
324 | int *conf_state, |
325 | gss_qop_t *qop_state, |
326 | gss_iov_buffer_desc *iov, |
327 | int iov_count); |
328 | |
329 | typedef OM_uint32 GSSAPI_CALLCONV |
330 | _gss_wrap_iov_length_t(OM_uint32 * minor_status, |
331 | gss_ctx_id_t context_handle, |
332 | int conf_req_flag, |
333 | gss_qop_t qop_req, |
334 | int *conf_state, |
335 | gss_iov_buffer_desc *iov, |
336 | int iov_count); |
337 | |
338 | typedef OM_uint32 GSSAPI_CALLCONV |
339 | _gss_store_cred_t(OM_uint32 *minor_status, |
340 | gss_cred_id_t input_cred_handle, |
341 | gss_cred_usage_t cred_usage, |
342 | const gss_OID desired_mech, |
343 | OM_uint32 overwrite_cred, |
344 | OM_uint32 default_cred, |
345 | gss_OID_set *elements_stored, |
346 | gss_cred_usage_t *cred_usage_stored); |
347 | |
348 | typedef OM_uint32 GSSAPI_CALLCONV |
349 | _gss_export_cred_t(OM_uint32 *minor_status, |
350 | gss_cred_id_t cred_handle, |
351 | gss_buffer_t cred_token); |
352 | |
353 | typedef OM_uint32 GSSAPI_CALLCONV |
354 | _gss_import_cred_t(OM_uint32 * minor_status, |
355 | gss_buffer_t cred_token, |
356 | gss_cred_id_t * cred_handle); |
357 | |
358 | |
359 | typedef OM_uint32 GSSAPI_CALLCONV |
360 | _gss_acquire_cred_ext_t(OM_uint32 * /*minor_status */, |
361 | gss_const_name_t /* desired_name */, |
362 | gss_const_OID /* credential_type */, |
363 | const void * /* credential_data */, |
364 | OM_uint32 /* time_req */, |
365 | gss_const_OID /* desired_mech */, |
366 | gss_cred_usage_t /* cred_usage */, |
367 | gss_cred_id_t * /* output_cred_handle */); |
368 | |
369 | typedef void GSSAPI_CALLCONV |
370 | _gss_iter_creds_t(OM_uint32 /* flags */, |
371 | void * /* userctx */, |
372 | void (* /*cred_iter */ )(void *, gss_OID, gss_cred_id_t)); |
373 | |
374 | typedef OM_uint32 GSSAPI_CALLCONV |
375 | _gss_destroy_cred_t(OM_uint32 * /* minor_status */, |
376 | gss_cred_id_t * /* cred */); |
377 | |
378 | typedef OM_uint32 GSSAPI_CALLCONV |
379 | _gss_cred_hold_t(OM_uint32 * /* minor_status */, |
380 | gss_cred_id_t /* cred */); |
381 | |
382 | typedef OM_uint32 GSSAPI_CALLCONV |
383 | _gss_cred_unhold_t(OM_uint32 * /* minor_status */, |
384 | gss_cred_id_t /* cred */); |
385 | |
386 | typedef OM_uint32 GSSAPI_CALLCONV |
387 | _gss_cred_label_set_t(OM_uint32 * /* minor_status */, |
388 | gss_cred_id_t /* cred */, |
389 | const char * /* label */, |
390 | gss_buffer_t /* value */); |
391 | |
392 | typedef OM_uint32 GSSAPI_CALLCONV |
393 | _gss_cred_label_get_t(OM_uint32 * /* minor_status */, |
394 | gss_cred_id_t /* cred */, |
395 | const char * /* label */, |
396 | gss_buffer_t /* value */); |
397 | |
398 | typedef OM_uint32 GSSAPI_CALLCONV _gss_display_name_ext_t ( |
399 | OM_uint32 *, /* minor_status */ |
400 | gss_name_t, /* name */ |
401 | gss_OID, /* display_as_name_type */ |
402 | gss_buffer_t /* display_name */ |
403 | ); |
404 | |
405 | typedef OM_uint32 GSSAPI_CALLCONV _gss_inquire_name_t ( |
406 | OM_uint32 *, /* minor_status */ |
407 | gss_name_t, /* name */ |
408 | int *, /* name_is_MN */ |
409 | gss_OID *, /* MN_mech */ |
410 | gss_buffer_set_t * /* attrs */ |
411 | ); |
412 | |
413 | typedef OM_uint32 GSSAPI_CALLCONV _gss_get_name_attribute_t ( |
414 | OM_uint32 *, /* minor_status */ |
415 | gss_name_t, /* name */ |
416 | gss_buffer_t, /* attr */ |
417 | int *, /* authenticated */ |
418 | int *, /* complete */ |
419 | gss_buffer_t, /* value */ |
420 | gss_buffer_t, /* display_value */ |
421 | int * /* more */ |
422 | ); |
423 | |
424 | typedef OM_uint32 GSSAPI_CALLCONV _gss_set_name_attribute_t ( |
425 | OM_uint32 *, /* minor_status */ |
426 | gss_name_t, /* name */ |
427 | int, /* complete */ |
428 | gss_buffer_t, /* attr */ |
429 | gss_buffer_t /* value */ |
430 | ); |
431 | |
432 | typedef OM_uint32 GSSAPI_CALLCONV _gss_delete_name_attribute_t ( |
433 | OM_uint32 *, /* minor_status */ |
434 | gss_name_t, /* name */ |
435 | gss_buffer_t /* attr */ |
436 | ); |
437 | |
438 | typedef OM_uint32 GSSAPI_CALLCONV _gss_export_name_composite_t ( |
439 | OM_uint32 *, /* minor_status */ |
440 | gss_name_t, /* name */ |
441 | gss_buffer_t /* exp_composite_name */ |
442 | ); |
443 | |
444 | /* |
445 | * |
446 | */ |
447 | |
448 | typedef struct gss_mo_desc_struct gss_mo_desc; |
449 | |
450 | typedef OM_uint32 GSSAPI_CALLCONV |
451 | _gss_mo_init (OM_uint32 *, gss_OID, gss_mo_desc **, size_t *); |
452 | |
453 | |
454 | struct gss_mo_desc_struct { |
455 | gss_OID option; |
456 | OM_uint32 flags; |
457 | #define GSS_MO_MA 1 |
458 | #define GSS_MO_MA_CRITICAL 2 |
459 | const char *name; |
460 | void *ctx; |
461 | int (*get)(gss_const_OID, gss_mo_desc *, gss_buffer_t); |
462 | int (*set)(gss_const_OID, gss_mo_desc *, int, gss_buffer_t); |
463 | }; |
464 | |
465 | typedef OM_uint32 GSSAPI_CALLCONV _gss_localname_t ( |
466 | OM_uint32 *, /* minor_status */ |
467 | gss_const_name_t, /* name */ |
468 | const gss_OID, /* mech_type */ |
469 | gss_buffer_t /* localname */ |
470 | ); |
471 | |
472 | typedef OM_uint32 GSSAPI_CALLCONV _gss_authorize_localname_t ( |
473 | OM_uint32 *, /* minor_status */ |
474 | gss_const_name_t, /* name */ |
475 | gss_const_buffer_t, /* user */ |
476 | gss_const_OID /* user_name_type */ |
477 | ); |
478 | |
479 | /* mechglue internal */ |
480 | struct gss_mech_compat_desc_struct; |
481 | |
482 | #define GMI_VERSION 5 |
483 | |
484 | /* gm_flags */ |
485 | #define GM_USE_MG_CRED 1 /* uses mech glue credentials */ |
486 | |
487 | typedef struct gssapi_mech_interface_desc { |
488 | unsigned gm_version; |
489 | const char *gm_name; |
490 | gss_OID_desc gm_mech_oid; |
491 | unsigned gm_flags; |
492 | _gss_acquire_cred_t *gm_acquire_cred; |
493 | _gss_release_cred_t *gm_release_cred; |
494 | _gss_init_sec_context_t *gm_init_sec_context; |
495 | _gss_accept_sec_context_t *gm_accept_sec_context; |
496 | _gss_process_context_token_t *gm_process_context_token; |
497 | _gss_delete_sec_context_t *gm_delete_sec_context; |
498 | _gss_context_time_t *gm_context_time; |
499 | _gss_get_mic_t *gm_get_mic; |
500 | _gss_verify_mic_t *gm_verify_mic; |
501 | _gss_wrap_t *gm_wrap; |
502 | _gss_unwrap_t *gm_unwrap; |
503 | _gss_display_status_t *gm_display_status; |
504 | _gss_indicate_mechs_t *gm_indicate_mechs; |
505 | _gss_compare_name_t *gm_compare_name; |
506 | _gss_display_name_t *gm_display_name; |
507 | _gss_import_name_t *gm_import_name; |
508 | _gss_export_name_t *gm_export_name; |
509 | _gss_release_name_t *gm_release_name; |
510 | _gss_inquire_cred_t *gm_inquire_cred; |
511 | _gss_inquire_context_t *gm_inquire_context; |
512 | _gss_wrap_size_limit_t *gm_wrap_size_limit; |
513 | _gss_add_cred_t *gm_add_cred; |
514 | _gss_inquire_cred_by_mech_t *gm_inquire_cred_by_mech; |
515 | _gss_export_sec_context_t *gm_export_sec_context; |
516 | _gss_import_sec_context_t *gm_import_sec_context; |
517 | _gss_inquire_names_for_mech_t *gm_inquire_names_for_mech; |
518 | _gss_inquire_mechs_for_name_t *gm_inquire_mechs_for_name; |
519 | _gss_canonicalize_name_t *gm_canonicalize_name; |
520 | _gss_duplicate_name_t *gm_duplicate_name; |
521 | _gss_inquire_sec_context_by_oid *gm_inquire_sec_context_by_oid; |
522 | _gss_inquire_cred_by_oid *gm_inquire_cred_by_oid; |
523 | _gss_set_sec_context_option *gm_set_sec_context_option; |
524 | _gss_set_cred_option *gm_set_cred_option; |
525 | _gss_pseudo_random *gm_pseudo_random; |
526 | _gss_wrap_iov_t *gm_wrap_iov; |
527 | _gss_unwrap_iov_t *gm_unwrap_iov; |
528 | _gss_wrap_iov_length_t *gm_wrap_iov_length; |
529 | _gss_store_cred_t *gm_store_cred; |
530 | _gss_export_cred_t *gm_export_cred; |
531 | _gss_import_cred_t *gm_import_cred; |
532 | _gss_acquire_cred_ext_t *gm_acquire_cred_ext; |
533 | _gss_iter_creds_t *gm_iter_creds; |
534 | _gss_destroy_cred_t *gm_destroy_cred; |
535 | _gss_cred_hold_t *gm_cred_hold; |
536 | _gss_cred_unhold_t *gm_cred_unhold; |
537 | _gss_cred_label_get_t *gm_cred_label_get; |
538 | _gss_cred_label_set_t *gm_cred_label_set; |
539 | gss_mo_desc *gm_mo; |
540 | size_t gm_mo_num; |
541 | _gss_localname_t *gm_localname; |
542 | _gss_authorize_localname_t *gm_authorize_localname; |
543 | _gss_display_name_ext_t *gm_display_name_ext; |
544 | _gss_inquire_name_t *gm_inquire_name; |
545 | _gss_get_name_attribute_t *gm_get_name_attribute; |
546 | _gss_set_name_attribute_t *gm_set_name_attribute; |
547 | _gss_delete_name_attribute_t *gm_delete_name_attribute; |
548 | _gss_export_name_composite_t *gm_export_name_composite; |
549 | struct gss_mech_compat_desc_struct *gm_compat; |
550 | } gssapi_mech_interface_desc, *gssapi_mech_interface; |
551 | |
552 | gssapi_mech_interface |
553 | __gss_get_mechanism(gss_const_OID /* oid */); |
554 | |
555 | gssapi_mech_interface __gss_spnego_initialize(void); |
556 | gssapi_mech_interface __gss_krb5_initialize(void); |
557 | gssapi_mech_interface __gss_ntlm_initialize(void); |
558 | |
559 | void gss_mg_collect_error(gss_OID, OM_uint32, OM_uint32); |
560 | |
561 | int _gss_mo_get_option_1(gss_const_OID, gss_mo_desc *, gss_buffer_t); |
562 | int _gss_mo_get_option_0(gss_const_OID, gss_mo_desc *, gss_buffer_t); |
563 | int _gss_mo_get_ctx_as_string(gss_const_OID, gss_mo_desc *, gss_buffer_t); |
564 | |
565 | struct _gss_oid_name_table { |
566 | gss_OID oid; |
567 | const char *name; |
568 | const char *short_desc; |
569 | const char *long_desc; |
570 | }; |
571 | |
572 | extern struct _gss_oid_name_table _gss_ont_mech[]; |
573 | extern struct _gss_oid_name_table _gss_ont_ma[]; |
574 | |
575 | /* |
576 | * Extended credentials acqusition API, not to be exported until |
577 | * it or something equivalent has been standardised. |
578 | */ |
579 | extern gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_cred_password_oid_desc; |
580 | #define GSS_C_CRED_PASSWORD (&__gss_c_cred_password_oid_desc) |
581 | |
582 | extern gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_cred_certificate_oid_desc; |
583 | #define GSS_C_CRED_CERTIFICATE (&__gss_c_cred_certificate_oid_desc) |
584 | |
585 | OM_uint32 _gss_acquire_cred_ext |
586 | (OM_uint32 * /*minor_status*/, |
587 | gss_const_name_t /*desired_name*/, |
588 | gss_const_OID /*credential_type*/, |
589 | const void * /*credential_data*/, |
590 | OM_uint32 /*time_req*/, |
591 | gss_const_OID /*desired_mech*/, |
592 | gss_cred_usage_t /*cred_usage*/, |
593 | gss_cred_id_t * /*output_cred_handle*/ |
594 | ); |
595 | |
596 | #endif /* GSSAPI_MECH_H */ |
597 | |