blob: a27fe95f35ba5793ffb22c0511d5228aa11671d3 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Sun designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Sun in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25
26/* This is the gssapi.h prologue. */
27/* It contains some choice pieces of autoconf.h */
28#define GSS_SIZEOF_INT 4
29#define GSS_SIZEOF_LONG 4
30#define GSS_SIZEOF_SHORT 2
31
32#ifndef _GSSAPI_H_
33#define _GSSAPI_H_
34
35#ifdef __cplusplus
36extern "C" {
37#endif /* __cplusplus */
38
39/*
40 * First, include stddef.h to get size_t defined.
41 */
42#include <stddef.h>
43
44/*
45 * POSIX says that sys/types.h is where size_t is defined.
46 */
47#include <sys/types.h>
48
49typedef void * gss_name_t;
50typedef void * gss_cred_id_t;
51typedef void * gss_ctx_id_t;
52
53/*
54 * The following type must be defined as the smallest natural unsigned integer
55 * supported by the platform that has at least 32 bits of precision.
56 */
57#if (GSS_SIZEOF_SHORT == 4)
58typedef unsigned short gss_uint32;
59typedef short gss_int32;
60#elif (GSS_SIZEOF_INT == 4)
61typedef unsigned int gss_uint32;
62typedef int gss_int32;
63#elif (GSS_SIZEOF_LONG == 4)
64typedef unsigned long gss_uint32;
65typedef long gss_int32;
66#endif
67
68typedef gss_uint32 OM_uint32;
69
70typedef struct gss_OID_desc_struct {
71 OM_uint32 length;
72 void *elements;
73} gss_OID_desc, *gss_OID;
74
75typedef struct gss_OID_set_desc_struct {
76 size_t count;
77 gss_OID elements;
78} gss_OID_set_desc, *gss_OID_set;
79
80typedef struct gss_buffer_desc_struct {
81 size_t length;
82 void *value;
83} gss_buffer_desc, *gss_buffer_t;
84
85typedef struct gss_channel_bindings_struct {
86 OM_uint32 initiator_addrtype;
87 gss_buffer_desc initiator_address;
88 OM_uint32 acceptor_addrtype;
89 gss_buffer_desc acceptor_address;
90 gss_buffer_desc application_data;
91} *gss_channel_bindings_t;
92
93/*
94 * For now, define a QOP-type as an OM_uint32
95 */
96typedef OM_uint32 gss_qop_t;
97typedef int gss_cred_usage_t;
98
99/*
100 * Flag bits for context-level services.
101 */
102#define GSS_C_DELEG_FLAG 1
103#define GSS_C_MUTUAL_FLAG 2
104#define GSS_C_REPLAY_FLAG 4
105#define GSS_C_SEQUENCE_FLAG 8
106#define GSS_C_CONF_FLAG 16
107#define GSS_C_INTEG_FLAG 32
108#define GSS_C_ANON_FLAG 64
109#define GSS_C_PROT_READY_FLAG 128
110#define GSS_C_TRANS_FLAG 256
111
112/*
113 * Credential usage options
114 */
115#define GSS_C_BOTH 0
116#define GSS_C_INITIATE 1
117#define GSS_C_ACCEPT 2
118
119/*
120 * Status code types for gss_display_status
121 */
122#define GSS_C_GSS_CODE 1
123#define GSS_C_MECH_CODE 2
124
125/*
126 * The constant definitions for channel-bindings address families
127 */
128#define GSS_C_AF_UNSPEC 0
129#define GSS_C_AF_LOCAL 1
130#define GSS_C_AF_INET 2
131#define GSS_C_AF_IMPLINK 3
132#define GSS_C_AF_PUP 4
133#define GSS_C_AF_CHAOS 5
134#define GSS_C_AF_NS 6
135#define GSS_C_AF_NBS 7
136#define GSS_C_AF_ECMA 8
137#define GSS_C_AF_DATAKIT 9
138#define GSS_C_AF_CCITT 10
139#define GSS_C_AF_SNA 11
140#define GSS_C_AF_DECnet 12
141#define GSS_C_AF_DLI 13
142#define GSS_C_AF_LAT 14
143#define GSS_C_AF_HYLINK 15
144#define GSS_C_AF_APPLETALK 16
145#define GSS_C_AF_BSC 17
146#define GSS_C_AF_DSS 18
147#define GSS_C_AF_OSI 19
148#define GSS_C_AF_X25 21
149
150#define GSS_C_AF_NULLADDR 255
151
152/*
153 * Various Null values.
154 */
155#define GSS_C_NO_NAME ((gss_name_t) 0)
156#define GSS_C_NO_BUFFER ((gss_buffer_t) 0)
157#define GSS_C_NO_OID ((gss_OID) 0)
158#define GSS_C_NO_OID_SET ((gss_OID_set) 0)
159#define GSS_C_NO_CONTEXT ((gss_ctx_id_t) 0)
160#define GSS_C_NO_CREDENTIAL ((gss_cred_id_t) 0)
161#define GSS_C_NO_CHANNEL_BINDINGS ((gss_channel_bindings_t) 0)
162#define GSS_C_EMPTY_BUFFER {0, NULL}
163
164/*
165 * Some alternate names for a couple of the above values. These are defined
166 * for V1 compatibility.
167 */
168#define GSS_C_NULL_OID GSS_C_NO_OID
169#define GSS_C_NULL_OID_SET GSS_C_NO_OID_SET
170
171/*
172 * Define the default Quality of Protection for per-message services. Note
173 * that an implementation that offers multiple levels of QOP may either reserve
174 * a value (for example zero, as assumed here) to mean "default protection", or
175 * alternatively may simply equate GSS_C_QOP_DEFAULT to a specific explicit
176 * QOP value. However a value of 0 should always be interpreted by a GSSAPI
177 * implementation as a request for the default protection level.
178 */
179#define GSS_C_QOP_DEFAULT 0
180
181/*
182 * Expiration time of 2^32-1 seconds means infinite lifetime for a
183 * credential or security context
184 */
185#define GSS_C_INDEFINITE ((OM_uint32) 0xfffffffful)
186
187
188/* Major status codes */
189
190#define GSS_S_COMPLETE 0
191
192/*
193 * Some "helper" definitions to make the status code macros obvious.
194 */
195#define GSS_C_CALLING_ERROR_OFFSET 24
196#define GSS_C_ROUTINE_ERROR_OFFSET 16
197#define GSS_C_SUPPLEMENTARY_OFFSET 0
198#define GSS_C_CALLING_ERROR_MASK ((OM_uint32) 0377ul)
199#define GSS_C_ROUTINE_ERROR_MASK ((OM_uint32) 0377ul)
200#define GSS_C_SUPPLEMENTARY_MASK ((OM_uint32) 0177777ul)
201
202/*
203 * The macros that test status codes for error conditions. Note that the
204 * GSS_ERROR() macro has changed slightly from the V1 GSSAPI so that it now
205 * evaluates its argument only once.
206 */
207#define GSS_CALLING_ERROR(x) \
208 ((x) & (GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET))
209#define GSS_ROUTINE_ERROR(x) \
210 ((x) & (GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET))
211#define GSS_SUPPLEMENTARY_INFO(x) \
212 ((x) & (GSS_C_SUPPLEMENTARY_MASK << GSS_C_SUPPLEMENTARY_OFFSET))
213#define GSS_ERROR(x) \
214 ((x) & ((GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET) | \
215 (GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET)))
216
217/*
218 * Now the actual status code definitions
219 */
220
221/*
222 * Calling errors:
223 */
224#define GSS_S_CALL_INACCESSIBLE_READ \
225 (((OM_uint32) 1ul) << GSS_C_CALLING_ERROR_OFFSET)
226#define GSS_S_CALL_INACCESSIBLE_WRITE \
227 (((OM_uint32) 2ul) << GSS_C_CALLING_ERROR_OFFSET)
228#define GSS_S_CALL_BAD_STRUCTURE \
229 (((OM_uint32) 3ul) << GSS_C_CALLING_ERROR_OFFSET)
230
231/*
232 * Routine errors:
233 */
234#define GSS_S_BAD_MECH (((OM_uint32) 1ul) << GSS_C_ROUTINE_ERROR_OFFSET)
235#define GSS_S_BAD_NAME (((OM_uint32) 2ul) << GSS_C_ROUTINE_ERROR_OFFSET)
236#define GSS_S_BAD_NAMETYPE (((OM_uint32) 3ul) << GSS_C_ROUTINE_ERROR_OFFSET)
237#define GSS_S_BAD_BINDINGS (((OM_uint32) 4ul) << GSS_C_ROUTINE_ERROR_OFFSET)
238#define GSS_S_BAD_STATUS (((OM_uint32) 5ul) << GSS_C_ROUTINE_ERROR_OFFSET)
239#define GSS_S_BAD_SIG (((OM_uint32) 6ul) << GSS_C_ROUTINE_ERROR_OFFSET)
240#define GSS_S_NO_CRED (((OM_uint32) 7ul) << GSS_C_ROUTINE_ERROR_OFFSET)
241#define GSS_S_NO_CONTEXT (((OM_uint32) 8ul) << GSS_C_ROUTINE_ERROR_OFFSET)
242#define GSS_S_DEFECTIVE_TOKEN (((OM_uint32) 9ul) << GSS_C_ROUTINE_ERROR_OFFSET)
243#define GSS_S_DEFECTIVE_CREDENTIAL \
244 (((OM_uint32) 10ul) << GSS_C_ROUTINE_ERROR_OFFSET)
245#define GSS_S_CREDENTIALS_EXPIRED \
246 (((OM_uint32) 11ul) << GSS_C_ROUTINE_ERROR_OFFSET)
247#define GSS_S_CONTEXT_EXPIRED \
248 (((OM_uint32) 12ul) << GSS_C_ROUTINE_ERROR_OFFSET)
249#define GSS_S_FAILURE (((OM_uint32) 13ul) << GSS_C_ROUTINE_ERROR_OFFSET)
250#define GSS_S_BAD_QOP (((OM_uint32) 14ul) << GSS_C_ROUTINE_ERROR_OFFSET)
251#define GSS_S_UNAUTHORIZED (((OM_uint32) 15ul) << GSS_C_ROUTINE_ERROR_OFFSET)
252#define GSS_S_UNAVAILABLE (((OM_uint32) 16ul) << GSS_C_ROUTINE_ERROR_OFFSET)
253#define GSS_S_DUPLICATE_ELEMENT \
254 (((OM_uint32) 17ul) << GSS_C_ROUTINE_ERROR_OFFSET)
255#define GSS_S_NAME_NOT_MN \
256 (((OM_uint32) 18ul) << GSS_C_ROUTINE_ERROR_OFFSET)
257
258/*
259 * Supplementary info bits:
260 */
261#define GSS_S_CONTINUE_NEEDED (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 0))
262#define GSS_S_DUPLICATE_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 1))
263#define GSS_S_OLD_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 2))
264#define GSS_S_UNSEQ_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 3))
265#define GSS_S_GAP_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 4))
266
267
268/*
269 * Finally, function prototypes for the GSSAPI routines.
270 */
271
272#if defined (_WIN32) && defined (_MSC_VER)
273# ifdef GSS_DLL_FILE
274# define GSS_DLLIMP __declspec(dllexport)
275# else
276# define GSS_DLLIMP __declspec(dllimport)
277# endif
278#else
279# define GSS_DLLIMP
280#endif
281
282/* Reserved static storage for GSS_oids. Comments are quotes from RFC 2744.
283 *
284 * The implementation must reserve static storage for a
285 * gss_OID_desc object containing the value
286 * {10, (void *)"\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x01"},
287 * corresponding to an object-identifier value of
288 * {iso(1) member-body(2) United States(840) mit(113554)
289 * infosys(1) gssapi(2) generic(1) user_name(1)}. The constant
290 * GSS_C_NT_USER_NAME should be initialized to point
291 * to that gss_OID_desc.
292 */
293GSS_DLLIMP extern gss_OID GSS_C_NT_USER_NAME;
294
295/*
296 * The implementation must reserve static storage for a
297 * gss_OID_desc object containing the value
298 * {10, (void *)"\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x02"},
299 * corresponding to an object-identifier value of
300 * {iso(1) member-body(2) United States(840) mit(113554)
301 * infosys(1) gssapi(2) generic(1) machine_uid_name(2)}.
302 * The constant GSS_C_NT_MACHINE_UID_NAME should be
303 * initialized to point to that gss_OID_desc.
304 */
305GSS_DLLIMP extern gss_OID GSS_C_NT_MACHINE_UID_NAME;
306
307/*
308 * The implementation must reserve static storage for a
309 * gss_OID_desc object containing the value
310 * {10, (void *)"\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x03"},
311 * corresponding to an object-identifier value of
312 * {iso(1) member-body(2) United States(840) mit(113554)
313 * infosys(1) gssapi(2) generic(1) string_uid_name(3)}.
314 * The constant GSS_C_NT_STRING_UID_NAME should be
315 * initialized to point to that gss_OID_desc.
316 */
317GSS_DLLIMP extern gss_OID GSS_C_NT_STRING_UID_NAME;
318
319/*
320 * The implementation must reserve static storage for a
321 * gss_OID_desc object containing the value
322 * {6, (void *)"\x2b\x06\x01\x05\x06\x02"},
323 * corresponding to an object-identifier value of
324 * {iso(1) org(3) dod(6) internet(1) security(5)
325 * nametypes(6) gss-host-based-services(2)). The constant
326 * GSS_C_NT_HOSTBASED_SERVICE_X should be initialized to point
327 * to that gss_OID_desc. This is a deprecated OID value, and
328 * implementations wishing to support hostbased-service names
329 * should instead use the GSS_C_NT_HOSTBASED_SERVICE OID,
330 * defined below, to identify such names;
331 * GSS_C_NT_HOSTBASED_SERVICE_X should be accepted a synonym
332 * for GSS_C_NT_HOSTBASED_SERVICE when presented as an input
333 * parameter, but should not be emitted by GSS-API
334 * implementations
335 */
336GSS_DLLIMP extern gss_OID GSS_C_NT_HOSTBASED_SERVICE_X;
337
338/*
339 * The implementation must reserve static storage for a
340 * gss_OID_desc object containing the value
341 * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
342 * "\x01\x02\x01\x04"}, corresponding to an
343 * object-identifier value of {iso(1) member-body(2)
344 * Unites States(840) mit(113554) infosys(1) gssapi(2)
345 * generic(1) service_name(4)}. The constant
346 * GSS_C_NT_HOSTBASED_SERVICE should be initialized
347 * to point to that gss_OID_desc.
348 */
349GSS_DLLIMP extern gss_OID GSS_C_NT_HOSTBASED_SERVICE;
350
351/*
352 * The implementation must reserve static storage for a
353 * gss_OID_desc object containing the value
354 * {6, (void *)"\x2b\x06\01\x05\x06\x03"},
355 * corresponding to an object identifier value of
356 * {1(iso), 3(org), 6(dod), 1(internet), 5(security),
357 * 6(nametypes), 3(gss-anonymous-name)}. The constant
358 * and GSS_C_NT_ANONYMOUS should be initialized to point
359 * to that gss_OID_desc.
360 */
361GSS_DLLIMP extern gss_OID GSS_C_NT_ANONYMOUS;
362
363
364/*
365 * The implementation must reserve static storage for a
366 * gss_OID_desc object containing the value
367 * {6, (void *)"\x2b\x06\x01\x05\x06\x04"},
368 * corresponding to an object-identifier value of
369 * {1(iso), 3(org), 6(dod), 1(internet), 5(security),
370 * 6(nametypes), 4(gss-api-exported-name)}. The constant
371 * GSS_C_NT_EXPORT_NAME should be initialized to point
372 * to that gss_OID_desc.
373 */
374GSS_DLLIMP extern gss_OID GSS_C_NT_EXPORT_NAME;
375
376
377/* Function Prototypes */
378
379OM_uint32 gss_acquire_cred(
380 OM_uint32 *, /* minor_status */
381 gss_name_t, /* desired_name */
382 OM_uint32, /* time_req */
383 gss_OID_set, /* desired_mechs */
384 gss_cred_usage_t, /* cred_usage */
385 gss_cred_id_t *, /* output_cred_handle */
386 gss_OID_set *, /* actual_mechs */
387 OM_uint32 * /* time_rec */
388);
389
390OM_uint32 gss_release_cred(
391 OM_uint32 *, /* minor_status */
392 gss_cred_id_t * /* cred_handle */
393);
394
395OM_uint32 gss_init_sec_context(
396 OM_uint32 *, /* minor_status */
397 gss_cred_id_t, /* claimant_cred_handle */
398 gss_ctx_id_t *, /* context_handle */
399 gss_name_t, /* target_name */
400 gss_OID, /* mech_type (used to be const) */
401 OM_uint32, /* req_flags */
402 OM_uint32, /* time_req */
403 gss_channel_bindings_t, /* input_chan_bindings */
404 gss_buffer_t, /* input_token */
405 gss_OID *, /* actual_mech_type */
406 gss_buffer_t, /* output_token */
407 OM_uint32 *, /* ret_flags */
408 OM_uint32 * /* time_rec */
409);
410
411OM_uint32 gss_accept_sec_context(
412 OM_uint32 *, /* minor_status */
413 gss_ctx_id_t *, /* context_handle */
414 gss_cred_id_t, /* acceptor_cred_handle */
415 gss_buffer_t, /* input_token_buffer */
416 gss_channel_bindings_t, /* input_chan_bindings */
417 gss_name_t *, /* src_name */
418 gss_OID *, /* mech_type */
419 gss_buffer_t, /* output_token */
420 OM_uint32 *, /* ret_flags */
421 OM_uint32 *, /* time_rec */
422 gss_cred_id_t * /* delegated_cred_handle */
423);
424
425OM_uint32 gss_process_context_token(
426 OM_uint32 *, /* minor_status */
427 gss_ctx_id_t, /* context_handle */
428 gss_buffer_t /* token_buffer */
429);
430
431OM_uint32 gss_delete_sec_context(
432 OM_uint32 *, /* minor_status */
433 gss_ctx_id_t *, /* context_handle */
434 gss_buffer_t /* output_token */
435);
436
437OM_uint32 gss_context_time(
438 OM_uint32 *, /* minor_status */
439 gss_ctx_id_t, /* context_handle */
440 OM_uint32 * /* time_rec */
441);
442
443/* New for V2 */
444OM_uint32 gss_get_mic(
445 OM_uint32 *, /* minor_status */
446 gss_ctx_id_t, /* context_handle */
447 gss_qop_t, /* qop_req */
448 gss_buffer_t, /* message_buffer */
449 gss_buffer_t /* message_token */
450);
451
452/* New for V2 */
453OM_uint32 gss_verify_mic(
454 OM_uint32 *, /* minor_status */
455 gss_ctx_id_t, /* context_handle */
456 gss_buffer_t, /* message_buffer */
457 gss_buffer_t, /* message_token */
458 gss_qop_t * /* qop_state */
459);
460
461/* New for V2 */
462OM_uint32 gss_wrap(
463 OM_uint32 *, /* minor_status */
464 gss_ctx_id_t, /* context_handle */
465 int, /* conf_req_flag */
466 gss_qop_t, /* qop_req */
467 gss_buffer_t, /* input_message_buffer */
468 int *, /* conf_state */
469 gss_buffer_t /* output_message_buffer */
470);
471
472/* New for V2 */
473OM_uint32 gss_unwrap(
474 OM_uint32 *, /* minor_status */
475 gss_ctx_id_t, /* context_handle */
476 gss_buffer_t, /* input_message_buffer */
477 gss_buffer_t, /* output_message_buffer */
478 int *, /* conf_state */
479 gss_qop_t * /* qop_state */
480);
481
482OM_uint32 gss_display_status(
483 OM_uint32 *, /* minor_status */
484 OM_uint32, /* status_value */
485 int, /* status_type */
486 gss_OID, /* mech_type (used to be const) */
487 OM_uint32 *, /* message_context */
488 gss_buffer_t /* status_string */
489);
490
491OM_uint32 gss_indicate_mechs(
492 OM_uint32 *, /* minor_status */
493 gss_OID_set * /* mech_set */
494);
495
496OM_uint32 gss_compare_name(
497 OM_uint32 *, /* minor_status */
498 gss_name_t, /* name1 */
499 gss_name_t, /* name2 */
500 int * /* name_equal */
501);
502
503OM_uint32 gss_display_name(
504 OM_uint32 *, /* minor_status */
505 gss_name_t, /* input_name */
506 gss_buffer_t, /* output_name_buffer */
507 gss_OID * /* output_name_type */
508);
509
510OM_uint32 gss_import_name(
511 OM_uint32 *, /* minor_status */
512 gss_buffer_t, /* input_name_buffer */
513 gss_OID, /* input_name_type(used to be const) */
514 gss_name_t * /* output_name */
515);
516
517OM_uint32 gss_release_name(
518 OM_uint32 *, /* minor_status */
519 gss_name_t * /* input_name */
520);
521
522OM_uint32 gss_release_buffer(
523 OM_uint32 *, /* minor_status */
524 gss_buffer_t /* buffer */
525);
526
527OM_uint32 gss_release_oid_set(
528 OM_uint32 *, /* minor_status */
529 gss_OID_set * /* set */
530);
531
532OM_uint32 gss_inquire_cred(
533 OM_uint32 *, /* minor_status */
534 gss_cred_id_t, /* cred_handle */
535 gss_name_t *, /* name */
536 OM_uint32 *, /* lifetime */
537 gss_cred_usage_t *, /* cred_usage */
538 gss_OID_set * /* mechanisms */
539);
540
541/* Last argument new for V2 */
542OM_uint32 gss_inquire_context(
543 OM_uint32 *, /* minor_status */
544 gss_ctx_id_t, /* context_handle */
545 gss_name_t *, /* src_name */
546 gss_name_t *, /* targ_name */
547 OM_uint32 *, /* lifetime_rec */
548 gss_OID *, /* mech_type */
549 OM_uint32 *, /* ctx_flags */
550 int *, /* locally_initiated */
551 int * /* open */
552);
553
554/* New for V2 */
555OM_uint32 gss_wrap_size_limit(
556 OM_uint32 *, /* minor_status */
557 gss_ctx_id_t, /* context_handle */
558 int, /* conf_req_flag */
559 gss_qop_t, /* qop_req */
560 OM_uint32, /* req_output_size */
561 OM_uint32 * /* max_input_size */
562);
563
564/* New for V2 */
565OM_uint32 gss_add_cred(
566 OM_uint32 *, /* minor_status */
567 gss_cred_id_t, /* input_cred_handle */
568 gss_name_t, /* desired_name */
569 gss_OID, /* desired_mech */
570 gss_cred_usage_t, /* cred_usage */
571 OM_uint32, /* initiator_time_req */
572 OM_uint32, /* acceptor_time_req */
573 gss_cred_id_t *, /* output_cred_handle */
574 gss_OID_set *, /* actual_mechs */
575 OM_uint32 *, /* initiator_time_rec */
576 OM_uint32 * /* acceptor_time_rec */
577);
578
579/* New for V2 */
580OM_uint32 gss_inquire_cred_by_mech(
581 OM_uint32 *, /* minor_status */
582 gss_cred_id_t, /* cred_handle */
583 gss_OID, /* mech_type */
584 gss_name_t *, /* name */
585 OM_uint32 *, /* initiator_lifetime */
586 OM_uint32 *, /* acceptor_lifetime */
587 gss_cred_usage_t * /* cred_usage */
588);
589
590/* New for V2 */
591OM_uint32 gss_export_sec_context(
592 OM_uint32 *, /* minor_status */
593 gss_ctx_id_t *, /* context_handle */
594 gss_buffer_t /* interprocess_token */
595);
596
597/* New for V2 */
598OM_uint32 gss_import_sec_context(
599 OM_uint32 *, /* minor_status */
600 gss_buffer_t, /* interprocess_token */
601 gss_ctx_id_t * /* context_handle */
602);
603
604/* New for V2 */
605OM_uint32 gss_release_oid(
606 OM_uint32 *, /* minor_status */
607 gss_OID * /* oid */
608);
609
610/* New for V2 */
611OM_uint32 gss_create_empty_oid_set(
612 OM_uint32 *, /* minor_status */
613 gss_OID_set * /* oid_set */
614);
615
616/* New for V2 */
617OM_uint32 gss_add_oid_set_member(
618 OM_uint32 *, /* minor_status */
619 gss_OID, /* member_oid */
620 gss_OID_set * /* oid_set */
621);
622
623/* New for V2 */
624OM_uint32 gss_test_oid_set_member(
625 OM_uint32 *, /* minor_status */
626 gss_OID, /* member */
627 gss_OID_set, /* set */
628 int * /* present */
629);
630
631/* New for V2 */
632OM_uint32 gss_str_to_oid(
633 OM_uint32 *, /* minor_status */
634 gss_buffer_t, /* oid_str */
635 gss_OID * /* oid */
636);
637
638/* New for V2 */
639OM_uint32 gss_oid_to_str(
640 OM_uint32 *, /* minor_status */
641 gss_OID, /* oid */
642 gss_buffer_t /* oid_str */
643);
644
645/* New for V2 */
646OM_uint32 gss_inquire_names_for_mech(
647 OM_uint32 *, /* minor_status */
648 gss_OID, /* mechanism */
649 gss_OID_set * /* name_types */
650);
651
652/* New for V2 */
653OM_uint32 gss_export_name(
654 OM_uint32 *, /* minor_status */
655 const gss_name_t, /* input_name */
656 gss_buffer_t /* exported_name */
657);
658
659/* New for V2 */
660OM_uint32 gss_duplicate_name(
661 OM_uint32 *, /* minor_status */
662 const gss_name_t, /* input_name */
663 gss_name_t * /* dest_name */
664);
665
666/* New for V2 */
667OM_uint32 gss_canonicalize_name(
668 OM_uint32 *, /* minor_status */
669 const gss_name_t, /* input_name */
670 const gss_OID, /* mech_type */
671 gss_name_t * /* output_name */
672);
673
674#ifdef __cplusplus
675}
676#endif
677
678#endif /* _GSSAPI_H_ */