xref: /illumos-gate/usr/src/uts/common/gssapi/mechs/krb5/include/krb5.h (revision 7c478bd95313f5f23a4c958a745db2134aa0324)
1*7c478bd9Sstevel@tonic-gate /*
2*7c478bd9Sstevel@tonic-gate  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
3*7c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
4*7c478bd9Sstevel@tonic-gate  */
5*7c478bd9Sstevel@tonic-gate 
6*7c478bd9Sstevel@tonic-gate /* This is the prologue to krb5.h */
7*7c478bd9Sstevel@tonic-gate /* Unfortunately some of these defines are compiler dependent */
8*7c478bd9Sstevel@tonic-gate #ifndef _KRB5_H
9*7c478bd9Sstevel@tonic-gate #define _KRB5_H
10*7c478bd9Sstevel@tonic-gate 
11*7c478bd9Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
12*7c478bd9Sstevel@tonic-gate 
13*7c478bd9Sstevel@tonic-gate #define SIZEOF_INT 4
14*7c478bd9Sstevel@tonic-gate 
15*7c478bd9Sstevel@tonic-gate #ifdef _LP64
16*7c478bd9Sstevel@tonic-gate #define SIZEOF_LONG 8
17*7c478bd9Sstevel@tonic-gate #else
18*7c478bd9Sstevel@tonic-gate #define SIZEOF_LONG 4
19*7c478bd9Sstevel@tonic-gate #endif
20*7c478bd9Sstevel@tonic-gate 
21*7c478bd9Sstevel@tonic-gate #define SIZEOF_SHORT 2
22*7c478bd9Sstevel@tonic-gate #define HAVE_STDARG_H 1
23*7c478bd9Sstevel@tonic-gate #define HAVE_SYS_TYPES_H 1
24*7c478bd9Sstevel@tonic-gate /* End of prologue section */
25*7c478bd9Sstevel@tonic-gate /*
26*7c478bd9Sstevel@tonic-gate  * include/krb5.h
27*7c478bd9Sstevel@tonic-gate  *
28*7c478bd9Sstevel@tonic-gate  * Copyright 1989,1990,1995 by the Massachusetts Institute of Technology.
29*7c478bd9Sstevel@tonic-gate  * All Rights Reserved.
30*7c478bd9Sstevel@tonic-gate  *
31*7c478bd9Sstevel@tonic-gate  * Export of this software from the United States of America may
32*7c478bd9Sstevel@tonic-gate  *   require a specific license from the United States Government.
33*7c478bd9Sstevel@tonic-gate  *   It is the responsibility of any person or organization contemplating
34*7c478bd9Sstevel@tonic-gate  *   export to obtain such a license before exporting.
35*7c478bd9Sstevel@tonic-gate  *
36*7c478bd9Sstevel@tonic-gate  * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
37*7c478bd9Sstevel@tonic-gate  * distribute this software and its documentation for any purpose and
38*7c478bd9Sstevel@tonic-gate  * without fee is hereby granted, provided that the above copyright
39*7c478bd9Sstevel@tonic-gate  * notice appear in all copies and that both that copyright notice and
40*7c478bd9Sstevel@tonic-gate  * this permission notice appear in supporting documentation, and that
41*7c478bd9Sstevel@tonic-gate  * the name of M.I.T. not be used in advertising or publicity pertaining
42*7c478bd9Sstevel@tonic-gate  * to distribution of the software without specific, written prior
43*7c478bd9Sstevel@tonic-gate  * permission.	Furthermore if you modify this software you must label
44*7c478bd9Sstevel@tonic-gate  * your software as modified software and not distribute it in such a
45*7c478bd9Sstevel@tonic-gate  * fashion that it might be confused with the original M.I.T. software.
46*7c478bd9Sstevel@tonic-gate  * M.I.T. makes no representations about the suitability of
47*7c478bd9Sstevel@tonic-gate  * this software for any purpose.  It is provided "as is" without express
48*7c478bd9Sstevel@tonic-gate  * or implied warranty.
49*7c478bd9Sstevel@tonic-gate  *
50*7c478bd9Sstevel@tonic-gate  *
51*7c478bd9Sstevel@tonic-gate  * General definitions for Kerberos version 5.
52*7c478bd9Sstevel@tonic-gate  */
53*7c478bd9Sstevel@tonic-gate 
54*7c478bd9Sstevel@tonic-gate /*
55*7c478bd9Sstevel@tonic-gate  * Copyright (C) 1998 by the FundsXpress, INC.
56*7c478bd9Sstevel@tonic-gate  *
57*7c478bd9Sstevel@tonic-gate  * All rights reserved.
58*7c478bd9Sstevel@tonic-gate  *
59*7c478bd9Sstevel@tonic-gate  * Export of this software from the United States of America may require
60*7c478bd9Sstevel@tonic-gate  * a specific license from the United States Government.  It is the
61*7c478bd9Sstevel@tonic-gate  * responsibility of any person or organization contemplating export to
62*7c478bd9Sstevel@tonic-gate  * obtain such a license before exporting.
63*7c478bd9Sstevel@tonic-gate  *
64*7c478bd9Sstevel@tonic-gate  * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
65*7c478bd9Sstevel@tonic-gate  * distribute this software and its documentation for any purpose and
66*7c478bd9Sstevel@tonic-gate  * without fee is hereby granted, provided that the above copyright
67*7c478bd9Sstevel@tonic-gate  * notice appear in all copies and that both that copyright notice and
68*7c478bd9Sstevel@tonic-gate  * this permission notice appear in supporting documentation, and that
69*7c478bd9Sstevel@tonic-gate  * the name of FundsXpress. not be used in advertising or publicity pertaining
70*7c478bd9Sstevel@tonic-gate  * to distribution of the software without specific, written prior
71*7c478bd9Sstevel@tonic-gate  * permission.  FundsXpress makes no representations about the suitability of
72*7c478bd9Sstevel@tonic-gate  * this software for any purpose.  It is provided "as is" without express
73*7c478bd9Sstevel@tonic-gate  * or implied warranty.
74*7c478bd9Sstevel@tonic-gate  *
75*7c478bd9Sstevel@tonic-gate  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
76*7c478bd9Sstevel@tonic-gate  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
77*7c478bd9Sstevel@tonic-gate  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
78*7c478bd9Sstevel@tonic-gate  */
79*7c478bd9Sstevel@tonic-gate 
80*7c478bd9Sstevel@tonic-gate #ifndef KRB5_GENERAL__
81*7c478bd9Sstevel@tonic-gate #define KRB5_GENERAL__
82*7c478bd9Sstevel@tonic-gate 
83*7c478bd9Sstevel@tonic-gate #ifdef	_KERNEL
84*7c478bd9Sstevel@tonic-gate #include <sys/systm.h>
85*7c478bd9Sstevel@tonic-gate #include <sys/kmem.h>
86*7c478bd9Sstevel@tonic-gate 
87*7c478bd9Sstevel@tonic-gate #include <sys/crypto/common.h>
88*7c478bd9Sstevel@tonic-gate #include <sys/crypto/api.h>
89*7c478bd9Sstevel@tonic-gate 
90*7c478bd9Sstevel@tonic-gate /*
91*7c478bd9Sstevel@tonic-gate  * Just to be safe lets make sure the buffers are zero'ed after
92*7c478bd9Sstevel@tonic-gate  * malloc() as some code assumes this is the case.  To avoid warnings
93*7c478bd9Sstevel@tonic-gate  * of duplicated defines let remove the old one if present.
94*7c478bd9Sstevel@tonic-gate  */
95*7c478bd9Sstevel@tonic-gate #ifdef MALLOC
96*7c478bd9Sstevel@tonic-gate #undef MALLOC
97*7c478bd9Sstevel@tonic-gate #endif
98*7c478bd9Sstevel@tonic-gate #define MALLOC(n) kmem_zalloc((n), KM_SLEEP)
99*7c478bd9Sstevel@tonic-gate 
100*7c478bd9Sstevel@tonic-gate #define	FREE(x, n) kmem_free((x), (n))
101*7c478bd9Sstevel@tonic-gate #define CALLOC(n, s) kmem_zalloc((n)*(s), KM_SLEEP)
102*7c478bd9Sstevel@tonic-gate #define strcpy(dst,src,n) bcopy((src),(dst),(n))
103*7c478bd9Sstevel@tonic-gate #define mutex_lock(lck)  mutex_enter(lck)
104*7c478bd9Sstevel@tonic-gate #define mutex_unlock(lck)  mutex_exit(lck)
105*7c478bd9Sstevel@tonic-gate 
106*7c478bd9Sstevel@tonic-gate #else /* !_KERNEL */
107*7c478bd9Sstevel@tonic-gate #define	MALLOC(n) malloc(n)
108*7c478bd9Sstevel@tonic-gate #define	FREE(x, n) free(x)
109*7c478bd9Sstevel@tonic-gate #define CALLOC(n, s) calloc((n), (s))
110*7c478bd9Sstevel@tonic-gate #include <stdlib.h>
111*7c478bd9Sstevel@tonic-gate #include <thread.h>
112*7c478bd9Sstevel@tonic-gate #include <synch.h>
113*7c478bd9Sstevel@tonic-gate #include <security/cryptoki.h>
114*7c478bd9Sstevel@tonic-gate #endif /* _KERNEL */
115*7c478bd9Sstevel@tonic-gate 
116*7c478bd9Sstevel@tonic-gate 
117*7c478bd9Sstevel@tonic-gate #if (defined(_MSDOS) || defined(_WIN32)) || defined(macintosh)
118*7c478bd9Sstevel@tonic-gate #include <win-mac.h>
119*7c478bd9Sstevel@tonic-gate #endif
120*7c478bd9Sstevel@tonic-gate 
121*7c478bd9Sstevel@tonic-gate #ifndef KRB5_CONFIG__
122*7c478bd9Sstevel@tonic-gate #ifndef KRB5_CALLCONV
123*7c478bd9Sstevel@tonic-gate #define KRB5_CALLCONV
124*7c478bd9Sstevel@tonic-gate #define KRB5_CALLCONV_C
125*7c478bd9Sstevel@tonic-gate #define KRB5_DLLIMP
126*7c478bd9Sstevel@tonic-gate #define GSS_DLLIMP
127*7c478bd9Sstevel@tonic-gate #define KRB5_EXPORTVAR
128*7c478bd9Sstevel@tonic-gate #define NEAR
129*7c478bd9Sstevel@tonic-gate #define	FAR
130*7c478bd9Sstevel@tonic-gate #endif /* !KRB5_CALLCONV */
131*7c478bd9Sstevel@tonic-gate #endif /* !KRB5_CONFIG__ */
132*7c478bd9Sstevel@tonic-gate 
133*7c478bd9Sstevel@tonic-gate #include <sys/types.h>
134*7c478bd9Sstevel@tonic-gate #include <sys/socket.h>
135*7c478bd9Sstevel@tonic-gate 
136*7c478bd9Sstevel@tonic-gate #ifndef THREEPARAMOPEN
137*7c478bd9Sstevel@tonic-gate #define THREEPARAMOPEN(x,y,z) open(x,y,z)
138*7c478bd9Sstevel@tonic-gate #endif
139*7c478bd9Sstevel@tonic-gate 
140*7c478bd9Sstevel@tonic-gate /*
141*7c478bd9Sstevel@tonic-gate  * Solaris Kerberos:
142*7c478bd9Sstevel@tonic-gate  *   KRB5_OLD_CRYPTO is not needed or supported anymore.
143*7c478bd9Sstevel@tonic-gate  */
144*7c478bd9Sstevel@tonic-gate /* #define KRB5_OLD_CRYPTO */
145*7c478bd9Sstevel@tonic-gate 
146*7c478bd9Sstevel@tonic-gate /*
147*7c478bd9Sstevel@tonic-gate  * begin "error_def.h"
148*7c478bd9Sstevel@tonic-gate  */
149*7c478bd9Sstevel@tonic-gate 
150*7c478bd9Sstevel@tonic-gate #ifdef	_KERNEL
151*7c478bd9Sstevel@tonic-gate #include <sys/errno.h>
152*7c478bd9Sstevel@tonic-gate #else
153*7c478bd9Sstevel@tonic-gate #include <errno.h>
154*7c478bd9Sstevel@tonic-gate #include <profile.h>
155*7c478bd9Sstevel@tonic-gate #endif /* _KERNEL */
156*7c478bd9Sstevel@tonic-gate 
157*7c478bd9Sstevel@tonic-gate /*
158*7c478bd9Sstevel@tonic-gate  * end "error_def.h"
159*7c478bd9Sstevel@tonic-gate  */
160*7c478bd9Sstevel@tonic-gate 
161*7c478bd9Sstevel@tonic-gate #ifdef __cplusplus
162*7c478bd9Sstevel@tonic-gate extern "C" {
163*7c478bd9Sstevel@tonic-gate #endif
164*7c478bd9Sstevel@tonic-gate 
165*7c478bd9Sstevel@tonic-gate /*
166*7c478bd9Sstevel@tonic-gate  * begin wordsize.h
167*7c478bd9Sstevel@tonic-gate  */
168*7c478bd9Sstevel@tonic-gate 
169*7c478bd9Sstevel@tonic-gate /*
170*7c478bd9Sstevel@tonic-gate  * Word-size related definition.
171*7c478bd9Sstevel@tonic-gate  */
172*7c478bd9Sstevel@tonic-gate 
173*7c478bd9Sstevel@tonic-gate typedef	unsigned char	krb5_octet;
174*7c478bd9Sstevel@tonic-gate typedef	unsigned char	krb5_ui_1;
175*7c478bd9Sstevel@tonic-gate 
176*7c478bd9Sstevel@tonic-gate #if (SIZEOF_INT == 2)
177*7c478bd9Sstevel@tonic-gate typedef	int	krb5_int16;
178*7c478bd9Sstevel@tonic-gate typedef	unsigned int	krb5_ui_2;
179*7c478bd9Sstevel@tonic-gate #define VALID_INT_BITS    0x7fff
180*7c478bd9Sstevel@tonic-gate #define VALID_UINT_BITS   0xffff
181*7c478bd9Sstevel@tonic-gate #elif (SIZEOF_SHORT == 2)
182*7c478bd9Sstevel@tonic-gate typedef	short	krb5_int16;
183*7c478bd9Sstevel@tonic-gate typedef	unsigned short	krb5_ui_2;
184*7c478bd9Sstevel@tonic-gate #else
185*7c478bd9Sstevel@tonic-gate   ?==error: undefined 16 bit type
186*7c478bd9Sstevel@tonic-gate #endif
187*7c478bd9Sstevel@tonic-gate 
188*7c478bd9Sstevel@tonic-gate #if (SIZEOF_INT == 4)
189*7c478bd9Sstevel@tonic-gate typedef	int		krb5_int32;
190*7c478bd9Sstevel@tonic-gate typedef	unsigned int	krb5_ui_4;
191*7c478bd9Sstevel@tonic-gate #define VALID_INT_BITS    0x7fffffff
192*7c478bd9Sstevel@tonic-gate #define VALID_UINT_BITS   0xffffffff
193*7c478bd9Sstevel@tonic-gate #elif (SIZEOF_LONG == 4)
194*7c478bd9Sstevel@tonic-gate typedef	long	krb5_int32;
195*7c478bd9Sstevel@tonic-gate typedef	unsigned long	krb5_ui_4;
196*7c478bd9Sstevel@tonic-gate #elif (SIZEOF_SHORT == 4)
197*7c478bd9Sstevel@tonic-gate typedef	short	krb5_int32;
198*7c478bd9Sstevel@tonic-gate typedef	unsigned short	krb5_ui_4;
199*7c478bd9Sstevel@tonic-gate #else
200*7c478bd9Sstevel@tonic-gate  ?== error: undefined 32 bit type
201*7c478bd9Sstevel@tonic-gate #endif
202*7c478bd9Sstevel@tonic-gate 
203*7c478bd9Sstevel@tonic-gate #define KRB5_INT32_MAX	2147483647
204*7c478bd9Sstevel@tonic-gate /* this strange form is necessary since - is a unary operator, not a sign
205*7c478bd9Sstevel@tonic-gate    indicator */
206*7c478bd9Sstevel@tonic-gate #define KRB5_INT32_MIN	(-KRB5_INT32_MAX-1)
207*7c478bd9Sstevel@tonic-gate 
208*7c478bd9Sstevel@tonic-gate #define KRB5_INT16_MAX 65535
209*7c478bd9Sstevel@tonic-gate /* this strange form is necessary since - is a unary operator, not a sign
210*7c478bd9Sstevel@tonic-gate    indicator */
211*7c478bd9Sstevel@tonic-gate #define KRB5_INT16_MIN	(-KRB5_INT16_MAX-1)
212*7c478bd9Sstevel@tonic-gate 
213*7c478bd9Sstevel@tonic-gate /*
214*7c478bd9Sstevel@tonic-gate  * end wordsize.h
215*7c478bd9Sstevel@tonic-gate  */
216*7c478bd9Sstevel@tonic-gate 
217*7c478bd9Sstevel@tonic-gate /*
218*7c478bd9Sstevel@tonic-gate  * begin "base-defs.h"
219*7c478bd9Sstevel@tonic-gate  */
220*7c478bd9Sstevel@tonic-gate 
221*7c478bd9Sstevel@tonic-gate /*
222*7c478bd9Sstevel@tonic-gate  * Basic definitions for Kerberos V5 library
223*7c478bd9Sstevel@tonic-gate  */
224*7c478bd9Sstevel@tonic-gate 
225*7c478bd9Sstevel@tonic-gate #ifndef FALSE
226*7c478bd9Sstevel@tonic-gate #define	FALSE	0
227*7c478bd9Sstevel@tonic-gate #endif
228*7c478bd9Sstevel@tonic-gate #ifndef TRUE
229*7c478bd9Sstevel@tonic-gate #define	TRUE	1
230*7c478bd9Sstevel@tonic-gate #endif
231*7c478bd9Sstevel@tonic-gate 
232*7c478bd9Sstevel@tonic-gate typedef	unsigned int krb5_boolean;
233*7c478bd9Sstevel@tonic-gate typedef	unsigned int krb5_msgtype;
234*7c478bd9Sstevel@tonic-gate typedef	unsigned int krb5_kvno;
235*7c478bd9Sstevel@tonic-gate 
236*7c478bd9Sstevel@tonic-gate typedef	krb5_int32	krb5_addrtype;
237*7c478bd9Sstevel@tonic-gate typedef krb5_int32	krb5_enctype;
238*7c478bd9Sstevel@tonic-gate typedef krb5_int32	krb5_cksumtype;
239*7c478bd9Sstevel@tonic-gate typedef krb5_int32	krb5_authdatatype;
240*7c478bd9Sstevel@tonic-gate typedef krb5_int32	krb5_keyusage;
241*7c478bd9Sstevel@tonic-gate 
242*7c478bd9Sstevel@tonic-gate typedef krb5_int32	krb5_preauthtype; /* This may change, later on */
243*7c478bd9Sstevel@tonic-gate typedef	krb5_int32	krb5_flags;
244*7c478bd9Sstevel@tonic-gate typedef krb5_int32	krb5_timestamp;
245*7c478bd9Sstevel@tonic-gate typedef	krb5_int32	krb5_error_code;
246*7c478bd9Sstevel@tonic-gate typedef krb5_int32	krb5_deltat;
247*7c478bd9Sstevel@tonic-gate 
248*7c478bd9Sstevel@tonic-gate typedef krb5_error_code	krb5_magic;
249*7c478bd9Sstevel@tonic-gate 
250*7c478bd9Sstevel@tonic-gate typedef struct _krb5_data {
251*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
252*7c478bd9Sstevel@tonic-gate     unsigned int length;
253*7c478bd9Sstevel@tonic-gate     char *data;
254*7c478bd9Sstevel@tonic-gate } krb5_data;
255*7c478bd9Sstevel@tonic-gate 
256*7c478bd9Sstevel@tonic-gate #define SALT_TYPE_NO_LENGTH  (4294967295U)
257*7c478bd9Sstevel@tonic-gate 
258*7c478bd9Sstevel@tonic-gate /* Define krb5_const as necessary */
259*7c478bd9Sstevel@tonic-gate 
260*7c478bd9Sstevel@tonic-gate /*
261*7c478bd9Sstevel@tonic-gate  * Hardcoded scrudge to deal with Ultrix; see note on NPROTOTYPE below
262*7c478bd9Sstevel@tonic-gate  */
263*7c478bd9Sstevel@tonic-gate 
264*7c478bd9Sstevel@tonic-gate #if defined(KRB5_NO_CONST) || (defined(__ultrix) && !defined(__GNUC__))
265*7c478bd9Sstevel@tonic-gate #define krb5_const
266*7c478bd9Sstevel@tonic-gate #else
267*7c478bd9Sstevel@tonic-gate #define krb5_const const
268*7c478bd9Sstevel@tonic-gate #endif
269*7c478bd9Sstevel@tonic-gate 
270*7c478bd9Sstevel@tonic-gate #if defined(__STDC__) || defined(__cplusplus) || defined(HAS_VOID_TYPE)
271*7c478bd9Sstevel@tonic-gate typedef	void * krb5_pointer;
272*7c478bd9Sstevel@tonic-gate typedef void krb5_const * krb5_const_pointer;
273*7c478bd9Sstevel@tonic-gate #else
274*7c478bd9Sstevel@tonic-gate typedef char * krb5_pointer;
275*7c478bd9Sstevel@tonic-gate typedef char krb5_const * krb5_const_pointer;
276*7c478bd9Sstevel@tonic-gate #endif
277*7c478bd9Sstevel@tonic-gate 
278*7c478bd9Sstevel@tonic-gate #if (defined(__STDC__) || defined(__cplusplus) || defined(_MSDOS) || defined(_WIN32) || defined(KRB5_PROVIDE_PROTOTYPES)) && !defined(KRB5_NO_PROTOTYPES)
279*7c478bd9Sstevel@tonic-gate #define KRB5_PROTOTYPE(x) x
280*7c478bd9Sstevel@tonic-gate #if defined(__STDC__) || defined(__cplusplus) || defined(HAVE_STDARG_H) || defined(_MSDOS) || defined(_WIN32)
281*7c478bd9Sstevel@tonic-gate #define	KRB5_STDARG_P(x) x
282*7c478bd9Sstevel@tonic-gate #else
283*7c478bd9Sstevel@tonic-gate #define KRB5_STDARG_P(x) ()
284*7c478bd9Sstevel@tonic-gate #endif /* defined(__STDC__) || defined(__cplusplus) || defined(HAVE_STDARG_H) */
285*7c478bd9Sstevel@tonic-gate #else
286*7c478bd9Sstevel@tonic-gate #define KRB5_PROTOTYPE(x) ()
287*7c478bd9Sstevel@tonic-gate #define KRB5_STDARG_P(x) ()
288*7c478bd9Sstevel@tonic-gate #endif /* STDC or PROTOTYPES */
289*7c478bd9Sstevel@tonic-gate 
290*7c478bd9Sstevel@tonic-gate /*
291*7c478bd9Sstevel@tonic-gate  * This gross compiler dependency is in here because the stock Ultrix
292*7c478bd9Sstevel@tonic-gate  * compiler defines __STDC__ but doesn't deal with nested prototypes
293*7c478bd9Sstevel@tonic-gate  * properly.  The reason this isn't tested for is so that this header
294*7c478bd9Sstevel@tonic-gate  * is actually useful when installed.
295*7c478bd9Sstevel@tonic-gate  */
296*7c478bd9Sstevel@tonic-gate #if defined(KRB5_NO_NESTED_PROTOTYPES) || (defined(__ultrix) && !defined(__GNUC__))
297*7c478bd9Sstevel@tonic-gate #define	KRB5_NPROTOTYPE(x) ()
298*7c478bd9Sstevel@tonic-gate #else
299*7c478bd9Sstevel@tonic-gate #define	KRB5_NPROTOTYPE(x) KRB5_PROTOTYPE(x)
300*7c478bd9Sstevel@tonic-gate #endif
301*7c478bd9Sstevel@tonic-gate 
302*7c478bd9Sstevel@tonic-gate typedef struct krb5_principal_data {
303*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
304*7c478bd9Sstevel@tonic-gate     krb5_data realm;
305*7c478bd9Sstevel@tonic-gate     krb5_data *data;		/* An array of strings */
306*7c478bd9Sstevel@tonic-gate     krb5_int32 length;
307*7c478bd9Sstevel@tonic-gate     krb5_int32 type;
308*7c478bd9Sstevel@tonic-gate } krb5_principal_data;
309*7c478bd9Sstevel@tonic-gate 
310*7c478bd9Sstevel@tonic-gate typedef	krb5_principal_data * krb5_principal;
311*7c478bd9Sstevel@tonic-gate 
312*7c478bd9Sstevel@tonic-gate /*
313*7c478bd9Sstevel@tonic-gate  * Per V5 spec on definition of principal types
314*7c478bd9Sstevel@tonic-gate  */
315*7c478bd9Sstevel@tonic-gate 
316*7c478bd9Sstevel@tonic-gate /* Name type not known */
317*7c478bd9Sstevel@tonic-gate #define KRB5_NT_UNKNOWN		0
318*7c478bd9Sstevel@tonic-gate /* Just the name of the principal as in DCE, or for users */
319*7c478bd9Sstevel@tonic-gate #define KRB5_NT_PRINCIPAL	1
320*7c478bd9Sstevel@tonic-gate /* Service and other unique instance (krbtgt) */
321*7c478bd9Sstevel@tonic-gate #define KRB5_NT_SRV_INST	2
322*7c478bd9Sstevel@tonic-gate /* Service with host name as instance (telnet, rcommands) */
323*7c478bd9Sstevel@tonic-gate #define KRB5_NT_SRV_HST		3
324*7c478bd9Sstevel@tonic-gate /* Service with host as remaining components */
325*7c478bd9Sstevel@tonic-gate #define KRB5_NT_SRV_XHST	4
326*7c478bd9Sstevel@tonic-gate /* Unique ID */
327*7c478bd9Sstevel@tonic-gate #define KRB5_NT_UID		5
328*7c478bd9Sstevel@tonic-gate 
329*7c478bd9Sstevel@tonic-gate /* constant version thereof: */
330*7c478bd9Sstevel@tonic-gate typedef krb5_const krb5_principal_data *krb5_const_principal;
331*7c478bd9Sstevel@tonic-gate 
332*7c478bd9Sstevel@tonic-gate #define krb5_princ_realm(context, princ) (&(princ)->realm)
333*7c478bd9Sstevel@tonic-gate #define krb5_princ_set_realm(context, princ,value) ((princ)->realm = *(value))
334*7c478bd9Sstevel@tonic-gate #define krb5_princ_set_realm_length(context, princ,value) (princ)->realm.length = (value)
335*7c478bd9Sstevel@tonic-gate #define krb5_princ_set_realm_data(context, princ,value) (princ)->realm.data = (value)
336*7c478bd9Sstevel@tonic-gate #define	krb5_princ_size(context, princ) (princ)->length
337*7c478bd9Sstevel@tonic-gate #define	krb5_princ_type(context, princ) (princ)->type
338*7c478bd9Sstevel@tonic-gate #define	krb5_princ_name(context, princ) (princ)->data
339*7c478bd9Sstevel@tonic-gate #define	krb5_princ_component(context, princ, i) \
340*7c478bd9Sstevel@tonic-gate 	(i < krb5_princ_size(context, princ) ? ((princ)->data + i) : NULL)
341*7c478bd9Sstevel@tonic-gate 
342*7c478bd9Sstevel@tonic-gate /*
343*7c478bd9Sstevel@tonic-gate  * end "base-defs.h"
344*7c478bd9Sstevel@tonic-gate  */
345*7c478bd9Sstevel@tonic-gate 
346*7c478bd9Sstevel@tonic-gate /*
347*7c478bd9Sstevel@tonic-gate  * begin "hostaddr.h"
348*7c478bd9Sstevel@tonic-gate  */
349*7c478bd9Sstevel@tonic-gate 
350*7c478bd9Sstevel@tonic-gate /* structure for address */
351*7c478bd9Sstevel@tonic-gate typedef struct _krb5_address {
352*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
353*7c478bd9Sstevel@tonic-gate     krb5_addrtype addrtype;
354*7c478bd9Sstevel@tonic-gate     unsigned int length;
355*7c478bd9Sstevel@tonic-gate     krb5_octet *contents;
356*7c478bd9Sstevel@tonic-gate } krb5_address;
357*7c478bd9Sstevel@tonic-gate 
358*7c478bd9Sstevel@tonic-gate /* per Kerberos v5 protocol spec */
359*7c478bd9Sstevel@tonic-gate #define	ADDRTYPE_INET		0x0002
360*7c478bd9Sstevel@tonic-gate #define	ADDRTYPE_CHAOS		0x0005
361*7c478bd9Sstevel@tonic-gate #define	ADDRTYPE_XNS		0x0006
362*7c478bd9Sstevel@tonic-gate #define	ADDRTYPE_ISO		0x0007
363*7c478bd9Sstevel@tonic-gate #define	ADDRTYPE_DDP		0x0010
364*7c478bd9Sstevel@tonic-gate #define	ADDRTYPE_INET6		0x0018
365*7c478bd9Sstevel@tonic-gate /* not yet in the spec... */
366*7c478bd9Sstevel@tonic-gate #define	ADDRTYPE_ADDRPORT	0x0100
367*7c478bd9Sstevel@tonic-gate #define	ADDRTYPE_IPPORT		0x0101
368*7c478bd9Sstevel@tonic-gate 
369*7c478bd9Sstevel@tonic-gate /* macros to determine if a type is a local type */
370*7c478bd9Sstevel@tonic-gate #define ADDRTYPE_IS_LOCAL(addrtype) (addrtype & 0x8000)
371*7c478bd9Sstevel@tonic-gate 
372*7c478bd9Sstevel@tonic-gate /*
373*7c478bd9Sstevel@tonic-gate  * end "hostaddr.h"
374*7c478bd9Sstevel@tonic-gate  */
375*7c478bd9Sstevel@tonic-gate 
376*7c478bd9Sstevel@tonic-gate 
377*7c478bd9Sstevel@tonic-gate struct _krb5_context;
378*7c478bd9Sstevel@tonic-gate typedef struct _krb5_context * krb5_context;
379*7c478bd9Sstevel@tonic-gate 
380*7c478bd9Sstevel@tonic-gate struct _krb5_auth_context;
381*7c478bd9Sstevel@tonic-gate typedef struct _krb5_auth_context * krb5_auth_context;
382*7c478bd9Sstevel@tonic-gate 
383*7c478bd9Sstevel@tonic-gate struct _krb5_cryptosystem_entry;
384*7c478bd9Sstevel@tonic-gate 
385*7c478bd9Sstevel@tonic-gate struct _krb5_keyblock;
386*7c478bd9Sstevel@tonic-gate 
387*7c478bd9Sstevel@tonic-gate /*
388*7c478bd9Sstevel@tonic-gate  * keyblocks will contain a list of derived keys,
389*7c478bd9Sstevel@tonic-gate  * this  structure will contain the derived key data.
390*7c478bd9Sstevel@tonic-gate  */
391*7c478bd9Sstevel@tonic-gate typedef struct _dk_node {
392*7c478bd9Sstevel@tonic-gate     krb5_keyusage   usage;
393*7c478bd9Sstevel@tonic-gate     struct _krb5_keyblock   *derived_key;
394*7c478bd9Sstevel@tonic-gate     uchar_t         dkid; /* derived key identifier byte */
395*7c478bd9Sstevel@tonic-gate     struct _dk_node *next;
396*7c478bd9Sstevel@tonic-gate } krb5_dk_node;
397*7c478bd9Sstevel@tonic-gate 
398*7c478bd9Sstevel@tonic-gate /*
399*7c478bd9Sstevel@tonic-gate  * begin "encryption.h"
400*7c478bd9Sstevel@tonic-gate  */
401*7c478bd9Sstevel@tonic-gate typedef struct _krb5_keyblock {
402*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
403*7c478bd9Sstevel@tonic-gate     krb5_enctype enctype;
404*7c478bd9Sstevel@tonic-gate     unsigned int length;
405*7c478bd9Sstevel@tonic-gate     krb5_octet *contents;
406*7c478bd9Sstevel@tonic-gate     krb5_dk_node   *dk_list; /* list of keys derived from this key */
407*7c478bd9Sstevel@tonic-gate #ifdef _KERNEL
408*7c478bd9Sstevel@tonic-gate     crypto_mech_type_t     kef_mt;
409*7c478bd9Sstevel@tonic-gate     crypto_key_t           kef_key;
410*7c478bd9Sstevel@tonic-gate     crypto_ctx_template_t  key_tmpl;
411*7c478bd9Sstevel@tonic-gate #else
412*7c478bd9Sstevel@tonic-gate     CK_OBJECT_HANDLE       hKey; /* PKCS#11 key object handle */
413*7c478bd9Sstevel@tonic-gate     pid_t	pid; /* fork safety */
414*7c478bd9Sstevel@tonic-gate #endif /* _KERNEL */
415*7c478bd9Sstevel@tonic-gate } krb5_keyblock;
416*7c478bd9Sstevel@tonic-gate 
417*7c478bd9Sstevel@tonic-gate typedef struct _krb5_checksum {
418*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
419*7c478bd9Sstevel@tonic-gate     krb5_cksumtype checksum_type;	/* checksum type */
420*7c478bd9Sstevel@tonic-gate     unsigned int length;
421*7c478bd9Sstevel@tonic-gate     krb5_octet *contents;
422*7c478bd9Sstevel@tonic-gate } krb5_checksum;
423*7c478bd9Sstevel@tonic-gate 
424*7c478bd9Sstevel@tonic-gate typedef struct _krb5_encrypt_block {
425*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
426*7c478bd9Sstevel@tonic-gate     krb5_enctype crypto_entry;		/* to call krb5_encrypt_size, you need
427*7c478bd9Sstevel@tonic-gate 					   this.  it was a pointer, but it
428*7c478bd9Sstevel@tonic-gate 					   doesn't have to be.  gross. */
429*7c478bd9Sstevel@tonic-gate     krb5_keyblock *key;
430*7c478bd9Sstevel@tonic-gate } krb5_encrypt_block;
431*7c478bd9Sstevel@tonic-gate 
432*7c478bd9Sstevel@tonic-gate typedef struct _krb5_enc_data {
433*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
434*7c478bd9Sstevel@tonic-gate     krb5_enctype enctype;
435*7c478bd9Sstevel@tonic-gate     krb5_kvno kvno;
436*7c478bd9Sstevel@tonic-gate     krb5_data ciphertext;
437*7c478bd9Sstevel@tonic-gate } krb5_enc_data;
438*7c478bd9Sstevel@tonic-gate 
439*7c478bd9Sstevel@tonic-gate /* per Kerberos v5 protocol spec */
440*7c478bd9Sstevel@tonic-gate #define	ENCTYPE_NULL		0x0000
441*7c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES_CBC_CRC	0x0001	/* DES cbc mode with CRC-32 */
442*7c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES_CBC_MD4	0x0002	/* DES cbc mode with RSA-MD4 */
443*7c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES_CBC_MD5	0x0003	/* DES cbc mode with RSA-MD5 */
444*7c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES_CBC_RAW	0x0004  /* DES cbc mode raw */
445*7c478bd9Sstevel@tonic-gate /* XXX deprecated? */
446*7c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES3_CBC_SHA	0x0005	/* DES-3 cbc mode with NIST-SHA */
447*7c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES3_CBC_RAW	0x0006	/* DES-3 cbc mode raw */
448*7c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES_HMAC_SHA1	0x0008
449*7c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES3_CBC_SHA1	0x0010
450*7c478bd9Sstevel@tonic-gate #define ENCTYPE_AES128_CTS_HMAC_SHA1_96 0x0011
451*7c478bd9Sstevel@tonic-gate #define ENCTYPE_AES256_CTS_HMAC_SHA1_96 0x0012
452*7c478bd9Sstevel@tonic-gate #define ENCTYPE_ARCFOUR_HMAC	0x0017
453*7c478bd9Sstevel@tonic-gate #define ENCTYPE_ARCFOUR_HMAC_EXP 0x0018
454*7c478bd9Sstevel@tonic-gate 
455*7c478bd9Sstevel@tonic-gate #define	ENCTYPE_UNKNOWN		0x01ff
456*7c478bd9Sstevel@tonic-gate 
457*7c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_CRC32		0x0001
458*7c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_RSA_MD4	0x0002
459*7c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_RSA_MD4_DES	0x0003
460*7c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_DESCBC	0x0004
461*7c478bd9Sstevel@tonic-gate /* des-mac-k */
462*7c478bd9Sstevel@tonic-gate /* rsa-md4-des-k */
463*7c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_RSA_MD5	0x0007
464*7c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_RSA_MD5_DES	0x0008
465*7c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_NIST_SHA	0x0009
466*7c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_HMAC_SHA1_DES3	0x000c
467*7c478bd9Sstevel@tonic-gate #define CKSUMTYPE_HMAC_SHA1_96_AES128	0x000f
468*7c478bd9Sstevel@tonic-gate #define CKSUMTYPE_HMAC_SHA1_96_AES256	0x0010
469*7c478bd9Sstevel@tonic-gate #define CKSUMTYPE_HMAC_MD5_ARCFOUR -138 /*Microsoft md5 hmac cksumtype*/
470*7c478bd9Sstevel@tonic-gate 
471*7c478bd9Sstevel@tonic-gate 
472*7c478bd9Sstevel@tonic-gate #ifndef krb5_roundup
473*7c478bd9Sstevel@tonic-gate /* round x up to nearest multiple of y */
474*7c478bd9Sstevel@tonic-gate #define krb5_roundup(x, y) ((((x) + (y) - 1)/(y))*(y))
475*7c478bd9Sstevel@tonic-gate #endif /* roundup */
476*7c478bd9Sstevel@tonic-gate 
477*7c478bd9Sstevel@tonic-gate /* macro function definitions to help clean up code */
478*7c478bd9Sstevel@tonic-gate 
479*7c478bd9Sstevel@tonic-gate #ifndef _KERNEL
480*7c478bd9Sstevel@tonic-gate #define krb5_x(ptr,args) ((ptr)?((*(ptr)) args):(abort(),1))
481*7c478bd9Sstevel@tonic-gate #define krb5_xc(ptr,args) ((ptr)?((*(ptr)) args):(abort(),(char*)0))
482*7c478bd9Sstevel@tonic-gate #else
483*7c478bd9Sstevel@tonic-gate #define krb5_x(ptr,args) ((*(ptr)) args)
484*7c478bd9Sstevel@tonic-gate #define krb5_xc(ptr,args) ((*(ptr)) args)
485*7c478bd9Sstevel@tonic-gate #endif
486*7c478bd9Sstevel@tonic-gate 
487*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
488*7c478bd9Sstevel@tonic-gate     krb5_c_encrypt
489*7c478bd9Sstevel@tonic-gate     KRB5_PROTOTYPE((krb5_context context,
490*7c478bd9Sstevel@tonic-gate 		    krb5_const krb5_keyblock *key,
491*7c478bd9Sstevel@tonic-gate 		    krb5_keyusage usage, krb5_const krb5_data *ivec,
492*7c478bd9Sstevel@tonic-gate 		    krb5_const krb5_data *input, krb5_enc_data *output));
493*7c478bd9Sstevel@tonic-gate 
494*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
495*7c478bd9Sstevel@tonic-gate     krb5_c_decrypt
496*7c478bd9Sstevel@tonic-gate     KRB5_PROTOTYPE((krb5_context context,
497*7c478bd9Sstevel@tonic-gate 		    krb5_const krb5_keyblock *key,
498*7c478bd9Sstevel@tonic-gate 		    krb5_keyusage usage, krb5_const krb5_data *ivec,
499*7c478bd9Sstevel@tonic-gate 		    krb5_const krb5_enc_data *input, krb5_data *output));
500*7c478bd9Sstevel@tonic-gate 
501*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
502*7c478bd9Sstevel@tonic-gate     krb5_c_encrypt_length
503*7c478bd9Sstevel@tonic-gate     KRB5_PROTOTYPE((krb5_context context, krb5_enctype enctype,
504*7c478bd9Sstevel@tonic-gate 		    size_t inputlen, size_t *length));
505*7c478bd9Sstevel@tonic-gate 
506*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
507*7c478bd9Sstevel@tonic-gate     krb5_c_block_size
508*7c478bd9Sstevel@tonic-gate     KRB5_PROTOTYPE((krb5_context context, krb5_enctype enctype,
509*7c478bd9Sstevel@tonic-gate 		    size_t *blocksize));
510*7c478bd9Sstevel@tonic-gate 
511*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
512*7c478bd9Sstevel@tonic-gate 	krb5_c_init_state(krb5_context,
513*7c478bd9Sstevel@tonic-gate 		const krb5_keyblock *, krb5_keyusage,
514*7c478bd9Sstevel@tonic-gate 		krb5_data *);
515*7c478bd9Sstevel@tonic-gate 
516*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
517*7c478bd9Sstevel@tonic-gate 	krb5_c_free_state(krb5_context,
518*7c478bd9Sstevel@tonic-gate 		const krb5_keyblock *, krb5_data *);
519*7c478bd9Sstevel@tonic-gate 
520*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
521*7c478bd9Sstevel@tonic-gate     krb5_c_make_random_key
522*7c478bd9Sstevel@tonic-gate     KRB5_PROTOTYPE((krb5_context context, krb5_enctype enctype,
523*7c478bd9Sstevel@tonic-gate 		    krb5_keyblock *random_key));
524*7c478bd9Sstevel@tonic-gate 
525*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
526*7c478bd9Sstevel@tonic-gate     krb5_c_random_make_octets
527*7c478bd9Sstevel@tonic-gate     KRB5_PROTOTYPE((krb5_context context, krb5_data *data));
528*7c478bd9Sstevel@tonic-gate 
529*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
530*7c478bd9Sstevel@tonic-gate     krb5_c_random_seed
531*7c478bd9Sstevel@tonic-gate     KRB5_PROTOTYPE((krb5_context context, krb5_data *data));
532*7c478bd9Sstevel@tonic-gate 
533*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
534*7c478bd9Sstevel@tonic-gate     krb5_c_string_to_key
535*7c478bd9Sstevel@tonic-gate     KRB5_PROTOTYPE((krb5_context context, krb5_enctype enctype,
536*7c478bd9Sstevel@tonic-gate 		    krb5_const krb5_data *string, krb5_const krb5_data *salt,
537*7c478bd9Sstevel@tonic-gate 		    krb5_keyblock *key));
538*7c478bd9Sstevel@tonic-gate 
539*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
540*7c478bd9Sstevel@tonic-gate krb5_c_string_to_key_with_params(krb5_context context,
541*7c478bd9Sstevel@tonic-gate                                  krb5_enctype enctype,
542*7c478bd9Sstevel@tonic-gate                                  const krb5_data *string,
543*7c478bd9Sstevel@tonic-gate                                  const krb5_data *salt,
544*7c478bd9Sstevel@tonic-gate                                  const krb5_data *params,
545*7c478bd9Sstevel@tonic-gate                                  krb5_keyblock *key);
546*7c478bd9Sstevel@tonic-gate 
547*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
548*7c478bd9Sstevel@tonic-gate     krb5_c_enctype_compare
549*7c478bd9Sstevel@tonic-gate     KRB5_PROTOTYPE((krb5_context context, krb5_enctype e1, krb5_enctype e2,
550*7c478bd9Sstevel@tonic-gate 		    krb5_boolean *similar));
551*7c478bd9Sstevel@tonic-gate 
552*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
553*7c478bd9Sstevel@tonic-gate     krb5_c_make_checksum
554*7c478bd9Sstevel@tonic-gate     KRB5_PROTOTYPE((krb5_context context, krb5_cksumtype cksumtype,
555*7c478bd9Sstevel@tonic-gate 		    krb5_const krb5_keyblock *key, krb5_keyusage usage,
556*7c478bd9Sstevel@tonic-gate 		    krb5_const krb5_data *input, krb5_checksum *cksum));
557*7c478bd9Sstevel@tonic-gate 
558*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
559*7c478bd9Sstevel@tonic-gate     krb5_c_verify_checksum
560*7c478bd9Sstevel@tonic-gate     KRB5_PROTOTYPE((krb5_context context,
561*7c478bd9Sstevel@tonic-gate 		    krb5_const krb5_keyblock *key, krb5_keyusage usage,
562*7c478bd9Sstevel@tonic-gate 		    krb5_const krb5_data *data,
563*7c478bd9Sstevel@tonic-gate 		    krb5_const krb5_checksum *cksum,
564*7c478bd9Sstevel@tonic-gate 		    krb5_boolean *valid));
565*7c478bd9Sstevel@tonic-gate 
566*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
567*7c478bd9Sstevel@tonic-gate     krb5_c_checksum_length
568*7c478bd9Sstevel@tonic-gate     KRB5_PROTOTYPE((krb5_context context, krb5_cksumtype cksumtype,
569*7c478bd9Sstevel@tonic-gate 		    size_t *length));
570*7c478bd9Sstevel@tonic-gate 
571*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
572*7c478bd9Sstevel@tonic-gate     krb5_c_keyed_checksum_types
573*7c478bd9Sstevel@tonic-gate     KRB5_PROTOTYPE((krb5_context context, krb5_enctype enctype,
574*7c478bd9Sstevel@tonic-gate 		    unsigned int *count, krb5_cksumtype **cksumtypes));
575*7c478bd9Sstevel@tonic-gate 
576*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AS_REQ_PA_ENC_TS		1
577*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_KDC_REP_TICKET		2
578*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AS_REP_ENCPART		3
579*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_TGS_REQ_AD_SESSKEY	4
580*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_TGS_REQ_AD_SUBKEY		5
581*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_TGS_REQ_AUTH_CKSUM	6
582*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_TGS_REQ_AUTH		7
583*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_TGS_REP_ENCPART_SESSKEY	8
584*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_TGS_REP_ENCPART_SUBKEY	9
585*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AP_REQ_AUTH_CKSUM		10
586*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AP_REQ_AUTH		11
587*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AP_REP_ENCPART		12
588*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_KRB_PRIV_ENCPART		13
589*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_KRB_CRED_ENCPART		14
590*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_KRB_SAFE_CKSUM		15
591*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_APP_DATA_ENCRYPT		16
592*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_APP_DATA_CKSUM		17
593*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_KRB_ERROR_CKSUM		18
594*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AD_KDCISSUED_CKSUM	19
595*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AD_MTE			20
596*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AD_ITE			21
597*7c478bd9Sstevel@tonic-gate 
598*7c478bd9Sstevel@tonic-gate /* XXX need to register these */
599*7c478bd9Sstevel@tonic-gate 
600*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_GSS_TOK_MIC		22
601*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_GSS_TOK_WRAP_INTEG	23
602*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_GSS_TOK_WRAP_PRIV		24
603*7c478bd9Sstevel@tonic-gate 
604*7c478bd9Sstevel@tonic-gate /* Defined in hardware preauth draft */
605*7c478bd9Sstevel@tonic-gate 
606*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_PA_SAM_CHALLENGE_CKSUM	25
607*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID	26
608*7c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_PA_SAM_RESPONSE		27
609*7c478bd9Sstevel@tonic-gate 
610*7c478bd9Sstevel@tonic-gate 
611*7c478bd9Sstevel@tonic-gate krb5_boolean KRB5_CALLCONV krb5_c_valid_enctype
612*7c478bd9Sstevel@tonic-gate 	(krb5_enctype ktype);
613*7c478bd9Sstevel@tonic-gate 
614*7c478bd9Sstevel@tonic-gate #define valid_enctype(k) krb5_c_valid_enctype(k)
615*7c478bd9Sstevel@tonic-gate 
616*7c478bd9Sstevel@tonic-gate krb5_boolean KRB5_CALLCONV krb5_c_valid_cksumtype
617*7c478bd9Sstevel@tonic-gate 	(krb5_cksumtype ctype);
618*7c478bd9Sstevel@tonic-gate 
619*7c478bd9Sstevel@tonic-gate #define valid_cksumtype(c) krb5_c_valid_cksumtype(c)
620*7c478bd9Sstevel@tonic-gate 
621*7c478bd9Sstevel@tonic-gate krb5_boolean KRB5_CALLCONV krb5_c_is_coll_proof_cksum
622*7c478bd9Sstevel@tonic-gate 	(krb5_const krb5_cksumtype ctype);
623*7c478bd9Sstevel@tonic-gate 
624*7c478bd9Sstevel@tonic-gate #define is_coll_proof_cksum(c) krb5_c_is_coll_proof_cksum(c)
625*7c478bd9Sstevel@tonic-gate 
626*7c478bd9Sstevel@tonic-gate krb5_boolean KRB5_CALLCONV krb5_c_is_keyed_cksum
627*7c478bd9Sstevel@tonic-gate 	(krb5_const krb5_cksumtype ctype);
628*7c478bd9Sstevel@tonic-gate 
629*7c478bd9Sstevel@tonic-gate #define	is_keyed_cksum(c) krb5_c_is_keyed_cksum(c)
630*7c478bd9Sstevel@tonic-gate 
631*7c478bd9Sstevel@tonic-gate krb5_boolean KRB5_CALLCONV is_in_keytype
632*7c478bd9Sstevel@tonic-gate 	(krb5_const krb5_enctype *keytype,
633*7c478bd9Sstevel@tonic-gate         int numkeytypes, krb5_enctype enctype);
634*7c478bd9Sstevel@tonic-gate 
635*7c478bd9Sstevel@tonic-gate /*
636*7c478bd9Sstevel@tonic-gate  * end "encryption.h"
637*7c478bd9Sstevel@tonic-gate  */
638*7c478bd9Sstevel@tonic-gate 
639*7c478bd9Sstevel@tonic-gate /*
640*7c478bd9Sstevel@tonic-gate  * begin "fieldbits.h"
641*7c478bd9Sstevel@tonic-gate  */
642*7c478bd9Sstevel@tonic-gate 
643*7c478bd9Sstevel@tonic-gate /* kdc_options for kdc_request */
644*7c478bd9Sstevel@tonic-gate /* options is 32 bits; each host is responsible to put the 4 bytes
645*7c478bd9Sstevel@tonic-gate    representing these bits into net order before transmission */
646*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x80000000 */
647*7c478bd9Sstevel@tonic-gate #define	KDC_OPT_FORWARDABLE		0x40000000
648*7c478bd9Sstevel@tonic-gate #define	KDC_OPT_FORWARDED		0x20000000
649*7c478bd9Sstevel@tonic-gate #define	KDC_OPT_PROXIABLE		0x10000000
650*7c478bd9Sstevel@tonic-gate #define	KDC_OPT_PROXY			0x08000000
651*7c478bd9Sstevel@tonic-gate #define	KDC_OPT_ALLOW_POSTDATE		0x04000000
652*7c478bd9Sstevel@tonic-gate #define	KDC_OPT_POSTDATED		0x02000000
653*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_UNUSED		0x01000000 */
654*7c478bd9Sstevel@tonic-gate #define	KDC_OPT_RENEWABLE		0x00800000
655*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_UNUSED		0x00400000 */
656*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00200000 */
657*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00100000 */
658*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00080000 */
659*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00040000 */
660*7c478bd9Sstevel@tonic-gate #define	KDC_OPT_REQUEST_ANONYMOUS	0x00020000
661*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00010000 */
662*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00008000 */
663*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00004000 */
664*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00002000 */
665*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00001000 */
666*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00000800 */
667*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00000400 */
668*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00000200 */
669*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00000100 */
670*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00000080 */
671*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00000040 */
672*7c478bd9Sstevel@tonic-gate #define	KDC_OPT_DISABLE_TRANSITED_CHECK 0x00000020
673*7c478bd9Sstevel@tonic-gate #define	KDC_OPT_RENEWABLE_OK		0x00000010
674*7c478bd9Sstevel@tonic-gate #define	KDC_OPT_ENC_TKT_IN_SKEY		0x00000008
675*7c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_UNUSED		0x00000004 */
676*7c478bd9Sstevel@tonic-gate #define	KDC_OPT_RENEW			0x00000002
677*7c478bd9Sstevel@tonic-gate #define	KDC_OPT_VALIDATE		0x00000001
678*7c478bd9Sstevel@tonic-gate 
679*7c478bd9Sstevel@tonic-gate /*
680*7c478bd9Sstevel@tonic-gate  * Mask of ticket flags in the TGT which should be converted into KDC
681*7c478bd9Sstevel@tonic-gate  * options when using the TGT to get derivitive tickets.
682*7c478bd9Sstevel@tonic-gate  *
683*7c478bd9Sstevel@tonic-gate  *  New mask = KDC_OPT_FORWARDABLE | KDC_OPT_PROXIABLE |
684*7c478bd9Sstevel@tonic-gate  *             KDC_OPT_ALLOW_POSTDATE | KDC_OPT_RENEWABLE
685*7c478bd9Sstevel@tonic-gate  */
686*7c478bd9Sstevel@tonic-gate #define KDC_TKT_COMMON_MASK		0x54800000
687*7c478bd9Sstevel@tonic-gate 
688*7c478bd9Sstevel@tonic-gate /* definitions for ap_options fields */
689*7c478bd9Sstevel@tonic-gate /* ap_options are 32 bits; each host is responsible to put the 4 bytes
690*7c478bd9Sstevel@tonic-gate    representing these bits into net order before transmission */
691*7c478bd9Sstevel@tonic-gate #define	AP_OPTS_RESERVED		0x80000000
692*7c478bd9Sstevel@tonic-gate #define	AP_OPTS_USE_SESSION_KEY		0x40000000
693*7c478bd9Sstevel@tonic-gate #define	AP_OPTS_MUTUAL_REQUIRED		0x20000000
694*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x10000000 */
695*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x08000000 */
696*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x04000000 */
697*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x02000000 */
698*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x01000000 */
699*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00800000 */
700*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00400000 */
701*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00200000 */
702*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00100000 */
703*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00080000 */
704*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00040000 */
705*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00020000 */
706*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00010000 */
707*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00008000 */
708*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00004000 */
709*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00002000 */
710*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00001000 */
711*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000800 */
712*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000400 */
713*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000200 */
714*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000100 */
715*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000080 */
716*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000040 */
717*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000020 */
718*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000010 */
719*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000008 */
720*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000004 */
721*7c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000002 */
722*7c478bd9Sstevel@tonic-gate #define AP_OPTS_USE_SUBKEY      0x00000001
723*7c478bd9Sstevel@tonic-gate 
724*7c478bd9Sstevel@tonic-gate #define AP_OPTS_WIRE_MASK	0xfffffff0
725*7c478bd9Sstevel@tonic-gate 
726*7c478bd9Sstevel@tonic-gate /* definitions for ad_type fields. */
727*7c478bd9Sstevel@tonic-gate #define	AD_TYPE_RESERVED	0x8000
728*7c478bd9Sstevel@tonic-gate #define	AD_TYPE_EXTERNAL	0x4000
729*7c478bd9Sstevel@tonic-gate #define	AD_TYPE_REGISTERED	0x2000
730*7c478bd9Sstevel@tonic-gate 
731*7c478bd9Sstevel@tonic-gate #define AD_TYPE_FIELD_TYPE_MASK	0x1fff
732*7c478bd9Sstevel@tonic-gate 
733*7c478bd9Sstevel@tonic-gate /* Ticket flags */
734*7c478bd9Sstevel@tonic-gate /* flags are 32 bits; each host is responsible to put the 4 bytes
735*7c478bd9Sstevel@tonic-gate    representing these bits into net order before transmission */
736*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x80000000 */
737*7c478bd9Sstevel@tonic-gate #define	TKT_FLG_FORWARDABLE		0x40000000
738*7c478bd9Sstevel@tonic-gate #define	TKT_FLG_FORWARDED		0x20000000
739*7c478bd9Sstevel@tonic-gate #define	TKT_FLG_PROXIABLE		0x10000000
740*7c478bd9Sstevel@tonic-gate #define	TKT_FLG_PROXY			0x08000000
741*7c478bd9Sstevel@tonic-gate #define	TKT_FLG_MAY_POSTDATE		0x04000000
742*7c478bd9Sstevel@tonic-gate #define	TKT_FLG_POSTDATED		0x02000000
743*7c478bd9Sstevel@tonic-gate #define	TKT_FLG_INVALID			0x01000000
744*7c478bd9Sstevel@tonic-gate #define	TKT_FLG_RENEWABLE		0x00800000
745*7c478bd9Sstevel@tonic-gate #define	TKT_FLG_INITIAL			0x00400000
746*7c478bd9Sstevel@tonic-gate #define	TKT_FLG_PRE_AUTH		0x00200000
747*7c478bd9Sstevel@tonic-gate #define	TKT_FLG_HW_AUTH			0x00100000
748*7c478bd9Sstevel@tonic-gate #define	TKT_FLG_TRANSIT_POLICY_CHECKED	0x00080000
749*7c478bd9Sstevel@tonic-gate #define	TKT_FLG_OK_AS_DELEGATE		0x00040000
750*7c478bd9Sstevel@tonic-gate #define	TKT_FLG_ANONYMOUS		0x00020000
751*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00010000 */
752*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00008000 */
753*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00004000 */
754*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00002000 */
755*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00001000 */
756*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000800 */
757*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000400 */
758*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000200 */
759*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000100 */
760*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000080 */
761*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000040 */
762*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000020 */
763*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000010 */
764*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000008 */
765*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000004 */
766*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000002 */
767*7c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000001 */
768*7c478bd9Sstevel@tonic-gate 
769*7c478bd9Sstevel@tonic-gate /* definitions for lr_type fields. */
770*7c478bd9Sstevel@tonic-gate #define	LR_TYPE_THIS_SERVER_ONLY	0x8000
771*7c478bd9Sstevel@tonic-gate 
772*7c478bd9Sstevel@tonic-gate #define LR_TYPE_INTERPRETATION_MASK	0x7fff
773*7c478bd9Sstevel@tonic-gate 
774*7c478bd9Sstevel@tonic-gate /* definitions for ad_type fields. */
775*7c478bd9Sstevel@tonic-gate #define	AD_TYPE_EXTERNAL	0x4000
776*7c478bd9Sstevel@tonic-gate #define	AD_TYPE_REGISTERED	0x2000
777*7c478bd9Sstevel@tonic-gate 
778*7c478bd9Sstevel@tonic-gate #define AD_TYPE_FIELD_TYPE_MASK	0x1fff
779*7c478bd9Sstevel@tonic-gate #define AD_TYPE_INTERNAL_MASK	0x3fff
780*7c478bd9Sstevel@tonic-gate 
781*7c478bd9Sstevel@tonic-gate /* definitions for msec direction bit for KRB_SAFE, KRB_PRIV */
782*7c478bd9Sstevel@tonic-gate #define	MSEC_DIRBIT		0x8000
783*7c478bd9Sstevel@tonic-gate #define	MSEC_VAL_MASK		0x7fff
784*7c478bd9Sstevel@tonic-gate 
785*7c478bd9Sstevel@tonic-gate /*
786*7c478bd9Sstevel@tonic-gate  * end "fieldbits.h"
787*7c478bd9Sstevel@tonic-gate  */
788*7c478bd9Sstevel@tonic-gate 
789*7c478bd9Sstevel@tonic-gate /*
790*7c478bd9Sstevel@tonic-gate  * begin "proto.h"
791*7c478bd9Sstevel@tonic-gate  */
792*7c478bd9Sstevel@tonic-gate 
793*7c478bd9Sstevel@tonic-gate /* Protocol version number */
794*7c478bd9Sstevel@tonic-gate #define	KRB5_PVNO	5
795*7c478bd9Sstevel@tonic-gate 
796*7c478bd9Sstevel@tonic-gate /* Message types */
797*7c478bd9Sstevel@tonic-gate 
798*7c478bd9Sstevel@tonic-gate #define	KRB5_AS_REQ	((krb5_msgtype)10) /* Req for initial authentication */
799*7c478bd9Sstevel@tonic-gate #define	KRB5_AS_REP	((krb5_msgtype)11) /* Response to KRB_AS_REQ request */
800*7c478bd9Sstevel@tonic-gate #define	KRB5_TGS_REQ	((krb5_msgtype)12) /* TGS request to server */
801*7c478bd9Sstevel@tonic-gate #define	KRB5_TGS_REP	((krb5_msgtype)13) /* Response to KRB_TGS_REQ req */
802*7c478bd9Sstevel@tonic-gate #define	KRB5_AP_REQ	((krb5_msgtype)14) /* application request to server */
803*7c478bd9Sstevel@tonic-gate #define	KRB5_AP_REP	((krb5_msgtype)15) /* Response to KRB_AP_REQ_MUTUAL */
804*7c478bd9Sstevel@tonic-gate #define	KRB5_SAFE	((krb5_msgtype)20) /* Safe application message */
805*7c478bd9Sstevel@tonic-gate #define	KRB5_PRIV	((krb5_msgtype)21) /* Private application message */
806*7c478bd9Sstevel@tonic-gate #define	KRB5_CRED	((krb5_msgtype)22) /* Credential forwarding message */
807*7c478bd9Sstevel@tonic-gate #define	KRB5_ERROR	((krb5_msgtype)30) /* Error response */
808*7c478bd9Sstevel@tonic-gate 
809*7c478bd9Sstevel@tonic-gate /* LastReq types */
810*7c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_NONE			0
811*7c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ALL_LAST_TGT		1
812*7c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ONE_LAST_TGT		(-1)
813*7c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ALL_LAST_INITIAL	2
814*7c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ONE_LAST_INITIAL	(-2)
815*7c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ALL_LAST_TGT_ISSUED	3
816*7c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ONE_LAST_TGT_ISSUED	(-3)
817*7c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ALL_LAST_RENEWAL	4
818*7c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ONE_LAST_RENEWAL	(-4)
819*7c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ALL_LAST_REQ		5
820*7c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ONE_LAST_REQ		(-5)
821*7c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ALL_PW_EXPTIME		6
822*7c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ONE_PW_EXPTIME		(-6)
823*7c478bd9Sstevel@tonic-gate 
824*7c478bd9Sstevel@tonic-gate 
825*7c478bd9Sstevel@tonic-gate /* PADATA types */
826*7c478bd9Sstevel@tonic-gate #define	KRB5_PADATA_NONE                0
827*7c478bd9Sstevel@tonic-gate #define	KRB5_PADATA_AP_REQ		1
828*7c478bd9Sstevel@tonic-gate #define	KRB5_PADATA_TGS_REQ		KRB5_PADATA_AP_REQ
829*7c478bd9Sstevel@tonic-gate #define KRB5_PADATA_ENC_TIMESTAMP	2
830*7c478bd9Sstevel@tonic-gate #define	KRB5_PADATA_PW_SALT		3
831*7c478bd9Sstevel@tonic-gate #if 0				/* Not used */
832*7c478bd9Sstevel@tonic-gate #define KRB5_PADATA_ENC_ENCKEY          4  /* Key encrypted within itself */
833*7c478bd9Sstevel@tonic-gate #endif
834*7c478bd9Sstevel@tonic-gate #define KRB5_PADATA_ENC_UNIX_TIME       5  /* timestamp encrypted in key */
835*7c478bd9Sstevel@tonic-gate #define KRB5_PADATA_ENC_SANDIA_SECURID  6  /* SecurId passcode */
836*7c478bd9Sstevel@tonic-gate #define KRB5_PADATA_SESAME		7  /* Sesame project */
837*7c478bd9Sstevel@tonic-gate #define KRB5_PADATA_OSF_DCE		8  /* OSF DCE */
838*7c478bd9Sstevel@tonic-gate #define KRB5_CYBERSAFE_SECUREID		9  /* Cybersafe */
839*7c478bd9Sstevel@tonic-gate #define	KRB5_PADATA_AFS3_SALT		10 /* Cygnus */
840*7c478bd9Sstevel@tonic-gate #define KRB5_PADATA_ETYPE_INFO		11 /* Etype info for preauth */
841*7c478bd9Sstevel@tonic-gate #define KRB5_PADATA_SAM_CHALLENGE	12 /* draft challenge system */
842*7c478bd9Sstevel@tonic-gate #define KRB5_PADATA_SAM_RESPONSE	13 /* draft challenge system response */
843*7c478bd9Sstevel@tonic-gate #define KRB5_PADATA_PK_AS_REQ		14 /* PKINIT */
844*7c478bd9Sstevel@tonic-gate #define KRB5_PADATA_PK_AS_REP		15 /* PKINIT */
845*7c478bd9Sstevel@tonic-gate #define KRB5_PADATA_ETYPE_INFO2 	19
846*7c478bd9Sstevel@tonic-gate #define KRB5_PADATA_SAM_CHALLENGE_2	30 /* draft challenge system, updated */
847*7c478bd9Sstevel@tonic-gate #define KRB5_PADATA_SAM_RESPONSE_2	31 /* draft challenge system, updated */
848*7c478bd9Sstevel@tonic-gate 
849*7c478bd9Sstevel@tonic-gate #define	KRB5_SAM_USE_SAD_AS_KEY		0x80000000
850*7c478bd9Sstevel@tonic-gate #define	KRB5_SAM_SEND_ENCRYPTED_SAD	0x40000000
851*7c478bd9Sstevel@tonic-gate #define	KRB5_SAM_MUST_PK_ENCRYPT_SAD	0x20000000 /* currently must be zero */
852*7c478bd9Sstevel@tonic-gate 
853*7c478bd9Sstevel@tonic-gate /* Reserved for SPX pre-authentication. */
854*7c478bd9Sstevel@tonic-gate #define KRB5_PADATA_DASS		16
855*7c478bd9Sstevel@tonic-gate 
856*7c478bd9Sstevel@tonic-gate /* Transited encoding types */
857*7c478bd9Sstevel@tonic-gate #define	KRB5_DOMAIN_X500_COMPRESS	1
858*7c478bd9Sstevel@tonic-gate 
859*7c478bd9Sstevel@tonic-gate /* alternate authentication types */
860*7c478bd9Sstevel@tonic-gate #define	KRB5_ALTAUTH_ATT_CHALLENGE_RESPONSE	64
861*7c478bd9Sstevel@tonic-gate 
862*7c478bd9Sstevel@tonic-gate /* authorization data types */
863*7c478bd9Sstevel@tonic-gate #define	KRB5_AUTHDATA_OSF_DCE	64
864*7c478bd9Sstevel@tonic-gate #define KRB5_AUTHDATA_SESAME	65
865*7c478bd9Sstevel@tonic-gate 
866*7c478bd9Sstevel@tonic-gate /* password change constants */
867*7c478bd9Sstevel@tonic-gate 
868*7c478bd9Sstevel@tonic-gate #define KRB5_KPASSWD_SUCCESS		0
869*7c478bd9Sstevel@tonic-gate #define KRB5_KPASSWD_MALFORMED		1
870*7c478bd9Sstevel@tonic-gate #define KRB5_KPASSWD_HARDERROR		2
871*7c478bd9Sstevel@tonic-gate #define KRB5_KPASSWD_AUTHERROR		3
872*7c478bd9Sstevel@tonic-gate #define KRB5_KPASSWD_SOFTERROR		4
873*7c478bd9Sstevel@tonic-gate 
874*7c478bd9Sstevel@tonic-gate /*
875*7c478bd9Sstevel@tonic-gate  * end "proto.h"
876*7c478bd9Sstevel@tonic-gate  */
877*7c478bd9Sstevel@tonic-gate 
878*7c478bd9Sstevel@tonic-gate /* Time set */
879*7c478bd9Sstevel@tonic-gate typedef struct _krb5_ticket_times {
880*7c478bd9Sstevel@tonic-gate     krb5_timestamp authtime; /* XXX ? should ktime in KDC_REP == authtime
881*7c478bd9Sstevel@tonic-gate 				in ticket? otherwise client can't get this */
882*7c478bd9Sstevel@tonic-gate     krb5_timestamp starttime;		/* optional in ticket, if not present,
883*7c478bd9Sstevel@tonic-gate 					   use authtime */
884*7c478bd9Sstevel@tonic-gate     krb5_timestamp endtime;
885*7c478bd9Sstevel@tonic-gate     krb5_timestamp renew_till;
886*7c478bd9Sstevel@tonic-gate } krb5_ticket_times;
887*7c478bd9Sstevel@tonic-gate 
888*7c478bd9Sstevel@tonic-gate /* structure for auth data */
889*7c478bd9Sstevel@tonic-gate typedef struct _krb5_authdata {
890*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
891*7c478bd9Sstevel@tonic-gate     krb5_authdatatype ad_type;
892*7c478bd9Sstevel@tonic-gate     unsigned int length;
893*7c478bd9Sstevel@tonic-gate     krb5_octet *contents;
894*7c478bd9Sstevel@tonic-gate } krb5_authdata;
895*7c478bd9Sstevel@tonic-gate 
896*7c478bd9Sstevel@tonic-gate /* structure for transited encoding */
897*7c478bd9Sstevel@tonic-gate typedef struct _krb5_transited {
898*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
899*7c478bd9Sstevel@tonic-gate     krb5_octet tr_type;
900*7c478bd9Sstevel@tonic-gate     krb5_data tr_contents;
901*7c478bd9Sstevel@tonic-gate } krb5_transited;
902*7c478bd9Sstevel@tonic-gate 
903*7c478bd9Sstevel@tonic-gate typedef struct _krb5_enc_tkt_part {
904*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
905*7c478bd9Sstevel@tonic-gate     /* to-be-encrypted portion */
906*7c478bd9Sstevel@tonic-gate     krb5_flags flags;			/* flags */
907*7c478bd9Sstevel@tonic-gate     krb5_keyblock *session;		/* session key: includes enctype */
908*7c478bd9Sstevel@tonic-gate     krb5_principal client;		/* client name/realm */
909*7c478bd9Sstevel@tonic-gate     krb5_transited transited;		/* list of transited realms */
910*7c478bd9Sstevel@tonic-gate     krb5_ticket_times times;		/* auth, start, end, renew_till */
911*7c478bd9Sstevel@tonic-gate     krb5_address * *caddrs;	/* array of ptrs to addresses */
912*7c478bd9Sstevel@tonic-gate     krb5_authdata * *authorization_data; /* auth data */
913*7c478bd9Sstevel@tonic-gate } krb5_enc_tkt_part;
914*7c478bd9Sstevel@tonic-gate 
915*7c478bd9Sstevel@tonic-gate typedef struct _krb5_ticket {
916*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
917*7c478bd9Sstevel@tonic-gate     /* cleartext portion */
918*7c478bd9Sstevel@tonic-gate     krb5_principal server;		/* server name/realm */
919*7c478bd9Sstevel@tonic-gate     krb5_enc_data enc_part;		/* encryption type, kvno, encrypted
920*7c478bd9Sstevel@tonic-gate 					   encoding */
921*7c478bd9Sstevel@tonic-gate     krb5_enc_tkt_part *enc_part2;	/* ptr to decrypted version, if
922*7c478bd9Sstevel@tonic-gate 					   available */
923*7c478bd9Sstevel@tonic-gate } krb5_ticket;
924*7c478bd9Sstevel@tonic-gate 
925*7c478bd9Sstevel@tonic-gate /* the unencrypted version */
926*7c478bd9Sstevel@tonic-gate typedef struct _krb5_authenticator {
927*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
928*7c478bd9Sstevel@tonic-gate     krb5_principal client;		/* client name/realm */
929*7c478bd9Sstevel@tonic-gate     krb5_checksum *checksum;	/* checksum, includes type, optional */
930*7c478bd9Sstevel@tonic-gate     krb5_int32 cusec;			/* client usec portion */
931*7c478bd9Sstevel@tonic-gate     krb5_timestamp ctime;		/* client sec portion */
932*7c478bd9Sstevel@tonic-gate     krb5_keyblock *subkey;		/* true session key, optional */
933*7c478bd9Sstevel@tonic-gate     krb5_ui_4 seq_number;		/* sequence #, optional */
934*7c478bd9Sstevel@tonic-gate     krb5_authdata * *authorization_data; /* New add by Ari, auth data */
935*7c478bd9Sstevel@tonic-gate } krb5_authenticator;
936*7c478bd9Sstevel@tonic-gate 
937*7c478bd9Sstevel@tonic-gate typedef struct _krb5_tkt_authent {
938*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
939*7c478bd9Sstevel@tonic-gate     krb5_ticket *ticket;
940*7c478bd9Sstevel@tonic-gate     krb5_authenticator *authenticator;
941*7c478bd9Sstevel@tonic-gate     krb5_flags ap_options;
942*7c478bd9Sstevel@tonic-gate } krb5_tkt_authent;
943*7c478bd9Sstevel@tonic-gate 
944*7c478bd9Sstevel@tonic-gate /* credentials:  Ticket, session key, etc. */
945*7c478bd9Sstevel@tonic-gate typedef struct _krb5_creds {
946*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
947*7c478bd9Sstevel@tonic-gate     krb5_principal client;		/* client's principal identifier */
948*7c478bd9Sstevel@tonic-gate     krb5_principal server;		/* server's principal identifier */
949*7c478bd9Sstevel@tonic-gate     krb5_keyblock keyblock;		/* session encryption key info */
950*7c478bd9Sstevel@tonic-gate     krb5_ticket_times times;		/* lifetime info */
951*7c478bd9Sstevel@tonic-gate     krb5_boolean is_skey;		/* true if ticket is encrypted in
952*7c478bd9Sstevel@tonic-gate 					   another ticket's skey */
953*7c478bd9Sstevel@tonic-gate     krb5_flags ticket_flags;		/* flags in ticket */
954*7c478bd9Sstevel@tonic-gate     krb5_address * *addresses;	/* addrs in ticket */
955*7c478bd9Sstevel@tonic-gate     krb5_data ticket;			/* ticket string itself */
956*7c478bd9Sstevel@tonic-gate     krb5_data second_ticket;		/* second ticket, if related to
957*7c478bd9Sstevel@tonic-gate 					   ticket (via DUPLICATE-SKEY or
958*7c478bd9Sstevel@tonic-gate 					   ENC-TKT-IN-SKEY) */
959*7c478bd9Sstevel@tonic-gate     krb5_authdata * *authdata;	/* authorization data */
960*7c478bd9Sstevel@tonic-gate } krb5_creds;
961*7c478bd9Sstevel@tonic-gate 
962*7c478bd9Sstevel@tonic-gate /* Last request fields */
963*7c478bd9Sstevel@tonic-gate typedef struct _krb5_last_req_entry {
964*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
965*7c478bd9Sstevel@tonic-gate     krb5_int32 lr_type;
966*7c478bd9Sstevel@tonic-gate     krb5_timestamp value;
967*7c478bd9Sstevel@tonic-gate } krb5_last_req_entry;
968*7c478bd9Sstevel@tonic-gate 
969*7c478bd9Sstevel@tonic-gate /* pre-authentication data */
970*7c478bd9Sstevel@tonic-gate typedef struct _krb5_pa_data {
971*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
972*7c478bd9Sstevel@tonic-gate     krb5_preauthtype  pa_type;
973*7c478bd9Sstevel@tonic-gate     unsigned int length;
974*7c478bd9Sstevel@tonic-gate     krb5_octet *contents;
975*7c478bd9Sstevel@tonic-gate } krb5_pa_data;
976*7c478bd9Sstevel@tonic-gate 
977*7c478bd9Sstevel@tonic-gate typedef struct _krb5_kdc_req {
978*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
979*7c478bd9Sstevel@tonic-gate     krb5_msgtype msg_type;		/* AS_REQ or TGS_REQ? */
980*7c478bd9Sstevel@tonic-gate     krb5_pa_data * *padata;	/* e.g. encoded AP_REQ */
981*7c478bd9Sstevel@tonic-gate     /* real body */
982*7c478bd9Sstevel@tonic-gate     krb5_flags kdc_options;		/* requested options */
983*7c478bd9Sstevel@tonic-gate     krb5_principal client;		/* includes realm; optional */
984*7c478bd9Sstevel@tonic-gate     krb5_principal server;		/* includes realm (only used if no
985*7c478bd9Sstevel@tonic-gate 					   client) */
986*7c478bd9Sstevel@tonic-gate     krb5_timestamp from;		/* requested starttime */
987*7c478bd9Sstevel@tonic-gate     krb5_timestamp till;		/* requested endtime */
988*7c478bd9Sstevel@tonic-gate     krb5_timestamp rtime;		/* (optional) requested renew_till */
989*7c478bd9Sstevel@tonic-gate     krb5_int32 nonce;			/* nonce to match request/response */
990*7c478bd9Sstevel@tonic-gate     int nktypes;			/* # of ktypes, must be positive */
991*7c478bd9Sstevel@tonic-gate     krb5_enctype *ktype;		/* requested enctype(s) */
992*7c478bd9Sstevel@tonic-gate     krb5_address * *addresses;	/* requested addresses, optional */
993*7c478bd9Sstevel@tonic-gate     krb5_enc_data authorization_data;	/* encrypted auth data; OPTIONAL */
994*7c478bd9Sstevel@tonic-gate     krb5_authdata * *unenc_authdata; /* unencrypted auth data,
995*7c478bd9Sstevel@tonic-gate 					   if available */
996*7c478bd9Sstevel@tonic-gate     krb5_ticket * *second_ticket;/* second ticket array; OPTIONAL */
997*7c478bd9Sstevel@tonic-gate } krb5_kdc_req;
998*7c478bd9Sstevel@tonic-gate 
999*7c478bd9Sstevel@tonic-gate typedef struct _krb5_enc_kdc_rep_part {
1000*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1001*7c478bd9Sstevel@tonic-gate     /* encrypted part: */
1002*7c478bd9Sstevel@tonic-gate     krb5_msgtype msg_type;		/* krb5 message type */
1003*7c478bd9Sstevel@tonic-gate     krb5_keyblock *session;		/* session key */
1004*7c478bd9Sstevel@tonic-gate     krb5_last_req_entry * *last_req; /* array of ptrs to entries */
1005*7c478bd9Sstevel@tonic-gate     krb5_int32 nonce;			/* nonce from request */
1006*7c478bd9Sstevel@tonic-gate     krb5_timestamp key_exp;		/* expiration date */
1007*7c478bd9Sstevel@tonic-gate     krb5_flags flags;			/* ticket flags */
1008*7c478bd9Sstevel@tonic-gate     krb5_ticket_times times;		/* lifetime info */
1009*7c478bd9Sstevel@tonic-gate     krb5_principal server;		/* server's principal identifier */
1010*7c478bd9Sstevel@tonic-gate     krb5_address * *caddrs;	/* array of ptrs to addresses,
1011*7c478bd9Sstevel@tonic-gate 					   optional */
1012*7c478bd9Sstevel@tonic-gate } krb5_enc_kdc_rep_part;
1013*7c478bd9Sstevel@tonic-gate 
1014*7c478bd9Sstevel@tonic-gate typedef struct _krb5_kdc_rep {
1015*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1016*7c478bd9Sstevel@tonic-gate     /* cleartext part: */
1017*7c478bd9Sstevel@tonic-gate     krb5_msgtype msg_type;		/* AS_REP or KDC_REP? */
1018*7c478bd9Sstevel@tonic-gate     krb5_pa_data * *padata;	/* preauthentication data from KDC */
1019*7c478bd9Sstevel@tonic-gate     krb5_principal client;		/* client's principal identifier */
1020*7c478bd9Sstevel@tonic-gate     krb5_ticket *ticket;		/* ticket */
1021*7c478bd9Sstevel@tonic-gate     krb5_enc_data enc_part;		/* encryption type, kvno, encrypted
1022*7c478bd9Sstevel@tonic-gate 					   encoding */
1023*7c478bd9Sstevel@tonic-gate     krb5_enc_kdc_rep_part *enc_part2;/* unencrypted version, if available */
1024*7c478bd9Sstevel@tonic-gate } krb5_kdc_rep;
1025*7c478bd9Sstevel@tonic-gate 
1026*7c478bd9Sstevel@tonic-gate /* error message structure */
1027*7c478bd9Sstevel@tonic-gate typedef struct _krb5_error {
1028*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1029*7c478bd9Sstevel@tonic-gate     /* some of these may be meaningless in certain contexts */
1030*7c478bd9Sstevel@tonic-gate     krb5_timestamp ctime;		/* client sec portion; optional */
1031*7c478bd9Sstevel@tonic-gate     krb5_int32 cusec;			/* client usec portion; optional */
1032*7c478bd9Sstevel@tonic-gate     krb5_int32 susec;			/* server usec portion */
1033*7c478bd9Sstevel@tonic-gate     krb5_timestamp stime;		/* server sec portion */
1034*7c478bd9Sstevel@tonic-gate     krb5_ui_4 error;			/* error code (protocol error #'s) */
1035*7c478bd9Sstevel@tonic-gate     krb5_principal client;		/* client's principal identifier;
1036*7c478bd9Sstevel@tonic-gate 					   optional */
1037*7c478bd9Sstevel@tonic-gate     krb5_principal server;		/* server's principal identifier */
1038*7c478bd9Sstevel@tonic-gate     krb5_data text;			/* descriptive text */
1039*7c478bd9Sstevel@tonic-gate     krb5_data e_data;			/* additional error-describing data */
1040*7c478bd9Sstevel@tonic-gate } krb5_error;
1041*7c478bd9Sstevel@tonic-gate 
1042*7c478bd9Sstevel@tonic-gate typedef struct _krb5_ap_req {
1043*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1044*7c478bd9Sstevel@tonic-gate     krb5_flags ap_options;		/* requested options */
1045*7c478bd9Sstevel@tonic-gate     krb5_ticket *ticket;		/* ticket */
1046*7c478bd9Sstevel@tonic-gate     krb5_enc_data authenticator;	/* authenticator (already encrypted) */
1047*7c478bd9Sstevel@tonic-gate } krb5_ap_req;
1048*7c478bd9Sstevel@tonic-gate 
1049*7c478bd9Sstevel@tonic-gate typedef struct _krb5_ap_rep {
1050*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1051*7c478bd9Sstevel@tonic-gate     krb5_enc_data enc_part;
1052*7c478bd9Sstevel@tonic-gate } krb5_ap_rep;
1053*7c478bd9Sstevel@tonic-gate 
1054*7c478bd9Sstevel@tonic-gate typedef struct _krb5_ap_rep_enc_part {
1055*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1056*7c478bd9Sstevel@tonic-gate     krb5_timestamp ctime;		/* client time, seconds portion */
1057*7c478bd9Sstevel@tonic-gate     krb5_int32 cusec;			/* client time, microseconds portion */
1058*7c478bd9Sstevel@tonic-gate     krb5_keyblock *subkey;		/* true session key, optional */
1059*7c478bd9Sstevel@tonic-gate     krb5_ui_4 seq_number;		/* sequence #, optional */
1060*7c478bd9Sstevel@tonic-gate } krb5_ap_rep_enc_part;
1061*7c478bd9Sstevel@tonic-gate 
1062*7c478bd9Sstevel@tonic-gate typedef struct _krb5_response {
1063*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1064*7c478bd9Sstevel@tonic-gate     krb5_octet message_type;
1065*7c478bd9Sstevel@tonic-gate     krb5_data response;
1066*7c478bd9Sstevel@tonic-gate     krb5_int32 expected_nonce;	/* The expected nonce for KDC_REP messages */
1067*7c478bd9Sstevel@tonic-gate     krb5_timestamp request_time;   /* When we made the request */
1068*7c478bd9Sstevel@tonic-gate } krb5_response;
1069*7c478bd9Sstevel@tonic-gate 
1070*7c478bd9Sstevel@tonic-gate typedef struct _krb5_safe {
1071*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1072*7c478bd9Sstevel@tonic-gate     krb5_data user_data;		/* user data */
1073*7c478bd9Sstevel@tonic-gate     krb5_timestamp timestamp;		/* client time, optional */
1074*7c478bd9Sstevel@tonic-gate     krb5_int32 usec;			/* microsecond portion of time,
1075*7c478bd9Sstevel@tonic-gate 					   optional */
1076*7c478bd9Sstevel@tonic-gate     krb5_ui_4 seq_number;		/* sequence #, optional */
1077*7c478bd9Sstevel@tonic-gate     krb5_address *s_address;	/* sender address */
1078*7c478bd9Sstevel@tonic-gate     krb5_address *r_address;	/* recipient address, optional */
1079*7c478bd9Sstevel@tonic-gate     krb5_checksum *checksum;	/* data integrity checksum */
1080*7c478bd9Sstevel@tonic-gate } krb5_safe;
1081*7c478bd9Sstevel@tonic-gate 
1082*7c478bd9Sstevel@tonic-gate typedef struct _krb5_priv {
1083*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1084*7c478bd9Sstevel@tonic-gate     krb5_enc_data enc_part;		/* encrypted part */
1085*7c478bd9Sstevel@tonic-gate } krb5_priv;
1086*7c478bd9Sstevel@tonic-gate 
1087*7c478bd9Sstevel@tonic-gate typedef struct _krb5_priv_enc_part {
1088*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1089*7c478bd9Sstevel@tonic-gate     krb5_data user_data;		/* user data */
1090*7c478bd9Sstevel@tonic-gate     krb5_timestamp timestamp;		/* client time, optional */
1091*7c478bd9Sstevel@tonic-gate     krb5_int32 usec;			/* microsecond portion of time, opt. */
1092*7c478bd9Sstevel@tonic-gate     krb5_ui_4 seq_number;		/* sequence #, optional */
1093*7c478bd9Sstevel@tonic-gate     krb5_address *s_address;	/* sender address */
1094*7c478bd9Sstevel@tonic-gate     krb5_address *r_address;	/* recipient address, optional */
1095*7c478bd9Sstevel@tonic-gate } krb5_priv_enc_part;
1096*7c478bd9Sstevel@tonic-gate 
1097*7c478bd9Sstevel@tonic-gate typedef struct _krb5_cred_info {
1098*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1099*7c478bd9Sstevel@tonic-gate     krb5_keyblock *session;         /* session key used to encrypt */
1100*7c478bd9Sstevel@tonic-gate 					/* ticket */
1101*7c478bd9Sstevel@tonic-gate     krb5_principal client;              /* client name/realm, optional */
1102*7c478bd9Sstevel@tonic-gate     krb5_principal server;              /* server name/realm, optional */
1103*7c478bd9Sstevel@tonic-gate     krb5_flags flags;			/* ticket flags, optional */
1104*7c478bd9Sstevel@tonic-gate     krb5_ticket_times times;		/* auth, start, end, renew_till, */
1105*7c478bd9Sstevel@tonic-gate                                         /* optional */
1106*7c478bd9Sstevel@tonic-gate     krb5_address * *caddrs;	/* array of ptrs to addresses */
1107*7c478bd9Sstevel@tonic-gate } krb5_cred_info;
1108*7c478bd9Sstevel@tonic-gate 
1109*7c478bd9Sstevel@tonic-gate typedef struct _krb5_cred_enc_part {
1110*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1111*7c478bd9Sstevel@tonic-gate     krb5_int32 nonce;                   /* nonce, optional */
1112*7c478bd9Sstevel@tonic-gate     krb5_timestamp timestamp;           /* client time */
1113*7c478bd9Sstevel@tonic-gate     krb5_int32 usec;                    /* microsecond portion of time */
1114*7c478bd9Sstevel@tonic-gate     krb5_address *s_address;        /* sender address, optional */
1115*7c478bd9Sstevel@tonic-gate     krb5_address *r_address;        /* recipient address, optional */
1116*7c478bd9Sstevel@tonic-gate     krb5_cred_info * *ticket_info;
1117*7c478bd9Sstevel@tonic-gate } krb5_cred_enc_part;
1118*7c478bd9Sstevel@tonic-gate 
1119*7c478bd9Sstevel@tonic-gate typedef struct _krb5_cred {
1120*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1121*7c478bd9Sstevel@tonic-gate     krb5_ticket * *tickets;	/* tickets */
1122*7c478bd9Sstevel@tonic-gate     krb5_enc_data enc_part;		/* encrypted part */
1123*7c478bd9Sstevel@tonic-gate     krb5_cred_enc_part *enc_part2; 	/* unencrypted version, if available*/
1124*7c478bd9Sstevel@tonic-gate } krb5_cred;
1125*7c478bd9Sstevel@tonic-gate 
1126*7c478bd9Sstevel@tonic-gate /* Sandia password generation structures */
1127*7c478bd9Sstevel@tonic-gate typedef struct _passwd_phrase_element {
1128*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1129*7c478bd9Sstevel@tonic-gate     krb5_data *passwd;
1130*7c478bd9Sstevel@tonic-gate     krb5_data *phrase;
1131*7c478bd9Sstevel@tonic-gate } passwd_phrase_element;
1132*7c478bd9Sstevel@tonic-gate 
1133*7c478bd9Sstevel@tonic-gate typedef struct _krb5_pwd_data {
1134*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1135*7c478bd9Sstevel@tonic-gate     int sequence_count;
1136*7c478bd9Sstevel@tonic-gate     passwd_phrase_element * *element;
1137*7c478bd9Sstevel@tonic-gate } krb5_pwd_data;
1138*7c478bd9Sstevel@tonic-gate 
1139*7c478bd9Sstevel@tonic-gate /* these need to be here so the typedefs are available for the prototypes */
1140*7c478bd9Sstevel@tonic-gate 
1141*7c478bd9Sstevel@tonic-gate /*
1142*7c478bd9Sstevel@tonic-gate  * begin "safepriv.h"
1143*7c478bd9Sstevel@tonic-gate  */
1144*7c478bd9Sstevel@tonic-gate 
1145*7c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_DO_TIME       0x00000001
1146*7c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_RET_TIME      0x00000002
1147*7c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_DO_SEQUENCE   0x00000004
1148*7c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_RET_SEQUENCE  0x00000008
1149*7c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_PERMIT_ALL	0x00000010
1150*7c478bd9Sstevel@tonic-gate #define	KRB5_AUTH_CONTEXT_USE_SUBKEY	0x00000020
1151*7c478bd9Sstevel@tonic-gate 
1152*7c478bd9Sstevel@tonic-gate typedef struct krb5_replay_data {
1153*7c478bd9Sstevel@tonic-gate     krb5_timestamp      timestamp;
1154*7c478bd9Sstevel@tonic-gate     krb5_int32          usec;
1155*7c478bd9Sstevel@tonic-gate     krb5_int32          seq;
1156*7c478bd9Sstevel@tonic-gate } krb5_replay_data;
1157*7c478bd9Sstevel@tonic-gate 
1158*7c478bd9Sstevel@tonic-gate /* flags for krb5_auth_con_genaddrs() */
1159*7c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDR           0x00000001
1160*7c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDR          0x00000002
1161*7c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR      0x00000004
1162*7c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR     0x00000008
1163*7c478bd9Sstevel@tonic-gate 
1164*7c478bd9Sstevel@tonic-gate /* type of function used as a callback to generate checksum data for
1165*7c478bd9Sstevel@tonic-gate  * mk_req */
1166*7c478bd9Sstevel@tonic-gate 
1167*7c478bd9Sstevel@tonic-gate typedef krb5_error_code
1168*7c478bd9Sstevel@tonic-gate (KRB5_CALLCONV * krb5_mk_req_checksum_func) (
1169*7c478bd9Sstevel@tonic-gate 	krb5_context,
1170*7c478bd9Sstevel@tonic-gate 	krb5_auth_context,
1171*7c478bd9Sstevel@tonic-gate 	void *,
1172*7c478bd9Sstevel@tonic-gate 	krb5_data **);
1173*7c478bd9Sstevel@tonic-gate 
1174*7c478bd9Sstevel@tonic-gate 
1175*7c478bd9Sstevel@tonic-gate /*
1176*7c478bd9Sstevel@tonic-gate  * end "safepriv.h"
1177*7c478bd9Sstevel@tonic-gate  */
1178*7c478bd9Sstevel@tonic-gate 
1179*7c478bd9Sstevel@tonic-gate 
1180*7c478bd9Sstevel@tonic-gate /*
1181*7c478bd9Sstevel@tonic-gate  * begin "ccache.h"
1182*7c478bd9Sstevel@tonic-gate  */
1183*7c478bd9Sstevel@tonic-gate 
1184*7c478bd9Sstevel@tonic-gate typedef	krb5_pointer	krb5_cc_cursor;	/* cursor for sequential lookup */
1185*7c478bd9Sstevel@tonic-gate 
1186*7c478bd9Sstevel@tonic-gate typedef struct _krb5_ccache {
1187*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1188*7c478bd9Sstevel@tonic-gate     struct _krb5_cc_ops *ops;
1189*7c478bd9Sstevel@tonic-gate     krb5_pointer data;
1190*7c478bd9Sstevel@tonic-gate } *krb5_ccache;
1191*7c478bd9Sstevel@tonic-gate 
1192*7c478bd9Sstevel@tonic-gate typedef struct _krb5_cc_ops {
1193*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1194*7c478bd9Sstevel@tonic-gate     char *prefix;
1195*7c478bd9Sstevel@tonic-gate     char * (KRB5_CALLCONV *get_name) KRB5_NPROTOTYPE((krb5_context, krb5_ccache));
1196*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *resolve) KRB5_NPROTOTYPE((krb5_context, krb5_ccache *,
1197*7c478bd9Sstevel@tonic-gate 					    const char *));
1198*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *gen_new) KRB5_NPROTOTYPE((krb5_context, krb5_ccache *));
1199*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *init) KRB5_NPROTOTYPE((krb5_context, krb5_ccache,
1200*7c478bd9Sstevel@tonic-gate 					    krb5_principal));
1201*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *destroy) KRB5_NPROTOTYPE((krb5_context, krb5_ccache));
1202*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *close) KRB5_NPROTOTYPE((krb5_context, krb5_ccache));
1203*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *store) KRB5_NPROTOTYPE((krb5_context, krb5_ccache,
1204*7c478bd9Sstevel@tonic-gate 					    krb5_creds *));
1205*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *retrieve) KRB5_NPROTOTYPE((krb5_context, krb5_ccache,
1206*7c478bd9Sstevel@tonic-gate 					    krb5_flags, krb5_creds *,
1207*7c478bd9Sstevel@tonic-gate 					    krb5_creds *));
1208*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *get_princ) KRB5_NPROTOTYPE((krb5_context, krb5_ccache,
1209*7c478bd9Sstevel@tonic-gate 					    krb5_principal *));
1210*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *get_first) KRB5_NPROTOTYPE((krb5_context, krb5_ccache,
1211*7c478bd9Sstevel@tonic-gate 					    krb5_cc_cursor *));
1212*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *get_next) KRB5_NPROTOTYPE((krb5_context, krb5_ccache,
1213*7c478bd9Sstevel@tonic-gate 					    krb5_cc_cursor *, krb5_creds *));
1214*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *end_get) KRB5_NPROTOTYPE((krb5_context, krb5_ccache,
1215*7c478bd9Sstevel@tonic-gate 					    krb5_cc_cursor *));
1216*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *remove_cred) KRB5_NPROTOTYPE((krb5_context, krb5_ccache,
1217*7c478bd9Sstevel@tonic-gate 					    krb5_flags, krb5_creds *));
1218*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *set_flags) KRB5_NPROTOTYPE((krb5_context, krb5_ccache,
1219*7c478bd9Sstevel@tonic-gate 					    krb5_flags));
1220*7c478bd9Sstevel@tonic-gate } krb5_cc_ops;
1221*7c478bd9Sstevel@tonic-gate 
1222*7c478bd9Sstevel@tonic-gate /* for retrieve_cred */
1223*7c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_TIMES		0x00000001
1224*7c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_IS_SKEY		0x00000002
1225*7c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_FLAGS		0x00000004
1226*7c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_TIMES_EXACT	0x00000008
1227*7c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_FLAGS_EXACT	0x00000010
1228*7c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_AUTHDATA		0x00000020
1229*7c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_SRV_NAMEONLY	0x00000040
1230*7c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_2ND_TKT		0x00000080
1231*7c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_KTYPE		0x00000100
1232*7c478bd9Sstevel@tonic-gate #define KRB5_TC_SUPPORTED_KTYPES	0x00000200
1233*7c478bd9Sstevel@tonic-gate 
1234*7c478bd9Sstevel@tonic-gate /* for set_flags and other functions */
1235*7c478bd9Sstevel@tonic-gate #define KRB5_TC_OPENCLOSE		0x00000001
1236*7c478bd9Sstevel@tonic-gate 
1237*7c478bd9Sstevel@tonic-gate #define krb5_cc_initialize(context, cache, principal) krb5_x((cache)->ops->init,(context, cache, principal))
1238*7c478bd9Sstevel@tonic-gate #define krb5_cc_gen_new(context, cache) krb5_x((*cache)->ops->gen_new,(context, cache))
1239*7c478bd9Sstevel@tonic-gate #define krb5_cc_destroy(context, cache) krb5_x((cache)->ops->destroy,(context, cache))
1240*7c478bd9Sstevel@tonic-gate #define krb5_cc_close(context, cache) krb5_x((cache)->ops->close,(context, cache))
1241*7c478bd9Sstevel@tonic-gate #define krb5_cc_store_cred(context, cache, creds) krb5_x((cache)->ops->store,(context, cache, creds))
1242*7c478bd9Sstevel@tonic-gate #define krb5_cc_retrieve_cred(context, cache, flags, mcreds, creds) krb5_x((cache)->ops->retrieve,(context, cache, flags, mcreds, creds))
1243*7c478bd9Sstevel@tonic-gate #define krb5_cc_get_principal(context, cache, principal) krb5_x((cache)->ops->get_princ,(context, cache, principal))
1244*7c478bd9Sstevel@tonic-gate #define krb5_cc_start_seq_get(context, cache, cursor) krb5_x((cache)->ops->get_first,(context, cache, cursor))
1245*7c478bd9Sstevel@tonic-gate #define krb5_cc_next_cred(context, cache, cursor, creds) krb5_x((cache)->ops->get_next,(context, cache, cursor, creds))
1246*7c478bd9Sstevel@tonic-gate #define krb5_cc_end_seq_get(context, cache, cursor) krb5_x((cache)->ops->end_get,(context, cache, cursor))
1247*7c478bd9Sstevel@tonic-gate #define krb5_cc_remove_cred(context, cache, flags, creds) krb5_x((cache)->ops->remove_cred,(context, cache,flags, creds))
1248*7c478bd9Sstevel@tonic-gate #define krb5_cc_set_flags(context, cache, flags) krb5_x((cache)->ops->set_flags,(context, cache, flags))
1249*7c478bd9Sstevel@tonic-gate #define krb5_cc_get_name(context, cache) krb5_xc((cache)->ops->get_name,(context, cache))
1250*7c478bd9Sstevel@tonic-gate #define krb5_cc_get_type(context, cache) ((cache)->ops->prefix)
1251*7c478bd9Sstevel@tonic-gate 
1252*7c478bd9Sstevel@tonic-gate extern krb5_cc_ops *krb5_cc_dfl_ops;
1253*7c478bd9Sstevel@tonic-gate 
1254*7c478bd9Sstevel@tonic-gate /*
1255*7c478bd9Sstevel@tonic-gate  * end "ccache.h"
1256*7c478bd9Sstevel@tonic-gate  */
1257*7c478bd9Sstevel@tonic-gate 
1258*7c478bd9Sstevel@tonic-gate /*
1259*7c478bd9Sstevel@tonic-gate  * begin "rcache.h"
1260*7c478bd9Sstevel@tonic-gate  */
1261*7c478bd9Sstevel@tonic-gate 
1262*7c478bd9Sstevel@tonic-gate typedef struct krb5_rc_st {
1263*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1264*7c478bd9Sstevel@tonic-gate     struct _krb5_rc_ops *ops;
1265*7c478bd9Sstevel@tonic-gate     krb5_pointer data;
1266*7c478bd9Sstevel@tonic-gate } *krb5_rcache;
1267*7c478bd9Sstevel@tonic-gate 
1268*7c478bd9Sstevel@tonic-gate typedef struct _krb5_donot_replay {
1269*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1270*7c478bd9Sstevel@tonic-gate     char *server;			/* null-terminated */
1271*7c478bd9Sstevel@tonic-gate     char *client;			/* null-terminated */
1272*7c478bd9Sstevel@tonic-gate     krb5_int32 cusec;
1273*7c478bd9Sstevel@tonic-gate     krb5_timestamp ctime;
1274*7c478bd9Sstevel@tonic-gate } krb5_donot_replay;
1275*7c478bd9Sstevel@tonic-gate 
1276*7c478bd9Sstevel@tonic-gate typedef struct _krb5_rc_ops {
1277*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1278*7c478bd9Sstevel@tonic-gate     char *type;
1279*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *init)
1280*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context, krb5_rcache,krb5_deltat)); /* create */
1281*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *recover)
1282*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context, krb5_rcache)); /* open */
1283*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *destroy)
1284*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context, krb5_rcache));
1285*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *close)
1286*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context, krb5_rcache));
1287*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *store)
1288*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context, krb5_rcache,krb5_donot_replay *));
1289*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *expunge)
1290*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context, krb5_rcache));
1291*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *get_span)
1292*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context, krb5_rcache,krb5_deltat *));
1293*7c478bd9Sstevel@tonic-gate     char *(KRB5_CALLCONV *get_name)
1294*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context, krb5_rcache));
1295*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *resolve)
1296*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context, krb5_rcache, char *));
1297*7c478bd9Sstevel@tonic-gate } krb5_rc_ops;
1298*7c478bd9Sstevel@tonic-gate 
1299*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_rc_resolve
1300*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_rcache id, char *name));
1301*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_rc_default
1302*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1303*7c478bd9Sstevel@tonic-gate 		   krb5_rcache *));
1304*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_rc_register_type
1305*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1306*7c478bd9Sstevel@tonic-gate 		   krb5_rc_ops *));
1307*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_rc_resolve_full
1308*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1309*7c478bd9Sstevel@tonic-gate 		   krb5_rcache *,char *));
1310*7c478bd9Sstevel@tonic-gate char * krb5_rc_get_type
1311*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1312*7c478bd9Sstevel@tonic-gate 		   krb5_rcache));
1313*7c478bd9Sstevel@tonic-gate char * krb5_rc_default_name
1314*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context));
1315*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_auth_to_rep
1316*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1317*7c478bd9Sstevel@tonic-gate 		   krb5_tkt_authent *,
1318*7c478bd9Sstevel@tonic-gate 		   krb5_donot_replay *));
1319*7c478bd9Sstevel@tonic-gate 
1320*7c478bd9Sstevel@tonic-gate #define krb5_rc_initialize(context, id, span) krb5_x((id)->ops->init,(context, id, span))
1321*7c478bd9Sstevel@tonic-gate #define krb5_rc_recover(context, id) krb5_x((id)->ops->recover,(context, id))
1322*7c478bd9Sstevel@tonic-gate #define krb5_rc_destroy(context, id) krb5_x((id)->ops->destroy,(context, id))
1323*7c478bd9Sstevel@tonic-gate #define krb5_rc_close(context, id) krb5_x((id)->ops->close,(context, id))
1324*7c478bd9Sstevel@tonic-gate #define krb5_rc_store(context, id, dontreplay) krb5_x((id)->ops->store,(context, id, dontreplay))
1325*7c478bd9Sstevel@tonic-gate #define krb5_rc_expunge(context, id) krb5_x((id)->ops->expunge,(context, id))
1326*7c478bd9Sstevel@tonic-gate #define krb5_rc_get_lifespan(context, id, spanp) krb5_x((id)->ops->get_span,(context, id, spanp))
1327*7c478bd9Sstevel@tonic-gate #define krb5_rc_get_name(context, id) krb5_xc((id)->ops->get_name,(context, id))
1328*7c478bd9Sstevel@tonic-gate 
1329*7c478bd9Sstevel@tonic-gate extern krb5_rc_ops *krb5_rc_dfl_ops;
1330*7c478bd9Sstevel@tonic-gate 
1331*7c478bd9Sstevel@tonic-gate /*
1332*7c478bd9Sstevel@tonic-gate  * end "rcache.h"
1333*7c478bd9Sstevel@tonic-gate  */
1334*7c478bd9Sstevel@tonic-gate 
1335*7c478bd9Sstevel@tonic-gate /*
1336*7c478bd9Sstevel@tonic-gate  * begin "keytab.h"
1337*7c478bd9Sstevel@tonic-gate  */
1338*7c478bd9Sstevel@tonic-gate 
1339*7c478bd9Sstevel@tonic-gate 
1340*7c478bd9Sstevel@tonic-gate /* XXX */
1341*7c478bd9Sstevel@tonic-gate #define MAX_KEYTAB_NAME_LEN 1100 /* Long enough for MAXPATHLEN + some extra */
1342*7c478bd9Sstevel@tonic-gate 
1343*7c478bd9Sstevel@tonic-gate typedef krb5_pointer krb5_kt_cursor;	/* XXX */
1344*7c478bd9Sstevel@tonic-gate 
1345*7c478bd9Sstevel@tonic-gate typedef struct krb5_keytab_entry_st {
1346*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1347*7c478bd9Sstevel@tonic-gate     krb5_principal principal;	/* principal of this key */
1348*7c478bd9Sstevel@tonic-gate     krb5_timestamp timestamp;   /* time entry written to keytable */
1349*7c478bd9Sstevel@tonic-gate     krb5_kvno vno;		/* key version number */
1350*7c478bd9Sstevel@tonic-gate     krb5_keyblock key;		/* the secret key */
1351*7c478bd9Sstevel@tonic-gate } krb5_keytab_entry;
1352*7c478bd9Sstevel@tonic-gate 
1353*7c478bd9Sstevel@tonic-gate 
1354*7c478bd9Sstevel@tonic-gate typedef struct _krb5_kt {
1355*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1356*7c478bd9Sstevel@tonic-gate     struct _krb5_kt_ops *ops;
1357*7c478bd9Sstevel@tonic-gate     krb5_pointer data;
1358*7c478bd9Sstevel@tonic-gate } *krb5_keytab;
1359*7c478bd9Sstevel@tonic-gate 
1360*7c478bd9Sstevel@tonic-gate 
1361*7c478bd9Sstevel@tonic-gate typedef struct _krb5_kt_ops {
1362*7c478bd9Sstevel@tonic-gate     krb5_magic magic;
1363*7c478bd9Sstevel@tonic-gate     char *prefix;
1364*7c478bd9Sstevel@tonic-gate     /* routines always present */
1365*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *resolve)
1366*7c478bd9Sstevel@tonic-gate 	(krb5_context,
1367*7c478bd9Sstevel@tonic-gate 		    krb5_const char *,
1368*7c478bd9Sstevel@tonic-gate 		    krb5_keytab *);
1369*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *get_name)
1370*7c478bd9Sstevel@tonic-gate 	(krb5_context,
1371*7c478bd9Sstevel@tonic-gate 		    krb5_keytab,
1372*7c478bd9Sstevel@tonic-gate 		    char *,
1373*7c478bd9Sstevel@tonic-gate 		    int);
1374*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *close)
1375*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context,
1376*7c478bd9Sstevel@tonic-gate 		    krb5_keytab));
1377*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *get)
1378*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context,
1379*7c478bd9Sstevel@tonic-gate 		    krb5_keytab,
1380*7c478bd9Sstevel@tonic-gate 		    krb5_const_principal,
1381*7c478bd9Sstevel@tonic-gate 		    krb5_kvno,
1382*7c478bd9Sstevel@tonic-gate 		    krb5_enctype,
1383*7c478bd9Sstevel@tonic-gate 		    krb5_keytab_entry *));
1384*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *start_seq_get)
1385*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context,
1386*7c478bd9Sstevel@tonic-gate 		    krb5_keytab,
1387*7c478bd9Sstevel@tonic-gate 		    krb5_kt_cursor *));
1388*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *get_next)
1389*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context,
1390*7c478bd9Sstevel@tonic-gate 		    krb5_keytab,
1391*7c478bd9Sstevel@tonic-gate 		    krb5_keytab_entry *,
1392*7c478bd9Sstevel@tonic-gate 		    krb5_kt_cursor *));
1393*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *end_get)
1394*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context,
1395*7c478bd9Sstevel@tonic-gate 		    krb5_keytab,
1396*7c478bd9Sstevel@tonic-gate 		    krb5_kt_cursor *));
1397*7c478bd9Sstevel@tonic-gate     /* routines to be included on extended version (write routines) */
1398*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *add)
1399*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context,
1400*7c478bd9Sstevel@tonic-gate 		    krb5_keytab,
1401*7c478bd9Sstevel@tonic-gate 		    krb5_keytab_entry *));
1402*7c478bd9Sstevel@tonic-gate     krb5_error_code (KRB5_CALLCONV *remove)
1403*7c478bd9Sstevel@tonic-gate 	KRB5_NPROTOTYPE((krb5_context,
1404*7c478bd9Sstevel@tonic-gate 		    krb5_keytab,
1405*7c478bd9Sstevel@tonic-gate 		  krb5_keytab_entry *));
1406*7c478bd9Sstevel@tonic-gate 
1407*7c478bd9Sstevel@tonic-gate     /* Handle for serializer */
1408*7c478bd9Sstevel@tonic-gate     void * serializer;
1409*7c478bd9Sstevel@tonic-gate } krb5_kt_ops;
1410*7c478bd9Sstevel@tonic-gate 
1411*7c478bd9Sstevel@tonic-gate #define krb5_kt_get_type(context, keytab) ((keytab)->ops->prefix)
1412*7c478bd9Sstevel@tonic-gate #define krb5_kt_get_name(context, keytab, name, namelen) krb5_x((keytab)->ops->get_name,(context, keytab,name,namelen))
1413*7c478bd9Sstevel@tonic-gate #define krb5_kt_close(context, keytab) krb5_x((keytab)->ops->close,(context, keytab))
1414*7c478bd9Sstevel@tonic-gate #define krb5_kt_get_entry(context, keytab, principal, vno, enctype, entry) krb5_x((keytab)->ops->get,(context, keytab, principal, vno, enctype, entry))
1415*7c478bd9Sstevel@tonic-gate #define krb5_kt_start_seq_get(context, keytab, cursor) krb5_x((keytab)->ops->start_seq_get,(context, keytab, cursor))
1416*7c478bd9Sstevel@tonic-gate #define krb5_kt_next_entry(context, keytab, entry, cursor) krb5_x((keytab)->ops->get_next,(context, keytab, entry, cursor))
1417*7c478bd9Sstevel@tonic-gate #define krb5_kt_end_seq_get(context, keytab, cursor) krb5_x((keytab)->ops->end_get,(context, keytab, cursor))
1418*7c478bd9Sstevel@tonic-gate /* remove and add are functions, so that they can return NOWRITE
1419*7c478bd9Sstevel@tonic-gate    if not a writable keytab */
1420*7c478bd9Sstevel@tonic-gate 
1421*7c478bd9Sstevel@tonic-gate 
1422*7c478bd9Sstevel@tonic-gate extern krb5_kt_ops krb5_kt_dfl_ops;
1423*7c478bd9Sstevel@tonic-gate 
1424*7c478bd9Sstevel@tonic-gate /*
1425*7c478bd9Sstevel@tonic-gate  * end "keytab.h"
1426*7c478bd9Sstevel@tonic-gate  */
1427*7c478bd9Sstevel@tonic-gate 
1428*7c478bd9Sstevel@tonic-gate /*
1429*7c478bd9Sstevel@tonic-gate  * begin "func-proto.h"
1430*7c478bd9Sstevel@tonic-gate  */
1431*7c478bd9Sstevel@tonic-gate 
1432*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_init_context
1433*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context *));
1434*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_init_secure_context
1435*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context *));
1436*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_context
1437*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context));
1438*7c478bd9Sstevel@tonic-gate 
1439*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_init_ef_handle(krb5_context);
1440*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_free_ef_handle(krb5_context);
1441*7c478bd9Sstevel@tonic-gate 
1442*7c478bd9Sstevel@tonic-gate krb5_boolean krb5_privacy_allowed(void);
1443*7c478bd9Sstevel@tonic-gate 
1444*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_set_default_in_tkt_ktypes
1445*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1446*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_enctype *));
1447*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_get_default_in_tkt_ktypes
1448*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1449*7c478bd9Sstevel@tonic-gate 		   krb5_enctype **));
1450*7c478bd9Sstevel@tonic-gate 
1451*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_set_default_tgs_ktypes
1452*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1453*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_enctype *));
1454*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
1455*7c478bd9Sstevel@tonic-gate krb5_set_default_tgs_enctypes
1456*7c478bd9Sstevel@tonic-gate 	(krb5_context,
1457*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_enctype *);
1458*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_tgs_ktypes
1459*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1460*7c478bd9Sstevel@tonic-gate 		   krb5_const_principal,
1461*7c478bd9Sstevel@tonic-gate 		   krb5_enctype **));
1462*7c478bd9Sstevel@tonic-gate 
1463*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_get_permitted_enctypes
1464*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_enctype **));
1465*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_ktypes
1466*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE ((krb5_context, krb5_enctype *));
1467*7c478bd9Sstevel@tonic-gate 
1468*7c478bd9Sstevel@tonic-gate krb5_boolean krb5_is_permitted_enctype
1469*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_enctype));
1470*7c478bd9Sstevel@tonic-gate 
1471*7c478bd9Sstevel@tonic-gate /* libkrb.spec */
1472*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_kdc_rep_decrypt_proc
1473*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1474*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_keyblock *,
1475*7c478bd9Sstevel@tonic-gate 		   krb5_const_pointer,
1476*7c478bd9Sstevel@tonic-gate 		   krb5_kdc_rep * ));
1477*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_decrypt_tkt_part
1478*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1479*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_keyblock *,
1480*7c478bd9Sstevel@tonic-gate 		krb5_ticket * ));
1481*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_get_cred_from_kdc
1482*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1483*7c478bd9Sstevel@tonic-gate 		   krb5_ccache,		/* not const, as reading may save
1484*7c478bd9Sstevel@tonic-gate 					   state */
1485*7c478bd9Sstevel@tonic-gate 		   krb5_creds *,
1486*7c478bd9Sstevel@tonic-gate 		   krb5_creds **,
1487*7c478bd9Sstevel@tonic-gate 		   krb5_creds *** ));
1488*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_get_cred_from_kdc_validate
1489*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1490*7c478bd9Sstevel@tonic-gate 		   krb5_ccache,		/* not const, as reading may save
1491*7c478bd9Sstevel@tonic-gate 					   state */
1492*7c478bd9Sstevel@tonic-gate 		   krb5_creds *,
1493*7c478bd9Sstevel@tonic-gate 		   krb5_creds **,
1494*7c478bd9Sstevel@tonic-gate 		   krb5_creds *** ));
1495*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_get_cred_from_kdc_renew
1496*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1497*7c478bd9Sstevel@tonic-gate 		   krb5_ccache,		/* not const, as reading may save
1498*7c478bd9Sstevel@tonic-gate 					   state */
1499*7c478bd9Sstevel@tonic-gate 		   krb5_creds *,
1500*7c478bd9Sstevel@tonic-gate 		   krb5_creds **,
1501*7c478bd9Sstevel@tonic-gate 		   krb5_creds *** ));
1502*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_tgt_creds
1503*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1504*7c478bd9Sstevel@tonic-gate 		krb5_creds ** )); /* XXX too hard to do with const */
1505*7c478bd9Sstevel@tonic-gate 
1506*7c478bd9Sstevel@tonic-gate #define	KRB5_GC_USER_USER	1	/* want user-user ticket */
1507*7c478bd9Sstevel@tonic-gate #define	KRB5_GC_CACHED		2	/* want cached ticket only */
1508*7c478bd9Sstevel@tonic-gate 
1509*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_credentials
1510*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1511*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_flags,
1512*7c478bd9Sstevel@tonic-gate 		   krb5_ccache,
1513*7c478bd9Sstevel@tonic-gate 		   krb5_creds *,
1514*7c478bd9Sstevel@tonic-gate 		   krb5_creds * *));
1515*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_credentials_validate
1516*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1517*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_flags,
1518*7c478bd9Sstevel@tonic-gate 		   krb5_ccache,
1519*7c478bd9Sstevel@tonic-gate 		   krb5_creds *,
1520*7c478bd9Sstevel@tonic-gate 		   krb5_creds * *));
1521*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_credentials_renew
1522*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1523*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_flags,
1524*7c478bd9Sstevel@tonic-gate 		   krb5_ccache,
1525*7c478bd9Sstevel@tonic-gate 		   krb5_creds *,
1526*7c478bd9Sstevel@tonic-gate 		   krb5_creds * *));
1527*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_get_cred_via_tkt
1528*7c478bd9Sstevel@tonic-gate         KRB5_PROTOTYPE((krb5_context,
1529*7c478bd9Sstevel@tonic-gate                    krb5_creds *,
1530*7c478bd9Sstevel@tonic-gate                    krb5_const krb5_flags,
1531*7c478bd9Sstevel@tonic-gate                    krb5_address * krb5_const *,
1532*7c478bd9Sstevel@tonic-gate                    krb5_creds *,
1533*7c478bd9Sstevel@tonic-gate                    krb5_creds **));
1534*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_req
1535*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1536*7c478bd9Sstevel@tonic-gate 		krb5_auth_context *,
1537*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_flags,
1538*7c478bd9Sstevel@tonic-gate 		char *,
1539*7c478bd9Sstevel@tonic-gate 		char *,
1540*7c478bd9Sstevel@tonic-gate 		krb5_data *,
1541*7c478bd9Sstevel@tonic-gate 		krb5_ccache,
1542*7c478bd9Sstevel@tonic-gate 		krb5_data * ));
1543*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_req_extended
1544*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1545*7c478bd9Sstevel@tonic-gate 		   krb5_auth_context *,
1546*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_flags,
1547*7c478bd9Sstevel@tonic-gate 		   krb5_data *,
1548*7c478bd9Sstevel@tonic-gate 		   krb5_creds *,
1549*7c478bd9Sstevel@tonic-gate 		   krb5_data * ));
1550*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_rep
1551*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1552*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
1553*7c478bd9Sstevel@tonic-gate 		krb5_data *));
1554*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_rd_rep
1555*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1556*7c478bd9Sstevel@tonic-gate 		   krb5_auth_context,
1557*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_data *,
1558*7c478bd9Sstevel@tonic-gate 		   krb5_ap_rep_enc_part * *));
1559*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_error
1560*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1561*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_error *,
1562*7c478bd9Sstevel@tonic-gate 		krb5_data * ));
1563*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_rd_error
1564*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1565*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_data *,
1566*7c478bd9Sstevel@tonic-gate 		krb5_error * * ));
1567*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_rd_safe
1568*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1569*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
1570*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_data *,
1571*7c478bd9Sstevel@tonic-gate 		krb5_data *,
1572*7c478bd9Sstevel@tonic-gate 		krb5_replay_data *));
1573*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_rd_priv
1574*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1575*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
1576*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_data *,
1577*7c478bd9Sstevel@tonic-gate 		krb5_data *,
1578*7c478bd9Sstevel@tonic-gate 		krb5_replay_data *));
1579*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_parse_name
1580*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1581*7c478bd9Sstevel@tonic-gate 		   krb5_const char *,
1582*7c478bd9Sstevel@tonic-gate 		   krb5_principal * ));
1583*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_unparse_name
1584*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1585*7c478bd9Sstevel@tonic-gate 		   krb5_const_principal,
1586*7c478bd9Sstevel@tonic-gate 		   char * * ));
1587*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_unparse_name_ext
1588*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1589*7c478bd9Sstevel@tonic-gate 		krb5_const_principal,
1590*7c478bd9Sstevel@tonic-gate 		char * *,
1591*7c478bd9Sstevel@tonic-gate 		int *));
1592*7c478bd9Sstevel@tonic-gate 
1593*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_set_principal_realm
1594*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_principal, const char *));
1595*7c478bd9Sstevel@tonic-gate 
1596*7c478bd9Sstevel@tonic-gate krb5_boolean krb5_address_search
1597*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1598*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_address *,
1599*7c478bd9Sstevel@tonic-gate 		   krb5_address * krb5_const *));
1600*7c478bd9Sstevel@tonic-gate krb5_boolean krb5_address_compare
1601*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1602*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_address *,
1603*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_address *));
1604*7c478bd9Sstevel@tonic-gate int krb5_address_order
1605*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1606*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_address *,
1607*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_address *));
1608*7c478bd9Sstevel@tonic-gate krb5_boolean krb5_realm_compare
1609*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1610*7c478bd9Sstevel@tonic-gate 		   krb5_const_principal,
1611*7c478bd9Sstevel@tonic-gate 		   krb5_const_principal));
1612*7c478bd9Sstevel@tonic-gate  krb5_boolean KRB5_CALLCONV krb5_principal_compare
1613*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1614*7c478bd9Sstevel@tonic-gate 		   krb5_const_principal,
1615*7c478bd9Sstevel@tonic-gate 		   krb5_const_principal));
1616*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_keyblock
1617*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1618*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_keyblock *,
1619*7c478bd9Sstevel@tonic-gate 		krb5_keyblock * *));
1620*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_keyblock_contents
1621*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1622*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_keyblock *,
1623*7c478bd9Sstevel@tonic-gate 		krb5_keyblock *));
1624*7c478bd9Sstevel@tonic-gate /*
1625*7c478bd9Sstevel@tonic-gate  * Solaris Kerberos:
1626*7c478bd9Sstevel@tonic-gate  * krb5_copy_keyblock_data is a new routine to hide the details
1627*7c478bd9Sstevel@tonic-gate  * of a keyblock copy operation.
1628*7c478bd9Sstevel@tonic-gate  */
1629*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_keyblock_data
1630*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1631*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_keyblock *,
1632*7c478bd9Sstevel@tonic-gate 		krb5_keyblock *));
1633*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_creds
1634*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1635*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_creds *,
1636*7c478bd9Sstevel@tonic-gate 		krb5_creds * *));
1637*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_data
1638*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1639*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_data *,
1640*7c478bd9Sstevel@tonic-gate 		krb5_data * *));
1641*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_principal
1642*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1643*7c478bd9Sstevel@tonic-gate 		krb5_const_principal,
1644*7c478bd9Sstevel@tonic-gate 		krb5_principal *));
1645*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_addr
1646*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1647*7c478bd9Sstevel@tonic-gate 		const krb5_address *,
1648*7c478bd9Sstevel@tonic-gate 		krb5_address * *));
1649*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_addresses
1650*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1651*7c478bd9Sstevel@tonic-gate 		krb5_address * krb5_const *,
1652*7c478bd9Sstevel@tonic-gate 		krb5_address * * *));
1653*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_ticket
1654*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1655*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_ticket *,
1656*7c478bd9Sstevel@tonic-gate 		krb5_ticket * *));
1657*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_authdata
1658*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1659*7c478bd9Sstevel@tonic-gate 		krb5_authdata * krb5_const *,
1660*7c478bd9Sstevel@tonic-gate 		krb5_authdata * * *));
1661*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_authenticator
1662*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1663*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_authenticator *,
1664*7c478bd9Sstevel@tonic-gate 		krb5_authenticator * *));
1665*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_checksum
1666*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1667*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_checksum *,
1668*7c478bd9Sstevel@tonic-gate 		krb5_checksum * *));
1669*7c478bd9Sstevel@tonic-gate void krb5_init_ets
1670*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context));
1671*7c478bd9Sstevel@tonic-gate void krb5_free_ets
1672*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context));
1673*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_generate_subkey
1674*7c478bd9Sstevel@tonic-gate     	KRB5_PROTOTYPE((krb5_context,
1675*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_keyblock *, krb5_keyblock **));
1676*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_generate_seq_number
1677*7c478bd9Sstevel@tonic-gate     	KRB5_PROTOTYPE((krb5_context,
1678*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_keyblock *, krb5_int32 *));
1679*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_server_rcache
1680*7c478bd9Sstevel@tonic-gate     	KRB5_PROTOTYPE((krb5_context,
1681*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_data *, krb5_rcache *));
1682*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV_C krb5_build_principal_ext
1683*7c478bd9Sstevel@tonic-gate     	KRB5_STDARG_P((krb5_context, krb5_principal *, int, krb5_const char *, ...));
1684*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_build_principal
1685*7c478bd9Sstevel@tonic-gate     	KRB5_STDARG_P((krb5_context, krb5_principal *, int, krb5_const char *, ...));
1686*7c478bd9Sstevel@tonic-gate #ifdef va_start
1687*7c478bd9Sstevel@tonic-gate /* XXX depending on varargs include file defining va_start... */
1688*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_build_principal_va
1689*7c478bd9Sstevel@tonic-gate     	KRB5_PROTOTYPE((krb5_context,
1690*7c478bd9Sstevel@tonic-gate 		   krb5_principal *, int, krb5_const char *, va_list));
1691*7c478bd9Sstevel@tonic-gate #endif
1692*7c478bd9Sstevel@tonic-gate 
1693*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_425_conv_principal
1694*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1695*7c478bd9Sstevel@tonic-gate 		krb5_const char *name,
1696*7c478bd9Sstevel@tonic-gate 		krb5_const char *instance, krb5_const char *realm,
1697*7c478bd9Sstevel@tonic-gate 		krb5_principal *princ));
1698*7c478bd9Sstevel@tonic-gate 
1699*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_524_conv_principal
1700*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context context, krb5_const krb5_principal princ,
1701*7c478bd9Sstevel@tonic-gate 		char *name, char *inst, char *realm));
1702*7c478bd9Sstevel@tonic-gate 
1703*7c478bd9Sstevel@tonic-gate /* libkt.spec */
1704*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_register
1705*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1706*7c478bd9Sstevel@tonic-gate 		krb5_kt_ops * ));
1707*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_resolve
1708*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1709*7c478bd9Sstevel@tonic-gate 		krb5_const char *,
1710*7c478bd9Sstevel@tonic-gate 		krb5_keytab * ));
1711*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_default_name
1712*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1713*7c478bd9Sstevel@tonic-gate 		char *,
1714*7c478bd9Sstevel@tonic-gate 		int ));
1715*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_default
1716*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1717*7c478bd9Sstevel@tonic-gate 		krb5_keytab * ));
1718*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_free_entry
1719*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1720*7c478bd9Sstevel@tonic-gate 		krb5_keytab_entry * ));
1721*7c478bd9Sstevel@tonic-gate /* remove and add are functions, so that they can return NOWRITE
1722*7c478bd9Sstevel@tonic-gate    if not a writable keytab */
1723*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_remove_entry
1724*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1725*7c478bd9Sstevel@tonic-gate 		krb5_keytab,
1726*7c478bd9Sstevel@tonic-gate 		krb5_keytab_entry * ));
1727*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_add_entry
1728*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1729*7c478bd9Sstevel@tonic-gate 		krb5_keytab,
1730*7c478bd9Sstevel@tonic-gate 		krb5_keytab_entry * ));
1731*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_principal2salt
1732*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1733*7c478bd9Sstevel@tonic-gate 		   krb5_const_principal, krb5_data *));
1734*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_principal2salt_norealm
1735*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1736*7c478bd9Sstevel@tonic-gate 		   krb5_const_principal, krb5_data *));
1737*7c478bd9Sstevel@tonic-gate 
1738*7c478bd9Sstevel@tonic-gate /* librc.spec--see rcache.h */
1739*7c478bd9Sstevel@tonic-gate 
1740*7c478bd9Sstevel@tonic-gate /* libcc.spec */
1741*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_cc_resolve
1742*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1743*7c478bd9Sstevel@tonic-gate 		   const char *,
1744*7c478bd9Sstevel@tonic-gate 		   krb5_ccache * ));
1745*7c478bd9Sstevel@tonic-gate  const char * KRB5_CALLCONV krb5_cc_default_name
1746*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context));
1747*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_cc_set_default_name
1748*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, const char *));
1749*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_cc_default
1750*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1751*7c478bd9Sstevel@tonic-gate 		krb5_ccache *));
1752*7c478bd9Sstevel@tonic-gate  unsigned int KRB5_CALLCONV krb5_get_notification_message
1753*7c478bd9Sstevel@tonic-gate    KRB5_PROTOTYPE((void));
1754*7c478bd9Sstevel@tonic-gate 
1755*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_cc_copy_creds
1756*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context context,
1757*7c478bd9Sstevel@tonic-gate 			krb5_ccache incc,
1758*7c478bd9Sstevel@tonic-gate 			krb5_ccache outcc));
1759*7c478bd9Sstevel@tonic-gate 
1760*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_cc_generate_new
1761*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1762*7c478bd9Sstevel@tonic-gate 		   krb5_cc_ops *,
1763*7c478bd9Sstevel@tonic-gate 		   krb5_ccache * ));
1764*7c478bd9Sstevel@tonic-gate 
1765*7c478bd9Sstevel@tonic-gate /* chk_trans.c */
1766*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_check_transited_list
1767*7c478bd9Sstevel@tonic-gate     KRB5_PROTOTYPE((krb5_context,
1768*7c478bd9Sstevel@tonic-gate 		krb5_data *trans, const krb5_data *realm1,
1769*7c478bd9Sstevel@tonic-gate 		const krb5_data *realm2));
1770*7c478bd9Sstevel@tonic-gate 
1771*7c478bd9Sstevel@tonic-gate /* free_rtree.c */
1772*7c478bd9Sstevel@tonic-gate void krb5_free_realm_tree
1773*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1774*7c478bd9Sstevel@tonic-gate 		   krb5_principal *));
1775*7c478bd9Sstevel@tonic-gate 
1776*7c478bd9Sstevel@tonic-gate /* krb5_free.c */
1777*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_principal
1778*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_principal ));
1779*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_authenticator
1780*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_authenticator * ));
1781*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_authenticator_contents
1782*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_authenticator * ));
1783*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_addresses
1784*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_address * * ));
1785*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_address
1786*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_address * ));
1787*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_authdata
1788*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_authdata * * ));
1789*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_enc_tkt_part
1790*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_enc_tkt_part * ));
1791*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_ticket
1792*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_ticket * ));
1793*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_tickets
1794*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_ticket * * ));
1795*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_kdc_req
1796*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_kdc_req * ));
1797*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_kdc_rep
1798*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_kdc_rep * ));
1799*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_last_req
1800*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_last_req_entry * * ));
1801*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_enc_kdc_rep_part
1802*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_enc_kdc_rep_part * ));
1803*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_error
1804*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_error * ));
1805*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_ap_req
1806*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_ap_req * ));
1807*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_ap_rep
1808*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_ap_rep * ));
1809*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_safe
1810*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_safe * ));
1811*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_priv
1812*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_priv * ));
1813*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_priv_enc_part
1814*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_priv_enc_part * ));
1815*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_cred
1816*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_cred *));
1817*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_creds
1818*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_creds *));
1819*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_cred_contents
1820*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_creds *));
1821*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_cred_enc_part
1822*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_cred_enc_part *));
1823*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_checksum
1824*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_checksum *));
1825*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_checksum_contents
1826*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_checksum *));
1827*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_keyblock
1828*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_keyblock *));
1829*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_keyblock_contents
1830*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_keyblock *));
1831*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_pa_data
1832*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_pa_data * *));
1833*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_ap_rep_enc_part
1834*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_ap_rep_enc_part *));
1835*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_tkt_authent
1836*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_tkt_authent *));
1837*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_pwd_data
1838*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_pwd_data *));
1839*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_pwd_sequences
1840*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, passwd_phrase_element * *));
1841*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_data
1842*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_data *));
1843*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_data_contents
1844*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_data *));
1845*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_unparsed_name
1846*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, char *));
1847*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_cksumtypes
1848*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_cksumtype *));
1849*7c478bd9Sstevel@tonic-gate 
1850*7c478bd9Sstevel@tonic-gate /* From krb5/os but needed but by the outside world */
1851*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_us_timeofday
1852*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1853*7c478bd9Sstevel@tonic-gate 		   krb5_int32 *,
1854*7c478bd9Sstevel@tonic-gate 		   krb5_int32 * ));
1855*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_timeofday
1856*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1857*7c478bd9Sstevel@tonic-gate 		   krb5_int32 * ));
1858*7c478bd9Sstevel@tonic-gate 		 /* get all the addresses of this host */
1859*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_os_localaddr
1860*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1861*7c478bd9Sstevel@tonic-gate 		   krb5_address * * *));
1862*7c478bd9Sstevel@tonic-gate 
1863*7c478bd9Sstevel@tonic-gate int KRB5_CALLCONV foreach_localaddr
1864*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((void *,
1865*7c478bd9Sstevel@tonic-gate 		int (*pass1fn)(void *, struct sockaddr *),
1866*7c478bd9Sstevel@tonic-gate 		int (*betweenfn)(void *),
1867*7c478bd9Sstevel@tonic-gate 		int (*pass2fn)(void *, struct sockaddr *)));
1868*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_default_realm
1869*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1870*7c478bd9Sstevel@tonic-gate 		    char * * ));
1871*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_set_default_realm
1872*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1873*7c478bd9Sstevel@tonic-gate                    krb5_const char * ));
1874*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_default_realm
1875*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1876*7c478bd9Sstevel@tonic-gate 		   char * ));
1877*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_sname_to_principal
1878*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1879*7c478bd9Sstevel@tonic-gate 		krb5_const char *,
1880*7c478bd9Sstevel@tonic-gate 		   krb5_const char *,
1881*7c478bd9Sstevel@tonic-gate 		   krb5_int32,
1882*7c478bd9Sstevel@tonic-gate 		   krb5_principal *));
1883*7c478bd9Sstevel@tonic-gate 
1884*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_set_config_files
1885*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE ((krb5_context, krb5_const char * *));
1886*7c478bd9Sstevel@tonic-gate 
1887*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_secure_config_files
1888*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE ((krb5_context));
1889*7c478bd9Sstevel@tonic-gate 
1890*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_default_config_files
1891*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((char ***filenames));
1892*7c478bd9Sstevel@tonic-gate 
1893*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_config_files
1894*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((char **filenames));
1895*7c478bd9Sstevel@tonic-gate 
1896*7c478bd9Sstevel@tonic-gate #ifndef _KERNEL
1897*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_profile
1898*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, profile_t *));
1899*7c478bd9Sstevel@tonic-gate #endif
1900*7c478bd9Sstevel@tonic-gate 
1901*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_send_tgs
1902*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1903*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_flags,
1904*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_ticket_times *,
1905*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_enctype *,
1906*7c478bd9Sstevel@tonic-gate 		   krb5_const_principal,
1907*7c478bd9Sstevel@tonic-gate 		   krb5_address * krb5_const *,
1908*7c478bd9Sstevel@tonic-gate 		   krb5_authdata * krb5_const *,
1909*7c478bd9Sstevel@tonic-gate 		   krb5_pa_data * krb5_const *,
1910*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_data *,
1911*7c478bd9Sstevel@tonic-gate 		   krb5_creds *,
1912*7c478bd9Sstevel@tonic-gate 		   krb5_response * ));
1913*7c478bd9Sstevel@tonic-gate 
1914*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_decode_kdc_rep
1915*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1916*7c478bd9Sstevel@tonic-gate 		   krb5_data *,
1917*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_keyblock *,
1918*7c478bd9Sstevel@tonic-gate 		   krb5_kdc_rep ** ));
1919*7c478bd9Sstevel@tonic-gate 
1920*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_rd_req
1921*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1922*7c478bd9Sstevel@tonic-gate 		krb5_auth_context *,
1923*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_data *,
1924*7c478bd9Sstevel@tonic-gate 		krb5_const_principal,
1925*7c478bd9Sstevel@tonic-gate 		krb5_keytab,
1926*7c478bd9Sstevel@tonic-gate 		krb5_flags *,
1927*7c478bd9Sstevel@tonic-gate 		krb5_ticket * *));
1928*7c478bd9Sstevel@tonic-gate 
1929*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_rd_req_decoded
1930*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1931*7c478bd9Sstevel@tonic-gate 		   krb5_auth_context *,
1932*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_ap_req *,
1933*7c478bd9Sstevel@tonic-gate 		   krb5_const_principal,
1934*7c478bd9Sstevel@tonic-gate 		   krb5_keytab,
1935*7c478bd9Sstevel@tonic-gate 		   krb5_flags *,
1936*7c478bd9Sstevel@tonic-gate 		   krb5_ticket **));
1937*7c478bd9Sstevel@tonic-gate 
1938*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_rd_req_decoded_anyflag
1939*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1940*7c478bd9Sstevel@tonic-gate 		   krb5_auth_context *,
1941*7c478bd9Sstevel@tonic-gate 		   krb5_const krb5_ap_req *,
1942*7c478bd9Sstevel@tonic-gate 		   krb5_const_principal,
1943*7c478bd9Sstevel@tonic-gate 		   krb5_keytab,
1944*7c478bd9Sstevel@tonic-gate 		   krb5_flags *,
1945*7c478bd9Sstevel@tonic-gate 		   krb5_ticket **));
1946*7c478bd9Sstevel@tonic-gate 
1947*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_read_service_key
1948*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1949*7c478bd9Sstevel@tonic-gate 		krb5_pointer,
1950*7c478bd9Sstevel@tonic-gate 		krb5_principal,
1951*7c478bd9Sstevel@tonic-gate 		krb5_kvno,
1952*7c478bd9Sstevel@tonic-gate 		krb5_enctype,
1953*7c478bd9Sstevel@tonic-gate 		krb5_keyblock * *));
1954*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_safe
1955*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1956*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
1957*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_data *,
1958*7c478bd9Sstevel@tonic-gate 		krb5_data *,
1959*7c478bd9Sstevel@tonic-gate 		krb5_replay_data *));
1960*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_priv
1961*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1962*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
1963*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_data *,
1964*7c478bd9Sstevel@tonic-gate 		krb5_data *,
1965*7c478bd9Sstevel@tonic-gate 		krb5_replay_data *));
1966*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_cc_register
1967*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1968*7c478bd9Sstevel@tonic-gate 		krb5_cc_ops *,
1969*7c478bd9Sstevel@tonic-gate 		krb5_boolean ));
1970*7c478bd9Sstevel@tonic-gate 
1971*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_sendauth
1972*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1973*7c478bd9Sstevel@tonic-gate 		krb5_auth_context *,
1974*7c478bd9Sstevel@tonic-gate 		krb5_pointer,
1975*7c478bd9Sstevel@tonic-gate 		char *,
1976*7c478bd9Sstevel@tonic-gate 		krb5_principal,
1977*7c478bd9Sstevel@tonic-gate 		krb5_principal,
1978*7c478bd9Sstevel@tonic-gate 		krb5_flags,
1979*7c478bd9Sstevel@tonic-gate 		krb5_data *,
1980*7c478bd9Sstevel@tonic-gate 		krb5_creds *,
1981*7c478bd9Sstevel@tonic-gate 		krb5_ccache,
1982*7c478bd9Sstevel@tonic-gate 		krb5_error * *,
1983*7c478bd9Sstevel@tonic-gate 		krb5_ap_rep_enc_part * *,
1984*7c478bd9Sstevel@tonic-gate 		krb5_creds * *));
1985*7c478bd9Sstevel@tonic-gate 
1986*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_recvauth
1987*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1988*7c478bd9Sstevel@tonic-gate 		krb5_auth_context *,
1989*7c478bd9Sstevel@tonic-gate 		krb5_pointer,
1990*7c478bd9Sstevel@tonic-gate 		char *,
1991*7c478bd9Sstevel@tonic-gate 		krb5_principal,
1992*7c478bd9Sstevel@tonic-gate 		krb5_int32,
1993*7c478bd9Sstevel@tonic-gate 		krb5_keytab,
1994*7c478bd9Sstevel@tonic-gate 		krb5_ticket * *));
1995*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_recvauth_version
1996*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
1997*7c478bd9Sstevel@tonic-gate 		krb5_auth_context *,
1998*7c478bd9Sstevel@tonic-gate 		krb5_pointer,
1999*7c478bd9Sstevel@tonic-gate 		krb5_principal,
2000*7c478bd9Sstevel@tonic-gate 		krb5_int32,
2001*7c478bd9Sstevel@tonic-gate 		krb5_keytab,
2002*7c478bd9Sstevel@tonic-gate 		krb5_ticket * *,
2003*7c478bd9Sstevel@tonic-gate 		krb5_data *));
2004*7c478bd9Sstevel@tonic-gate 
2005*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_walk_realm_tree
2006*7c478bd9Sstevel@tonic-gate     	KRB5_PROTOTYPE((krb5_context,
2007*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_data *,
2008*7c478bd9Sstevel@tonic-gate 		krb5_const krb5_data *,
2009*7c478bd9Sstevel@tonic-gate 		krb5_principal **,
2010*7c478bd9Sstevel@tonic-gate 		int));
2011*7c478bd9Sstevel@tonic-gate 
2012*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_ncred
2013*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2014*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2015*7c478bd9Sstevel@tonic-gate 		krb5_creds * *,
2016*7c478bd9Sstevel@tonic-gate 		krb5_data * *,
2017*7c478bd9Sstevel@tonic-gate 		krb5_replay_data *));
2018*7c478bd9Sstevel@tonic-gate 
2019*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_1cred
2020*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2021*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2022*7c478bd9Sstevel@tonic-gate 		krb5_creds *,
2023*7c478bd9Sstevel@tonic-gate 		krb5_data * *,
2024*7c478bd9Sstevel@tonic-gate 		krb5_replay_data *));
2025*7c478bd9Sstevel@tonic-gate 
2026*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_rd_cred
2027*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2028*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2029*7c478bd9Sstevel@tonic-gate 		krb5_data *,
2030*7c478bd9Sstevel@tonic-gate 		krb5_creds * * *,
2031*7c478bd9Sstevel@tonic-gate 		krb5_replay_data *));
2032*7c478bd9Sstevel@tonic-gate 
2033*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_fwd_tgt_creds
2034*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2035*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2036*7c478bd9Sstevel@tonic-gate 		char *,
2037*7c478bd9Sstevel@tonic-gate 		krb5_principal,
2038*7c478bd9Sstevel@tonic-gate 		krb5_principal,
2039*7c478bd9Sstevel@tonic-gate 		krb5_ccache,
2040*7c478bd9Sstevel@tonic-gate 		int forwardable,
2041*7c478bd9Sstevel@tonic-gate 		krb5_data *));
2042*7c478bd9Sstevel@tonic-gate 
2043*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_init
2044*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2045*7c478bd9Sstevel@tonic-gate 		krb5_auth_context *));
2046*7c478bd9Sstevel@tonic-gate 
2047*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_free
2048*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2049*7c478bd9Sstevel@tonic-gate 		krb5_auth_context));
2050*7c478bd9Sstevel@tonic-gate 
2051*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_setflags
2052*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2053*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2054*7c478bd9Sstevel@tonic-gate 		krb5_int32));
2055*7c478bd9Sstevel@tonic-gate 
2056*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getflags
2057*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2058*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2059*7c478bd9Sstevel@tonic-gate 		krb5_int32 *));
2060*7c478bd9Sstevel@tonic-gate 
2061*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
2062*7c478bd9Sstevel@tonic-gate krb5_auth_con_set_checksum_func (krb5_context, krb5_auth_context,
2063*7c478bd9Sstevel@tonic-gate                                  krb5_mk_req_checksum_func, void *);
2064*7c478bd9Sstevel@tonic-gate 
2065*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
2066*7c478bd9Sstevel@tonic-gate krb5_auth_con_get_checksum_func( krb5_context, krb5_auth_context,
2067*7c478bd9Sstevel@tonic-gate                                  krb5_mk_req_checksum_func *, void **);
2068*7c478bd9Sstevel@tonic-gate 
2069*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_auth_con_setaddrs
2070*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2071*7c478bd9Sstevel@tonic-gate 		   krb5_auth_context,
2072*7c478bd9Sstevel@tonic-gate 		   krb5_address *,
2073*7c478bd9Sstevel@tonic-gate 		   krb5_address *));
2074*7c478bd9Sstevel@tonic-gate 
2075*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_auth_con_getaddrs
2076*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2077*7c478bd9Sstevel@tonic-gate 		   krb5_auth_context,
2078*7c478bd9Sstevel@tonic-gate 		   krb5_address **,
2079*7c478bd9Sstevel@tonic-gate 		   krb5_address **));
2080*7c478bd9Sstevel@tonic-gate 
2081*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_auth_con_setports
2082*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2083*7c478bd9Sstevel@tonic-gate 		   krb5_auth_context,
2084*7c478bd9Sstevel@tonic-gate 		   krb5_address *,
2085*7c478bd9Sstevel@tonic-gate 		   krb5_address *));
2086*7c478bd9Sstevel@tonic-gate 
2087*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_setuseruserkey
2088*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2089*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2090*7c478bd9Sstevel@tonic-gate 		krb5_keyblock *));
2091*7c478bd9Sstevel@tonic-gate 
2092*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getkey
2093*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2094*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2095*7c478bd9Sstevel@tonic-gate 		krb5_keyblock **));
2096*7c478bd9Sstevel@tonic-gate 
2097*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getsendsubkey(
2098*7c478bd9Sstevel@tonic-gate     krb5_context, krb5_auth_context, krb5_keyblock **);
2099*7c478bd9Sstevel@tonic-gate 
2100*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getrecvsubkey(
2101*7c478bd9Sstevel@tonic-gate     krb5_context, krb5_auth_context, krb5_keyblock **);
2102*7c478bd9Sstevel@tonic-gate 
2103*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_setsendsubkey(
2104*7c478bd9Sstevel@tonic-gate     krb5_context, krb5_auth_context, krb5_keyblock *);
2105*7c478bd9Sstevel@tonic-gate 
2106*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_setrecvsubkey(
2107*7c478bd9Sstevel@tonic-gate     krb5_context, krb5_auth_context, krb5_keyblock *);
2108*7c478bd9Sstevel@tonic-gate 
2109*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getlocalsubkey
2110*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2111*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2112*7c478bd9Sstevel@tonic-gate 		krb5_keyblock * *));
2113*7c478bd9Sstevel@tonic-gate 
2114*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_set_req_cksumtype
2115*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2116*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2117*7c478bd9Sstevel@tonic-gate 		krb5_cksumtype));
2118*7c478bd9Sstevel@tonic-gate 
2119*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_auth_con_set_safe_cksumtype
2120*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2121*7c478bd9Sstevel@tonic-gate 		   krb5_auth_context,
2122*7c478bd9Sstevel@tonic-gate 		   krb5_cksumtype));
2123*7c478bd9Sstevel@tonic-gate 
2124*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_auth_con_getcksumtype
2125*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2126*7c478bd9Sstevel@tonic-gate 		   krb5_auth_context,
2127*7c478bd9Sstevel@tonic-gate 		   krb5_cksumtype *));
2128*7c478bd9Sstevel@tonic-gate 
2129*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getlocalseqnumber
2130*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2131*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2132*7c478bd9Sstevel@tonic-gate 		krb5_int32 *));
2133*7c478bd9Sstevel@tonic-gate 
2134*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getremoteseqnumber
2135*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2136*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2137*7c478bd9Sstevel@tonic-gate 		krb5_int32 *));
2138*7c478bd9Sstevel@tonic-gate 
2139*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_auth_con_initivector
2140*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2141*7c478bd9Sstevel@tonic-gate 		   krb5_auth_context));
2142*7c478bd9Sstevel@tonic-gate 
2143*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_auth_con_setivector
2144*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2145*7c478bd9Sstevel@tonic-gate 		   krb5_auth_context,
2146*7c478bd9Sstevel@tonic-gate 		   krb5_pointer));
2147*7c478bd9Sstevel@tonic-gate 
2148*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_auth_con_getivector
2149*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2150*7c478bd9Sstevel@tonic-gate 		   krb5_auth_context,
2151*7c478bd9Sstevel@tonic-gate 		   krb5_pointer *));
2152*7c478bd9Sstevel@tonic-gate 
2153*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_setrcache
2154*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2155*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2156*7c478bd9Sstevel@tonic-gate 		krb5_rcache));
2157*7c478bd9Sstevel@tonic-gate 
2158*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_auth_con_getrcache
2159*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2160*7c478bd9Sstevel@tonic-gate 		   krb5_auth_context,
2161*7c478bd9Sstevel@tonic-gate 		   krb5_rcache *));
2162*7c478bd9Sstevel@tonic-gate 
2163*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getauthenticator
2164*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2165*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2166*7c478bd9Sstevel@tonic-gate 		krb5_authenticator * *));
2167*7c478bd9Sstevel@tonic-gate 
2168*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getremotesubkey
2169*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2170*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2171*7c478bd9Sstevel@tonic-gate 		krb5_keyblock * *));
2172*7c478bd9Sstevel@tonic-gate 
2173*7c478bd9Sstevel@tonic-gate #define KRB5_REALM_BRANCH_CHAR '.'
2174*7c478bd9Sstevel@tonic-gate 
2175*7c478bd9Sstevel@tonic-gate /*
2176*7c478bd9Sstevel@tonic-gate  * end "func-proto.h"
2177*7c478bd9Sstevel@tonic-gate  */
2178*7c478bd9Sstevel@tonic-gate 
2179*7c478bd9Sstevel@tonic-gate /*
2180*7c478bd9Sstevel@tonic-gate  * begin stuff from libos.h
2181*7c478bd9Sstevel@tonic-gate  */
2182*7c478bd9Sstevel@tonic-gate 
2183*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_read_password
2184*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2185*7c478bd9Sstevel@tonic-gate 		const char *,
2186*7c478bd9Sstevel@tonic-gate 		const char *,
2187*7c478bd9Sstevel@tonic-gate 		char *,
2188*7c478bd9Sstevel@tonic-gate 		unsigned int * ));
2189*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_aname_to_localname
2190*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2191*7c478bd9Sstevel@tonic-gate 		krb5_const_principal,
2192*7c478bd9Sstevel@tonic-gate 		const int,
2193*7c478bd9Sstevel@tonic-gate 		char * ));
2194*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_host_realm
2195*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2196*7c478bd9Sstevel@tonic-gate 		const char *,
2197*7c478bd9Sstevel@tonic-gate 		char * * * ));
2198*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_free_host_realm
2199*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2200*7c478bd9Sstevel@tonic-gate 		char * const * ));
2201*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_realm_domain
2202*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2203*7c478bd9Sstevel@tonic-gate 		const char *,
2204*7c478bd9Sstevel@tonic-gate 		char ** ));
2205*7c478bd9Sstevel@tonic-gate  krb5_boolean KRB5_CALLCONV krb5_kuserok
2206*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2207*7c478bd9Sstevel@tonic-gate 		krb5_principal, const char *));
2208*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_genaddrs
2209*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2210*7c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2211*7c478bd9Sstevel@tonic-gate 		int, int));
2212*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_gen_portaddr
2213*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2214*7c478bd9Sstevel@tonic-gate 		const krb5_address *,
2215*7c478bd9Sstevel@tonic-gate 		krb5_const_pointer,
2216*7c478bd9Sstevel@tonic-gate 		krb5_address **));
2217*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_make_fulladdr
2218*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context,
2219*7c478bd9Sstevel@tonic-gate 		krb5_address *,
2220*7c478bd9Sstevel@tonic-gate 		krb5_address *,
2221*7c478bd9Sstevel@tonic-gate 		krb5_address *));
2222*7c478bd9Sstevel@tonic-gate 
2223*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_os_hostaddr
2224*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, const char *, krb5_address ***));
2225*7c478bd9Sstevel@tonic-gate 
2226*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_set_real_time
2227*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_int32, krb5_int32));
2228*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_set_debugging_time
2229*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_int32, krb5_int32));
2230*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_use_natural_time
2231*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context));
2232*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_get_time_offsets
2233*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_int32 *, krb5_int32 *));
2234*7c478bd9Sstevel@tonic-gate krb5_error_code krb5_set_time_offsets
2235*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context, krb5_int32, krb5_int32));
2236*7c478bd9Sstevel@tonic-gate 
2237*7c478bd9Sstevel@tonic-gate /* str_conv.c */
2238*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_string_to_enctype
2239*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((char *, krb5_enctype *));
2240*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_string_to_salttype
2241*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((char *, krb5_int32 *));
2242*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_string_to_cksumtype
2243*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((char *, krb5_cksumtype *));
2244*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_string_to_timestamp
2245*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((char *, krb5_timestamp *));
2246*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_string_to_deltat
2247*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((char *, krb5_deltat *));
2248*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_enctype_to_string
2249*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_enctype, char *, size_t));
2250*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_salttype_to_string
2251*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_int32, char *, size_t));
2252*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_cksumtype_to_string
2253*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_cksumtype, char *, size_t));
2254*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_timestamp_to_string
2255*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_timestamp, char *, size_t));
2256*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_timestamp_to_sfstring
2257*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_timestamp, char *, size_t, char *));
2258*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_deltat_to_string
2259*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_deltat, char *, size_t));
2260*7c478bd9Sstevel@tonic-gate 
2261*7c478bd9Sstevel@tonic-gate /*
2262*7c478bd9Sstevel@tonic-gate  * end stuff from libos.h
2263*7c478bd9Sstevel@tonic-gate  */
2264*7c478bd9Sstevel@tonic-gate 
2265*7c478bd9Sstevel@tonic-gate /*
2266*7c478bd9Sstevel@tonic-gate  * begin "k5-free.h"
2267*7c478bd9Sstevel@tonic-gate  */
2268*7c478bd9Sstevel@tonic-gate 
2269*7c478bd9Sstevel@tonic-gate /* to keep lint happy */
2270*7c478bd9Sstevel@tonic-gate #ifdef _KERNEL
2271*7c478bd9Sstevel@tonic-gate #define krb5_xfree_wrap(val,n) kmem_free((char *)(val),n)
2272*7c478bd9Sstevel@tonic-gate #else
2273*7c478bd9Sstevel@tonic-gate #define krb5_xfree_wrap(val,n) free((char *)(val))
2274*7c478bd9Sstevel@tonic-gate #define krb5_xfree(val) free((char *)(val))
2275*7c478bd9Sstevel@tonic-gate #endif
2276*7c478bd9Sstevel@tonic-gate 
2277*7c478bd9Sstevel@tonic-gate /*
2278*7c478bd9Sstevel@tonic-gate  * end "k5-free.h"
2279*7c478bd9Sstevel@tonic-gate  */
2280*7c478bd9Sstevel@tonic-gate 
2281*7c478bd9Sstevel@tonic-gate /* The name of the Kerberos ticket granting service... and its size */
2282*7c478bd9Sstevel@tonic-gate #define	KRB5_TGS_NAME		"krbtgt"
2283*7c478bd9Sstevel@tonic-gate #define KRB5_TGS_NAME_SIZE	6
2284*7c478bd9Sstevel@tonic-gate 
2285*7c478bd9Sstevel@tonic-gate /* flags for recvauth */
2286*7c478bd9Sstevel@tonic-gate #define KRB5_RECVAUTH_SKIP_VERSION	0x0001
2287*7c478bd9Sstevel@tonic-gate #define KRB5_RECVAUTH_BADAUTHVERS	0x0002
2288*7c478bd9Sstevel@tonic-gate 
2289*7c478bd9Sstevel@tonic-gate /* initial ticket api functions */
2290*7c478bd9Sstevel@tonic-gate 
2291*7c478bd9Sstevel@tonic-gate typedef struct _krb5_prompt {
2292*7c478bd9Sstevel@tonic-gate     char *prompt;
2293*7c478bd9Sstevel@tonic-gate     int hidden;
2294*7c478bd9Sstevel@tonic-gate     krb5_data *reply;
2295*7c478bd9Sstevel@tonic-gate } krb5_prompt;
2296*7c478bd9Sstevel@tonic-gate 
2297*7c478bd9Sstevel@tonic-gate typedef krb5_error_code (KRB5_CALLCONV *krb5_prompter_fct)(krb5_context context,
2298*7c478bd9Sstevel@tonic-gate 					     void *data,
2299*7c478bd9Sstevel@tonic-gate 					     const char *name,
2300*7c478bd9Sstevel@tonic-gate 					     const char *banner,
2301*7c478bd9Sstevel@tonic-gate 					     int num_prompts,
2302*7c478bd9Sstevel@tonic-gate 					     krb5_prompt prompts[]);
2303*7c478bd9Sstevel@tonic-gate 
2304*7c478bd9Sstevel@tonic-gate 
2305*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
2306*7c478bd9Sstevel@tonic-gate krb5_prompter_posix
2307*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_context context,
2308*7c478bd9Sstevel@tonic-gate 		void *data,
2309*7c478bd9Sstevel@tonic-gate 		const char *name,
2310*7c478bd9Sstevel@tonic-gate 		const char *banner,
2311*7c478bd9Sstevel@tonic-gate 		int num_prompts,
2312*7c478bd9Sstevel@tonic-gate 		krb5_prompt prompts[]));
2313*7c478bd9Sstevel@tonic-gate 
2314*7c478bd9Sstevel@tonic-gate typedef struct _krb5_get_init_creds_opt {
2315*7c478bd9Sstevel@tonic-gate     krb5_flags flags;
2316*7c478bd9Sstevel@tonic-gate     krb5_deltat tkt_life;
2317*7c478bd9Sstevel@tonic-gate     krb5_deltat renew_life;
2318*7c478bd9Sstevel@tonic-gate     int forwardable;
2319*7c478bd9Sstevel@tonic-gate     int proxiable;
2320*7c478bd9Sstevel@tonic-gate     krb5_enctype *etype_list;
2321*7c478bd9Sstevel@tonic-gate     int etype_list_length;
2322*7c478bd9Sstevel@tonic-gate     krb5_address **address_list;
2323*7c478bd9Sstevel@tonic-gate     krb5_preauthtype *preauth_list;
2324*7c478bd9Sstevel@tonic-gate     int preauth_list_length;
2325*7c478bd9Sstevel@tonic-gate     krb5_data *salt;
2326*7c478bd9Sstevel@tonic-gate } krb5_get_init_creds_opt;
2327*7c478bd9Sstevel@tonic-gate 
2328*7c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_TKT_LIFE	0x0001
2329*7c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_RENEW_LIFE	0x0002
2330*7c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_FORWARDABLE	0x0004
2331*7c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_PROXIABLE	0x0008
2332*7c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_ETYPE_LIST	0x0010
2333*7c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_ADDRESS_LIST	0x0020
2334*7c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_PREAUTH_LIST	0x0040
2335*7c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_SALT		0x0080
2336*7c478bd9Sstevel@tonic-gate 
2337*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
2338*7c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_init
2339*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_get_init_creds_opt *opt));
2340*7c478bd9Sstevel@tonic-gate 
2341*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
2342*7c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_tkt_life
2343*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_get_init_creds_opt *opt,
2344*7c478bd9Sstevel@tonic-gate 		krb5_deltat tkt_life));
2345*7c478bd9Sstevel@tonic-gate 
2346*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
2347*7c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_renew_life
2348*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_get_init_creds_opt *opt,
2349*7c478bd9Sstevel@tonic-gate 		krb5_deltat renew_life));
2350*7c478bd9Sstevel@tonic-gate 
2351*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
2352*7c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_forwardable
2353*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_get_init_creds_opt *opt,
2354*7c478bd9Sstevel@tonic-gate 		int forwardable));
2355*7c478bd9Sstevel@tonic-gate 
2356*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
2357*7c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_proxiable
2358*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_get_init_creds_opt *opt,
2359*7c478bd9Sstevel@tonic-gate 		int proxiable));
2360*7c478bd9Sstevel@tonic-gate 
2361*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
2362*7c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_etype_list
2363*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_get_init_creds_opt *opt,
2364*7c478bd9Sstevel@tonic-gate 		krb5_enctype *etype_list,
2365*7c478bd9Sstevel@tonic-gate 		int etype_list_length));
2366*7c478bd9Sstevel@tonic-gate 
2367*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
2368*7c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_address_list
2369*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_get_init_creds_opt *opt,
2370*7c478bd9Sstevel@tonic-gate 		krb5_address **addresses));
2371*7c478bd9Sstevel@tonic-gate 
2372*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
2373*7c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_preauth_list
2374*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_get_init_creds_opt *opt,
2375*7c478bd9Sstevel@tonic-gate 		krb5_preauthtype *preauth_list,
2376*7c478bd9Sstevel@tonic-gate 		int preauth_list_length));
2377*7c478bd9Sstevel@tonic-gate 
2378*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
2379*7c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_salt
2380*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_get_init_creds_opt *opt,
2381*7c478bd9Sstevel@tonic-gate 		krb5_data *salt));
2382*7c478bd9Sstevel@tonic-gate 
2383*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
2384*7c478bd9Sstevel@tonic-gate krb5_get_init_creds_password
2385*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_context context,
2386*7c478bd9Sstevel@tonic-gate 		krb5_creds *creds,
2387*7c478bd9Sstevel@tonic-gate 		krb5_principal client,
2388*7c478bd9Sstevel@tonic-gate 		char *password,
2389*7c478bd9Sstevel@tonic-gate 		krb5_prompter_fct prompter,
2390*7c478bd9Sstevel@tonic-gate 		void *data,
2391*7c478bd9Sstevel@tonic-gate 		krb5_deltat start_time,
2392*7c478bd9Sstevel@tonic-gate 		char *in_tkt_service,
2393*7c478bd9Sstevel@tonic-gate 		krb5_get_init_creds_opt *options));
2394*7c478bd9Sstevel@tonic-gate 
2395*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
2396*7c478bd9Sstevel@tonic-gate krb5_get_init_creds_keytab
2397*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_context context,
2398*7c478bd9Sstevel@tonic-gate 		krb5_creds *creds,
2399*7c478bd9Sstevel@tonic-gate 		krb5_principal client,
2400*7c478bd9Sstevel@tonic-gate 		krb5_keytab arg_keytab,
2401*7c478bd9Sstevel@tonic-gate 		krb5_deltat start_time,
2402*7c478bd9Sstevel@tonic-gate 		char *in_tkt_service,
2403*7c478bd9Sstevel@tonic-gate 		krb5_get_init_creds_opt *options));
2404*7c478bd9Sstevel@tonic-gate 
2405*7c478bd9Sstevel@tonic-gate typedef struct _krb5_verify_init_creds_opt {
2406*7c478bd9Sstevel@tonic-gate     krb5_flags flags;
2407*7c478bd9Sstevel@tonic-gate     int ap_req_nofail;
2408*7c478bd9Sstevel@tonic-gate } krb5_verify_init_creds_opt;
2409*7c478bd9Sstevel@tonic-gate 
2410*7c478bd9Sstevel@tonic-gate #define KRB5_VERIFY_INIT_CREDS_OPT_AP_REQ_NOFAIL        0x0001
2411*7c478bd9Sstevel@tonic-gate 
2412*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
2413*7c478bd9Sstevel@tonic-gate krb5_verify_init_creds_opt_init
2414*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_verify_init_creds_opt *options));
2415*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
2416*7c478bd9Sstevel@tonic-gate krb5_verify_init_creds_opt_set_ap_req_nofail
2417*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_verify_init_creds_opt *options,
2418*7c478bd9Sstevel@tonic-gate 		int ap_req_nofail));
2419*7c478bd9Sstevel@tonic-gate 
2420*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
2421*7c478bd9Sstevel@tonic-gate krb5_verify_init_creds
2422*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_context context,
2423*7c478bd9Sstevel@tonic-gate 		krb5_creds *creds,
2424*7c478bd9Sstevel@tonic-gate 		krb5_principal ap_req_server,
2425*7c478bd9Sstevel@tonic-gate 		krb5_keytab ap_req_keytab,
2426*7c478bd9Sstevel@tonic-gate 		krb5_ccache *ccache,
2427*7c478bd9Sstevel@tonic-gate 		krb5_verify_init_creds_opt *options));
2428*7c478bd9Sstevel@tonic-gate 
2429*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
2430*7c478bd9Sstevel@tonic-gate krb5_get_validated_creds
2431*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_context context,
2432*7c478bd9Sstevel@tonic-gate 		krb5_creds *creds,
2433*7c478bd9Sstevel@tonic-gate 		krb5_principal client,
2434*7c478bd9Sstevel@tonic-gate 		krb5_ccache ccache,
2435*7c478bd9Sstevel@tonic-gate 		char *in_tkt_service));
2436*7c478bd9Sstevel@tonic-gate 
2437*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
2438*7c478bd9Sstevel@tonic-gate krb5_get_renewed_creds
2439*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_context context,
2440*7c478bd9Sstevel@tonic-gate 		krb5_creds *creds,
2441*7c478bd9Sstevel@tonic-gate 		krb5_principal client,
2442*7c478bd9Sstevel@tonic-gate 		krb5_ccache ccache,
2443*7c478bd9Sstevel@tonic-gate 		char *in_tkt_service));
2444*7c478bd9Sstevel@tonic-gate 
2445*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
2446*7c478bd9Sstevel@tonic-gate krb5_decode_ticket
2447*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((const krb5_data *code,
2448*7c478bd9Sstevel@tonic-gate 		krb5_ticket **rep));
2449*7c478bd9Sstevel@tonic-gate 
2450*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
2451*7c478bd9Sstevel@tonic-gate krb5_appdefault_string
2452*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_context context,
2453*7c478bd9Sstevel@tonic-gate 		const char *appname,
2454*7c478bd9Sstevel@tonic-gate 		const krb5_data *realm,
2455*7c478bd9Sstevel@tonic-gate 		const char *option,
2456*7c478bd9Sstevel@tonic-gate 		const char *default_value,
2457*7c478bd9Sstevel@tonic-gate 		char ** ret_value));
2458*7c478bd9Sstevel@tonic-gate 
2459*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
2460*7c478bd9Sstevel@tonic-gate krb5_appdefault_boolean
2461*7c478bd9Sstevel@tonic-gate KRB5_PROTOTYPE((krb5_context context,
2462*7c478bd9Sstevel@tonic-gate 		const char *appname,
2463*7c478bd9Sstevel@tonic-gate 		const krb5_data *realm,
2464*7c478bd9Sstevel@tonic-gate 		const char *option,
2465*7c478bd9Sstevel@tonic-gate 		int default_value,
2466*7c478bd9Sstevel@tonic-gate 		int *ret_value));
2467*7c478bd9Sstevel@tonic-gate 
2468*7c478bd9Sstevel@tonic-gate /*
2469*7c478bd9Sstevel@tonic-gate  * The realm iterator functions
2470*7c478bd9Sstevel@tonic-gate  */
2471*7c478bd9Sstevel@tonic-gate 
2472*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_realm_iterator_create
2473*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context context, void **iter_p));
2474*7c478bd9Sstevel@tonic-gate 
2475*7c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_realm_iterator
2476*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context context, void **iter_p, char **ret_realm));
2477*7c478bd9Sstevel@tonic-gate 
2478*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_realm_iterator_free
2479*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context context, void **iter_p));
2480*7c478bd9Sstevel@tonic-gate 
2481*7c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_realm_string
2482*7c478bd9Sstevel@tonic-gate 	KRB5_PROTOTYPE((krb5_context context, char *str));
2483*7c478bd9Sstevel@tonic-gate 
2484*7c478bd9Sstevel@tonic-gate /*
2485*7c478bd9Sstevel@tonic-gate  * Prompter enhancements
2486*7c478bd9Sstevel@tonic-gate  */
2487*7c478bd9Sstevel@tonic-gate 
2488*7c478bd9Sstevel@tonic-gate #define KRB5_PROMPT_TYPE_PASSWORD		0x1
2489*7c478bd9Sstevel@tonic-gate #define KRB5_PROMPT_TYPE_NEW_PASSWORD		0x2
2490*7c478bd9Sstevel@tonic-gate #define KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN	0x3
2491*7c478bd9Sstevel@tonic-gate #define KRB5_PROMPT_TYPE_PREAUTH		0x4
2492*7c478bd9Sstevel@tonic-gate 
2493*7c478bd9Sstevel@tonic-gate typedef krb5_int32 krb5_prompt_type;
2494*7c478bd9Sstevel@tonic-gate 
2495*7c478bd9Sstevel@tonic-gate krb5_prompt_type* KRB5_CALLCONV krb5_get_prompt_types
2496*7c478bd9Sstevel@tonic-gate 	(krb5_context context);
2497*7c478bd9Sstevel@tonic-gate 
2498*7c478bd9Sstevel@tonic-gate #endif /* KRB5_GENERAL__ */
2499*7c478bd9Sstevel@tonic-gate 
2500*7c478bd9Sstevel@tonic-gate 
2501*7c478bd9Sstevel@tonic-gate /*
2502*7c478bd9Sstevel@tonic-gate  * krb5_err.h:
2503*7c478bd9Sstevel@tonic-gate  * This file is automatically generated; please do not edit it.
2504*7c478bd9Sstevel@tonic-gate  */
2505*7c478bd9Sstevel@tonic-gate 
2506*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_NONE                         (-1765328384L)
2507*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_NAME_EXP                     (-1765328383L)
2508*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_SERVICE_EXP                  (-1765328382L)
2509*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_BAD_PVNO                     (-1765328381L)
2510*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_C_OLD_MAST_KVNO              (-1765328380L)
2511*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_S_OLD_MAST_KVNO              (-1765328379L)
2512*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN          (-1765328378L)
2513*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN          (-1765328377L)
2514*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_PRINCIPAL_NOT_UNIQUE         (-1765328376L)
2515*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_NULL_KEY                     (-1765328375L)
2516*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_CANNOT_POSTDATE              (-1765328374L)
2517*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_NEVER_VALID                  (-1765328373L)
2518*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_POLICY                       (-1765328372L)
2519*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_BADOPTION                    (-1765328371L)
2520*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_ETYPE_NOSUPP                 (-1765328370L)
2521*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_SUMTYPE_NOSUPP               (-1765328369L)
2522*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_PADATA_TYPE_NOSUPP           (-1765328368L)
2523*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_TRTYPE_NOSUPP                (-1765328367L)
2524*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_CLIENT_REVOKED               (-1765328366L)
2525*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_SERVICE_REVOKED              (-1765328365L)
2526*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_TGT_REVOKED                  (-1765328364L)
2527*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_CLIENT_NOTYET                (-1765328363L)
2528*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_SERVICE_NOTYET               (-1765328362L)
2529*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_KEY_EXP                      (-1765328361L)
2530*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_PREAUTH_FAILED               (-1765328360L)
2531*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_PREAUTH_REQUIRED             (-1765328359L)
2532*7c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_SERVER_NOMATCH               (-1765328358L)
2533*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_27                         (-1765328357L)
2534*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_28                         (-1765328356L)
2535*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_29                         (-1765328355L)
2536*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_30                         (-1765328354L)
2537*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BAD_INTEGRITY             (-1765328353L)
2538*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_TKT_EXPIRED               (-1765328352L)
2539*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_TKT_NYV                   (-1765328351L)
2540*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_REPEAT                    (-1765328350L)
2541*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_NOT_US                    (-1765328349L)
2542*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BADMATCH                  (-1765328348L)
2543*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_SKEW                      (-1765328347L)
2544*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BADADDR                   (-1765328346L)
2545*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BADVERSION                (-1765328345L)
2546*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_MSG_TYPE                  (-1765328344L)
2547*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_MODIFIED                  (-1765328343L)
2548*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BADORDER                  (-1765328342L)
2549*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_ILL_CR_TKT                (-1765328341L)
2550*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BADKEYVER                 (-1765328340L)
2551*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_NOKEY                     (-1765328339L)
2552*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_MUT_FAIL                  (-1765328338L)
2553*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BADDIRECTION              (-1765328337L)
2554*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_METHOD                    (-1765328336L)
2555*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BADSEQ                    (-1765328335L)
2556*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_INAPP_CKSUM               (-1765328334L)
2557*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_51                         (-1765328333L)
2558*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_52                         (-1765328332L)
2559*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_53                         (-1765328331L)
2560*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_54                         (-1765328330L)
2561*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_55                         (-1765328329L)
2562*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_56                         (-1765328328L)
2563*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_57                         (-1765328327L)
2564*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_58                         (-1765328326L)
2565*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_59                         (-1765328325L)
2566*7c478bd9Sstevel@tonic-gate #define KRB5KRB_ERR_GENERIC                      (-1765328324L)
2567*7c478bd9Sstevel@tonic-gate #define KRB5KRB_ERR_FIELD_TOOLONG                (-1765328323L)
2568*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_62                         (-1765328322L)
2569*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_63                         (-1765328321L)
2570*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_64                         (-1765328320L)
2571*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_65                         (-1765328319L)
2572*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_66                         (-1765328318L)
2573*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_67                         (-1765328317L)
2574*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_68                         (-1765328316L)
2575*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_69                         (-1765328315L)
2576*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_70                         (-1765328314L)
2577*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_71                         (-1765328313L)
2578*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_72                         (-1765328312L)
2579*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_73                         (-1765328311L)
2580*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_74                         (-1765328310L)
2581*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_75                         (-1765328309L)
2582*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_76                         (-1765328308L)
2583*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_77                         (-1765328307L)
2584*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_78                         (-1765328306L)
2585*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_79                         (-1765328305L)
2586*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_80                         (-1765328304L)
2587*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_81                         (-1765328303L)
2588*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_82                         (-1765328302L)
2589*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_83                         (-1765328301L)
2590*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_84                         (-1765328300L)
2591*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_85                         (-1765328299L)
2592*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_86                         (-1765328298L)
2593*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_87                         (-1765328297L)
2594*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_88                         (-1765328296L)
2595*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_89                         (-1765328295L)
2596*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_90                         (-1765328294L)
2597*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_91                         (-1765328293L)
2598*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_92                         (-1765328292L)
2599*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_93                         (-1765328291L)
2600*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_94                         (-1765328290L)
2601*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_95                         (-1765328289L)
2602*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_96                         (-1765328288L)
2603*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_97                         (-1765328287L)
2604*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_98                         (-1765328286L)
2605*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_99                         (-1765328285L)
2606*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_100                        (-1765328284L)
2607*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_101                        (-1765328283L)
2608*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_102                        (-1765328282L)
2609*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_103                        (-1765328281L)
2610*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_104                        (-1765328280L)
2611*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_105                        (-1765328279L)
2612*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_106                        (-1765328278L)
2613*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_107                        (-1765328277L)
2614*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_108                        (-1765328276L)
2615*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_109                        (-1765328275L)
2616*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_110                        (-1765328274L)
2617*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_111                        (-1765328273L)
2618*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_112                        (-1765328272L)
2619*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_113                        (-1765328271L)
2620*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_114                        (-1765328270L)
2621*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_115                        (-1765328269L)
2622*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_116                        (-1765328268L)
2623*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_117                        (-1765328267L)
2624*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_118                        (-1765328266L)
2625*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_119                        (-1765328265L)
2626*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_120                        (-1765328264L)
2627*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_121                        (-1765328263L)
2628*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_122                        (-1765328262L)
2629*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_123                        (-1765328261L)
2630*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_124                        (-1765328260L)
2631*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_125                        (-1765328259L)
2632*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_126                        (-1765328258L)
2633*7c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_127                        (-1765328257L)
2634*7c478bd9Sstevel@tonic-gate #define KRB5_ERR_RCSID                           (-1765328256L)
2635*7c478bd9Sstevel@tonic-gate #define KRB5_LIBOS_BADLOCKFLAG                   (-1765328255L)
2636*7c478bd9Sstevel@tonic-gate #define KRB5_LIBOS_CANTREADPWD                   (-1765328254L)
2637*7c478bd9Sstevel@tonic-gate #define KRB5_LIBOS_BADPWDMATCH                   (-1765328253L)
2638*7c478bd9Sstevel@tonic-gate #define KRB5_LIBOS_PWDINTR                       (-1765328252L)
2639*7c478bd9Sstevel@tonic-gate #define KRB5_PARSE_ILLCHAR                       (-1765328251L)
2640*7c478bd9Sstevel@tonic-gate #define KRB5_PARSE_MALFORMED                     (-1765328250L)
2641*7c478bd9Sstevel@tonic-gate #define KRB5_CONFIG_CANTOPEN                     (-1765328249L)
2642*7c478bd9Sstevel@tonic-gate #define KRB5_CONFIG_BADFORMAT                    (-1765328248L)
2643*7c478bd9Sstevel@tonic-gate #define KRB5_CONFIG_NOTENUFSPACE                 (-1765328247L)
2644*7c478bd9Sstevel@tonic-gate #define KRB5_BADMSGTYPE                          (-1765328246L)
2645*7c478bd9Sstevel@tonic-gate #define KRB5_CC_BADNAME                          (-1765328245L)
2646*7c478bd9Sstevel@tonic-gate #define KRB5_CC_UNKNOWN_TYPE                     (-1765328244L)
2647*7c478bd9Sstevel@tonic-gate #define KRB5_CC_NOTFOUND                         (-1765328243L)
2648*7c478bd9Sstevel@tonic-gate #define KRB5_CC_END                              (-1765328242L)
2649*7c478bd9Sstevel@tonic-gate #define KRB5_NO_TKT_SUPPLIED                     (-1765328241L)
2650*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_WRONG_PRINC                   (-1765328240L)
2651*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_TKT_INVALID               (-1765328239L)
2652*7c478bd9Sstevel@tonic-gate #define KRB5_PRINC_NOMATCH                       (-1765328238L)
2653*7c478bd9Sstevel@tonic-gate #define KRB5_KDCREP_MODIFIED                     (-1765328237L)
2654*7c478bd9Sstevel@tonic-gate #define KRB5_KDCREP_SKEW                         (-1765328236L)
2655*7c478bd9Sstevel@tonic-gate #define KRB5_IN_TKT_REALM_MISMATCH               (-1765328235L)
2656*7c478bd9Sstevel@tonic-gate #define KRB5_PROG_ETYPE_NOSUPP                   (-1765328234L)
2657*7c478bd9Sstevel@tonic-gate #define KRB5_PROG_KEYTYPE_NOSUPP                 (-1765328233L)
2658*7c478bd9Sstevel@tonic-gate #define KRB5_WRONG_ETYPE                         (-1765328232L)
2659*7c478bd9Sstevel@tonic-gate #define KRB5_PROG_SUMTYPE_NOSUPP                 (-1765328231L)
2660*7c478bd9Sstevel@tonic-gate #define KRB5_REALM_UNKNOWN                       (-1765328230L)
2661*7c478bd9Sstevel@tonic-gate #define KRB5_SERVICE_UNKNOWN                     (-1765328229L)
2662*7c478bd9Sstevel@tonic-gate #define KRB5_KDC_UNREACH                         (-1765328228L)
2663*7c478bd9Sstevel@tonic-gate #define KRB5_NO_LOCALNAME                        (-1765328227L)
2664*7c478bd9Sstevel@tonic-gate #define KRB5_MUTUAL_FAILED                       (-1765328226L)
2665*7c478bd9Sstevel@tonic-gate #define KRB5_RC_TYPE_EXISTS                      (-1765328225L)
2666*7c478bd9Sstevel@tonic-gate #define KRB5_RC_MALLOC                           (-1765328224L)
2667*7c478bd9Sstevel@tonic-gate #define KRB5_RC_TYPE_NOTFOUND                    (-1765328223L)
2668*7c478bd9Sstevel@tonic-gate #define KRB5_RC_UNKNOWN                          (-1765328222L)
2669*7c478bd9Sstevel@tonic-gate #define KRB5_RC_REPLAY                           (-1765328221L)
2670*7c478bd9Sstevel@tonic-gate #define KRB5_RC_IO                               (-1765328220L)
2671*7c478bd9Sstevel@tonic-gate #define KRB5_RC_NOIO                             (-1765328219L)
2672*7c478bd9Sstevel@tonic-gate #define KRB5_RC_PARSE                            (-1765328218L)
2673*7c478bd9Sstevel@tonic-gate #define KRB5_RC_IO_EOF                           (-1765328217L)
2674*7c478bd9Sstevel@tonic-gate #define KRB5_RC_IO_MALLOC                        (-1765328216L)
2675*7c478bd9Sstevel@tonic-gate #define KRB5_RC_IO_PERM                          (-1765328215L)
2676*7c478bd9Sstevel@tonic-gate #define KRB5_RC_IO_IO                            (-1765328214L)
2677*7c478bd9Sstevel@tonic-gate #define KRB5_RC_IO_UNKNOWN                       (-1765328213L)
2678*7c478bd9Sstevel@tonic-gate #define KRB5_RC_IO_SPACE                         (-1765328212L)
2679*7c478bd9Sstevel@tonic-gate #define KRB5_TRANS_CANTOPEN                      (-1765328211L)
2680*7c478bd9Sstevel@tonic-gate #define KRB5_TRANS_BADFORMAT                     (-1765328210L)
2681*7c478bd9Sstevel@tonic-gate #define KRB5_LNAME_CANTOPEN                      (-1765328209L)
2682*7c478bd9Sstevel@tonic-gate #define KRB5_LNAME_NOTRANS                       (-1765328208L)
2683*7c478bd9Sstevel@tonic-gate #define KRB5_LNAME_BADFORMAT                     (-1765328207L)
2684*7c478bd9Sstevel@tonic-gate #define KRB5_CRYPTO_INTERNAL                     (-1765328206L)
2685*7c478bd9Sstevel@tonic-gate #define KRB5_KT_BADNAME                          (-1765328205L)
2686*7c478bd9Sstevel@tonic-gate #define KRB5_KT_UNKNOWN_TYPE                     (-1765328204L)
2687*7c478bd9Sstevel@tonic-gate #define KRB5_KT_NOTFOUND                         (-1765328203L)
2688*7c478bd9Sstevel@tonic-gate #define KRB5_KT_END                              (-1765328202L)
2689*7c478bd9Sstevel@tonic-gate #define KRB5_KT_NOWRITE                          (-1765328201L)
2690*7c478bd9Sstevel@tonic-gate #define KRB5_KT_IOERR                            (-1765328200L)
2691*7c478bd9Sstevel@tonic-gate #define KRB5_NO_TKT_IN_RLM                       (-1765328199L)
2692*7c478bd9Sstevel@tonic-gate #define KRB5DES_BAD_KEYPAR                       (-1765328198L)
2693*7c478bd9Sstevel@tonic-gate #define KRB5DES_WEAK_KEY                         (-1765328197L)
2694*7c478bd9Sstevel@tonic-gate #define KRB5_BAD_ENCTYPE                         (-1765328196L)
2695*7c478bd9Sstevel@tonic-gate #define KRB5_BAD_KEYSIZE                         (-1765328195L)
2696*7c478bd9Sstevel@tonic-gate #define KRB5_BAD_MSIZE                           (-1765328194L)
2697*7c478bd9Sstevel@tonic-gate #define KRB5_CC_TYPE_EXISTS                      (-1765328193L)
2698*7c478bd9Sstevel@tonic-gate #define KRB5_KT_TYPE_EXISTS                      (-1765328192L)
2699*7c478bd9Sstevel@tonic-gate #define KRB5_CC_IO                               (-1765328191L)
2700*7c478bd9Sstevel@tonic-gate #define KRB5_FCC_PERM                            (-1765328190L)
2701*7c478bd9Sstevel@tonic-gate #define KRB5_FCC_NOFILE                          (-1765328189L)
2702*7c478bd9Sstevel@tonic-gate #define KRB5_FCC_INTERNAL                        (-1765328188L)
2703*7c478bd9Sstevel@tonic-gate #define KRB5_CC_WRITE                            (-1765328187L)
2704*7c478bd9Sstevel@tonic-gate #define KRB5_CC_NOMEM                            (-1765328186L)
2705*7c478bd9Sstevel@tonic-gate #define KRB5_CC_FORMAT                           (-1765328185L)
2706*7c478bd9Sstevel@tonic-gate #define KRB5_CC_NOT_KTYPE                        (-1765328184L)
2707*7c478bd9Sstevel@tonic-gate #define KRB5_INVALID_FLAGS                       (-1765328183L)
2708*7c478bd9Sstevel@tonic-gate #define KRB5_NO_2ND_TKT                          (-1765328182L)
2709*7c478bd9Sstevel@tonic-gate #define KRB5_NOCREDS_SUPPLIED                    (-1765328181L)
2710*7c478bd9Sstevel@tonic-gate #define KRB5_SENDAUTH_BADAUTHVERS                (-1765328180L)
2711*7c478bd9Sstevel@tonic-gate #define KRB5_SENDAUTH_BADAPPLVERS                (-1765328179L)
2712*7c478bd9Sstevel@tonic-gate #define KRB5_SENDAUTH_BADRESPONSE                (-1765328178L)
2713*7c478bd9Sstevel@tonic-gate #define KRB5_SENDAUTH_REJECTED                   (-1765328177L)
2714*7c478bd9Sstevel@tonic-gate #define KRB5_PREAUTH_BAD_TYPE                    (-1765328176L)
2715*7c478bd9Sstevel@tonic-gate #define KRB5_PREAUTH_NO_KEY                      (-1765328175L)
2716*7c478bd9Sstevel@tonic-gate #define KRB5_PREAUTH_FAILED                      (-1765328174L)
2717*7c478bd9Sstevel@tonic-gate #define KRB5_RCACHE_BADVNO                       (-1765328173L)
2718*7c478bd9Sstevel@tonic-gate #define KRB5_CCACHE_BADVNO                       (-1765328172L)
2719*7c478bd9Sstevel@tonic-gate #define KRB5_KEYTAB_BADVNO                       (-1765328171L)
2720*7c478bd9Sstevel@tonic-gate #define KRB5_PROG_ATYPE_NOSUPP                   (-1765328170L)
2721*7c478bd9Sstevel@tonic-gate #define KRB5_RC_REQUIRED                         (-1765328169L)
2722*7c478bd9Sstevel@tonic-gate #define KRB5_ERR_BAD_HOSTNAME                    (-1765328168L)
2723*7c478bd9Sstevel@tonic-gate #define KRB5_ERR_HOST_REALM_UNKNOWN              (-1765328167L)
2724*7c478bd9Sstevel@tonic-gate #define KRB5_SNAME_UNSUPP_NAMETYPE               (-1765328166L)
2725*7c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_V4_REPLY                  (-1765328165L)
2726*7c478bd9Sstevel@tonic-gate #define KRB5_REALM_CANT_RESOLVE                  (-1765328164L)
2727*7c478bd9Sstevel@tonic-gate #define KRB5_TKT_NOT_FORWARDABLE                 (-1765328163L)
2728*7c478bd9Sstevel@tonic-gate #define KRB5_FWD_BAD_PRINCIPAL                   (-1765328162L)
2729*7c478bd9Sstevel@tonic-gate #define KRB5_GET_IN_TKT_LOOP                     (-1765328161L)
2730*7c478bd9Sstevel@tonic-gate #define KRB5_CONFIG_NODEFREALM                   (-1765328160L)
2731*7c478bd9Sstevel@tonic-gate #define KRB5_SAM_UNSUPPORTED                     (-1765328159L)
2732*7c478bd9Sstevel@tonic-gate #define KRB5_SAM_INVALID_ETYPE			 (-1765328158L)
2733*7c478bd9Sstevel@tonic-gate #define KRB5_SAM_NO_CHECKSUM			 (-1765328157L)
2734*7c478bd9Sstevel@tonic-gate #define KRB5_SAM_BAD_CHECKSUM			 (-1765328156L)
2735*7c478bd9Sstevel@tonic-gate #define KRB5_KT_NAME_TOOLONG			 (-1765328155L)
2736*7c478bd9Sstevel@tonic-gate #define KRB5_KT_KVNONOTFOUND			 (-1765328154L)
2737*7c478bd9Sstevel@tonic-gate #define KRB5_APPL_EXPIRED			 (-1765328153L)
2738*7c478bd9Sstevel@tonic-gate #define KRB5_LIB_EXPIRED			 (-1765328152L)
2739*7c478bd9Sstevel@tonic-gate #define KRB5_CHPW_PWDNULL			 (-1765328151L)
2740*7c478bd9Sstevel@tonic-gate #define KRB5_CHPW_FAIL				 (-1765328150L)
2741*7c478bd9Sstevel@tonic-gate #define KRB5_KT_FORMAT				 (-1765328149L)
2742*7c478bd9Sstevel@tonic-gate #define KRB5_NOPERM_ETYPE			 (-1765328148L)
2743*7c478bd9Sstevel@tonic-gate #define KRB5_CONFIG_ETYPE_NOSUPP		 (-1765328147L)
2744*7c478bd9Sstevel@tonic-gate #define KRB5_OBSOLETE_FN			 (-1765328146L)
2745*7c478bd9Sstevel@tonic-gate #define KRB5_EAI_FAIL				 (-1765328145L)
2746*7c478bd9Sstevel@tonic-gate #define KRB5_EAI_NODATA				 (-1765328144L)
2747*7c478bd9Sstevel@tonic-gate #define KRB5_EAI_NONAME				 (-1765328143L)
2748*7c478bd9Sstevel@tonic-gate #define KRB5_EAI_SERVICE			 (-1765328142L)
2749*7c478bd9Sstevel@tonic-gate #define KRB5_ERR_NUMERIC_REALM			 (-1765328141L)
2750*7c478bd9Sstevel@tonic-gate #define KRB5_ERR_BAD_S2K_PARAMS			 (-1765328140L)
2751*7c478bd9Sstevel@tonic-gate #define KRB5_ERR_NO_SERVICE			 (-1765328139L)
2752*7c478bd9Sstevel@tonic-gate #define KRB5_CC_READONLY			 (-1765328138L)
2753*7c478bd9Sstevel@tonic-gate #define KRB5_CC_NOSUPP				 (-1765328137L)
2754*7c478bd9Sstevel@tonic-gate 
2755*7c478bd9Sstevel@tonic-gate /* NOTE! error values should not collide */
2756*7c478bd9Sstevel@tonic-gate /* XXX Note KRB5_RC_BADNAME and KRB5_CONF_NOT_CONFIGURED are Solaris specific */
2757*7c478bd9Sstevel@tonic-gate #define	KRB5_RC_BADNAME				(-1765328136L)
2758*7c478bd9Sstevel@tonic-gate #define	KRB5_CONF_NOT_CONFIGURED	 	 (-1765328135L)
2759*7c478bd9Sstevel@tonic-gate #ifdef _KERNEL
2760*7c478bd9Sstevel@tonic-gate /* XXX Note KRB5_KEF_ERROR and PKCS_ERR are Solaris specific */
2761*7c478bd9Sstevel@tonic-gate #define KRB5_KEF_ERROR                           (-1765328134L)
2762*7c478bd9Sstevel@tonic-gate #else
2763*7c478bd9Sstevel@tonic-gate #define PKCS_ERR				 (-1765328134L)
2764*7c478bd9Sstevel@tonic-gate #endif /* _KERNEL */
2765*7c478bd9Sstevel@tonic-gate #define ERROR_TABLE_BASE_krb5 (-1765328384L)
2766*7c478bd9Sstevel@tonic-gate 
2767*7c478bd9Sstevel@tonic-gate /* for compatibility with older versions... */
2768*7c478bd9Sstevel@tonic-gate #define krb5_err_base ERROR_TABLE_BASE_krb5
2769*7c478bd9Sstevel@tonic-gate /*
2770*7c478bd9Sstevel@tonic-gate  * kdb5_err.h:
2771*7c478bd9Sstevel@tonic-gate  * This file is automatically generated; please do not edit it.
2772*7c478bd9Sstevel@tonic-gate  */
2773*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_RCSID                           (-1780008448L)
2774*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_INUSE                           (-1780008447L)
2775*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_UK_SERROR                       (-1780008446L)
2776*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_UK_RERROR                       (-1780008445L)
2777*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_UNAUTH                          (-1780008444L)
2778*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_NOENTRY                         (-1780008443L)
2779*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_ILL_WILDCARD                    (-1780008442L)
2780*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_DB_INUSE                        (-1780008441L)
2781*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_DB_CHANGED                      (-1780008440L)
2782*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_TRUNCATED_RECORD                (-1780008439L)
2783*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_RECURSIVELOCK                   (-1780008438L)
2784*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_NOTLOCKED                       (-1780008437L)
2785*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_BADLOCKMODE                     (-1780008436L)
2786*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_DBNOTINITED                     (-1780008435L)
2787*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_DBINITED                        (-1780008434L)
2788*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_ILLDIRECTION                    (-1780008433L)
2789*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_NOMASTERKEY                     (-1780008432L)
2790*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_BADMASTERKEY                    (-1780008431L)
2791*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_INVALIDKEYSIZE                  (-1780008430L)
2792*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_CANTREAD_STORED                 (-1780008429L)
2793*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_BADSTORED_MKEY                  (-1780008428L)
2794*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_CANTLOCK_DB                     (-1780008427L)
2795*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_DB_CORRUPT                      (-1780008426L)
2796*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_BAD_VERSION                     (-1780008425L)
2797*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_BAD_SALTTYPE                    (-1780008424L)
2798*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_BAD_ENCTYPE                     (-1780008423L)
2799*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_BAD_CREATEFLAGS                 (-1780008422L)
2800*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_NO_PERMITTED_KEY                (-1780008421L)
2801*7c478bd9Sstevel@tonic-gate #define KRB5_KDB_NO_MATCHING_KEY                 (-1780008420L)
2802*7c478bd9Sstevel@tonic-gate /*
2803*7c478bd9Sstevel@tonic-gate  * Incremental propagation error codes
2804*7c478bd9Sstevel@tonic-gate  */
2805*7c478bd9Sstevel@tonic-gate #define	KRB5_LOG_CONV				(-1780008419L)
2806*7c478bd9Sstevel@tonic-gate #define	KRB5_LOG_UNSTABLE			(-1780008418L)
2807*7c478bd9Sstevel@tonic-gate #define	KRB5_LOG_CORRUPT			(-1780008417L)
2808*7c478bd9Sstevel@tonic-gate #define	KRB5_LOG_ERROR				(-1780008416L)
2809*7c478bd9Sstevel@tonic-gate #define ERROR_TABLE_BASE_kdb5 (-1780008448L)
2810*7c478bd9Sstevel@tonic-gate 
2811*7c478bd9Sstevel@tonic-gate /* for compatibility with older versions... */
2812*7c478bd9Sstevel@tonic-gate #define kdb5_err_base ERROR_TABLE_BASE_kdb5
2813*7c478bd9Sstevel@tonic-gate /*
2814*7c478bd9Sstevel@tonic-gate  * kv5m_err.h:
2815*7c478bd9Sstevel@tonic-gate  * This file is automatically generated; please do not edit it.
2816*7c478bd9Sstevel@tonic-gate  */
2817*7c478bd9Sstevel@tonic-gate #define KV5M_NONE                                (-1760647424L)
2818*7c478bd9Sstevel@tonic-gate #define KV5M_PRINCIPAL                           (-1760647423L)
2819*7c478bd9Sstevel@tonic-gate #define KV5M_DATA                                (-1760647422L)
2820*7c478bd9Sstevel@tonic-gate #define KV5M_KEYBLOCK                            (-1760647421L)
2821*7c478bd9Sstevel@tonic-gate #define KV5M_CHECKSUM                            (-1760647420L)
2822*7c478bd9Sstevel@tonic-gate #define KV5M_ENCRYPT_BLOCK                       (-1760647419L)
2823*7c478bd9Sstevel@tonic-gate #define KV5M_ENC_DATA                            (-1760647418L)
2824*7c478bd9Sstevel@tonic-gate #define KV5M_CRYPTOSYSTEM_ENTRY                  (-1760647417L)
2825*7c478bd9Sstevel@tonic-gate #define KV5M_CS_TABLE_ENTRY                      (-1760647416L)
2826*7c478bd9Sstevel@tonic-gate #define KV5M_CHECKSUM_ENTRY                      (-1760647415L)
2827*7c478bd9Sstevel@tonic-gate #define KV5M_AUTHDATA                            (-1760647414L)
2828*7c478bd9Sstevel@tonic-gate #define KV5M_TRANSITED                           (-1760647413L)
2829*7c478bd9Sstevel@tonic-gate #define KV5M_ENC_TKT_PART                        (-1760647412L)
2830*7c478bd9Sstevel@tonic-gate #define KV5M_TICKET                              (-1760647411L)
2831*7c478bd9Sstevel@tonic-gate #define KV5M_AUTHENTICATOR                       (-1760647410L)
2832*7c478bd9Sstevel@tonic-gate #define KV5M_TKT_AUTHENT                         (-1760647409L)
2833*7c478bd9Sstevel@tonic-gate #define KV5M_CREDS                               (-1760647408L)
2834*7c478bd9Sstevel@tonic-gate #define KV5M_LAST_REQ_ENTRY                      (-1760647407L)
2835*7c478bd9Sstevel@tonic-gate #define KV5M_PA_DATA                             (-1760647406L)
2836*7c478bd9Sstevel@tonic-gate #define KV5M_KDC_REQ                             (-1760647405L)
2837*7c478bd9Sstevel@tonic-gate #define KV5M_ENC_KDC_REP_PART                    (-1760647404L)
2838*7c478bd9Sstevel@tonic-gate #define KV5M_KDC_REP                             (-1760647403L)
2839*7c478bd9Sstevel@tonic-gate #define KV5M_ERROR                               (-1760647402L)
2840*7c478bd9Sstevel@tonic-gate #define KV5M_AP_REQ                              (-1760647401L)
2841*7c478bd9Sstevel@tonic-gate #define KV5M_AP_REP                              (-1760647400L)
2842*7c478bd9Sstevel@tonic-gate #define KV5M_AP_REP_ENC_PART                     (-1760647399L)
2843*7c478bd9Sstevel@tonic-gate #define KV5M_RESPONSE                            (-1760647398L)
2844*7c478bd9Sstevel@tonic-gate #define KV5M_SAFE                                (-1760647397L)
2845*7c478bd9Sstevel@tonic-gate #define KV5M_PRIV                                (-1760647396L)
2846*7c478bd9Sstevel@tonic-gate #define KV5M_PRIV_ENC_PART                       (-1760647395L)
2847*7c478bd9Sstevel@tonic-gate #define KV5M_CRED                                (-1760647394L)
2848*7c478bd9Sstevel@tonic-gate #define KV5M_CRED_INFO                           (-1760647393L)
2849*7c478bd9Sstevel@tonic-gate #define KV5M_CRED_ENC_PART                       (-1760647392L)
2850*7c478bd9Sstevel@tonic-gate #define KV5M_PWD_DATA                            (-1760647391L)
2851*7c478bd9Sstevel@tonic-gate #define KV5M_ADDRESS                             (-1760647390L)
2852*7c478bd9Sstevel@tonic-gate #define KV5M_KEYTAB_ENTRY                        (-1760647389L)
2853*7c478bd9Sstevel@tonic-gate #define KV5M_CONTEXT                             (-1760647388L)
2854*7c478bd9Sstevel@tonic-gate #define KV5M_OS_CONTEXT                          (-1760647387L)
2855*7c478bd9Sstevel@tonic-gate #define KV5M_ALT_METHOD                          (-1760647386L)
2856*7c478bd9Sstevel@tonic-gate #define KV5M_ETYPE_INFO_ENTRY                    (-1760647385L)
2857*7c478bd9Sstevel@tonic-gate #define KV5M_DB_CONTEXT                          (-1760647384L)
2858*7c478bd9Sstevel@tonic-gate #define KV5M_AUTH_CONTEXT                        (-1760647383L)
2859*7c478bd9Sstevel@tonic-gate #define KV5M_KEYTAB                              (-1760647382L)
2860*7c478bd9Sstevel@tonic-gate #define KV5M_RCACHE                              (-1760647381L)
2861*7c478bd9Sstevel@tonic-gate #define KV5M_CCACHE                              (-1760647380L)
2862*7c478bd9Sstevel@tonic-gate #define KV5M_PREAUTH_OPS                         (-1760647379L)
2863*7c478bd9Sstevel@tonic-gate #define KV5M_SAM_CHALLENGE                       (-1760647378L)
2864*7c478bd9Sstevel@tonic-gate #define KV5M_SAM_KEY                             (-1760647377L)
2865*7c478bd9Sstevel@tonic-gate #define KV5M_ENC_SAM_RESPONSE_ENC                (-1760647376L)
2866*7c478bd9Sstevel@tonic-gate #define KV5M_ENC_SAM_RESPONSE_ENC_2		 (-1760647374L)
2867*7c478bd9Sstevel@tonic-gate #define KV5M_SAM_RESPONSE			 (-1760647373L)
2868*7c478bd9Sstevel@tonic-gate #define KV5M_SAM_RESPONSE_2			 (-1760647372L)
2869*7c478bd9Sstevel@tonic-gate #define KV5M_PREDICTED_SAM_RESPONSE		 (-1760647371L)
2870*7c478bd9Sstevel@tonic-gate #define KV5M_PASSWD_PHRASE_ELEMENT		 (-1760647370L)
2871*7c478bd9Sstevel@tonic-gate #define KV5M_GSS_OID				 (-1760647369L)
2872*7c478bd9Sstevel@tonic-gate #define KV5M_GSS_QUEUE				 (-1760647368L)
2873*7c478bd9Sstevel@tonic-gate #define ERROR_TABLE_BASE_kv5m (-1760647424L)
2874*7c478bd9Sstevel@tonic-gate 
2875*7c478bd9Sstevel@tonic-gate /* for compatibility with older versions... */
2876*7c478bd9Sstevel@tonic-gate #define kv5m_err_base ERROR_TABLE_BASE_kv5m
2877*7c478bd9Sstevel@tonic-gate /*
2878*7c478bd9Sstevel@tonic-gate  * asn1_err.h:
2879*7c478bd9Sstevel@tonic-gate  * This file is automatically generated; please do not edit it.
2880*7c478bd9Sstevel@tonic-gate  */
2881*7c478bd9Sstevel@tonic-gate #define ASN1_BAD_TIMEFORMAT                      (1859794432L)
2882*7c478bd9Sstevel@tonic-gate #define ASN1_MISSING_FIELD                       (1859794433L)
2883*7c478bd9Sstevel@tonic-gate #define ASN1_MISPLACED_FIELD                     (1859794434L)
2884*7c478bd9Sstevel@tonic-gate #define ASN1_TYPE_MISMATCH                       (1859794435L)
2885*7c478bd9Sstevel@tonic-gate #define ASN1_OVERFLOW                            (1859794436L)
2886*7c478bd9Sstevel@tonic-gate #define ASN1_OVERRUN                             (1859794437L)
2887*7c478bd9Sstevel@tonic-gate #define ASN1_BAD_ID                              (1859794438L)
2888*7c478bd9Sstevel@tonic-gate #define ASN1_BAD_LENGTH                          (1859794439L)
2889*7c478bd9Sstevel@tonic-gate #define ASN1_BAD_FORMAT                          (1859794440L)
2890*7c478bd9Sstevel@tonic-gate #define ASN1_PARSE_ERROR                         (1859794441L)
2891*7c478bd9Sstevel@tonic-gate #define ASN1_BAD_GMTIME                          (1859794442L)
2892*7c478bd9Sstevel@tonic-gate #define ASN1_MISMATCH_INDEF			 (1859794443L)
2893*7c478bd9Sstevel@tonic-gate #define ASN1_MISSING_EOC			 (1859794444L)
2894*7c478bd9Sstevel@tonic-gate #define ERROR_TABLE_BASE_asn1 (1859794432L)
2895*7c478bd9Sstevel@tonic-gate 
2896*7c478bd9Sstevel@tonic-gate /* for compatibility with older versions... */
2897*7c478bd9Sstevel@tonic-gate #define asn1_err_base ERROR_TABLE_BASE_asn1
2898*7c478bd9Sstevel@tonic-gate 
2899*7c478bd9Sstevel@tonic-gate #ifdef __cplusplus
2900*7c478bd9Sstevel@tonic-gate }
2901*7c478bd9Sstevel@tonic-gate #endif
2902*7c478bd9Sstevel@tonic-gate 
2903*7c478bd9Sstevel@tonic-gate #endif		/* _KRB5_H */
2904