17c478bd9Sstevel@tonic-gate /*
2*505d05c7Sgtb  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
37c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
47c478bd9Sstevel@tonic-gate  */
57c478bd9Sstevel@tonic-gate 
67c478bd9Sstevel@tonic-gate /* This is the prologue to krb5.h */
77c478bd9Sstevel@tonic-gate /* Unfortunately some of these defines are compiler dependent */
87c478bd9Sstevel@tonic-gate #ifndef _KRB5_H
97c478bd9Sstevel@tonic-gate #define _KRB5_H
107c478bd9Sstevel@tonic-gate 
117c478bd9Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
127c478bd9Sstevel@tonic-gate 
137c478bd9Sstevel@tonic-gate #define SIZEOF_INT 4
147c478bd9Sstevel@tonic-gate 
157c478bd9Sstevel@tonic-gate #ifdef _LP64
167c478bd9Sstevel@tonic-gate #define SIZEOF_LONG 8
177c478bd9Sstevel@tonic-gate #else
187c478bd9Sstevel@tonic-gate #define SIZEOF_LONG 4
197c478bd9Sstevel@tonic-gate #endif
207c478bd9Sstevel@tonic-gate 
217c478bd9Sstevel@tonic-gate #define SIZEOF_SHORT 2
227c478bd9Sstevel@tonic-gate #define HAVE_STDARG_H 1
237c478bd9Sstevel@tonic-gate #define HAVE_SYS_TYPES_H 1
247c478bd9Sstevel@tonic-gate /* End of prologue section */
257c478bd9Sstevel@tonic-gate /*
267c478bd9Sstevel@tonic-gate  * include/krb5.h
277c478bd9Sstevel@tonic-gate  *
287c478bd9Sstevel@tonic-gate  * Copyright 1989,1990,1995 by the Massachusetts Institute of Technology.
297c478bd9Sstevel@tonic-gate  * All Rights Reserved.
307c478bd9Sstevel@tonic-gate  *
317c478bd9Sstevel@tonic-gate  * Export of this software from the United States of America may
327c478bd9Sstevel@tonic-gate  *   require a specific license from the United States Government.
337c478bd9Sstevel@tonic-gate  *   It is the responsibility of any person or organization contemplating
347c478bd9Sstevel@tonic-gate  *   export to obtain such a license before exporting.
357c478bd9Sstevel@tonic-gate  *
367c478bd9Sstevel@tonic-gate  * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
377c478bd9Sstevel@tonic-gate  * distribute this software and its documentation for any purpose and
387c478bd9Sstevel@tonic-gate  * without fee is hereby granted, provided that the above copyright
397c478bd9Sstevel@tonic-gate  * notice appear in all copies and that both that copyright notice and
407c478bd9Sstevel@tonic-gate  * this permission notice appear in supporting documentation, and that
417c478bd9Sstevel@tonic-gate  * the name of M.I.T. not be used in advertising or publicity pertaining
427c478bd9Sstevel@tonic-gate  * to distribution of the software without specific, written prior
437c478bd9Sstevel@tonic-gate  * permission.	Furthermore if you modify this software you must label
447c478bd9Sstevel@tonic-gate  * your software as modified software and not distribute it in such a
457c478bd9Sstevel@tonic-gate  * fashion that it might be confused with the original M.I.T. software.
467c478bd9Sstevel@tonic-gate  * M.I.T. makes no representations about the suitability of
477c478bd9Sstevel@tonic-gate  * this software for any purpose.  It is provided "as is" without express
487c478bd9Sstevel@tonic-gate  * or implied warranty.
497c478bd9Sstevel@tonic-gate  *
507c478bd9Sstevel@tonic-gate  *
517c478bd9Sstevel@tonic-gate  * General definitions for Kerberos version 5.
527c478bd9Sstevel@tonic-gate  */
537c478bd9Sstevel@tonic-gate 
547c478bd9Sstevel@tonic-gate /*
557c478bd9Sstevel@tonic-gate  * Copyright (C) 1998 by the FundsXpress, INC.
567c478bd9Sstevel@tonic-gate  *
577c478bd9Sstevel@tonic-gate  * All rights reserved.
587c478bd9Sstevel@tonic-gate  *
597c478bd9Sstevel@tonic-gate  * Export of this software from the United States of America may require
607c478bd9Sstevel@tonic-gate  * a specific license from the United States Government.  It is the
617c478bd9Sstevel@tonic-gate  * responsibility of any person or organization contemplating export to
627c478bd9Sstevel@tonic-gate  * obtain such a license before exporting.
637c478bd9Sstevel@tonic-gate  *
647c478bd9Sstevel@tonic-gate  * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
657c478bd9Sstevel@tonic-gate  * distribute this software and its documentation for any purpose and
667c478bd9Sstevel@tonic-gate  * without fee is hereby granted, provided that the above copyright
677c478bd9Sstevel@tonic-gate  * notice appear in all copies and that both that copyright notice and
687c478bd9Sstevel@tonic-gate  * this permission notice appear in supporting documentation, and that
697c478bd9Sstevel@tonic-gate  * the name of FundsXpress. not be used in advertising or publicity pertaining
707c478bd9Sstevel@tonic-gate  * to distribution of the software without specific, written prior
717c478bd9Sstevel@tonic-gate  * permission.  FundsXpress makes no representations about the suitability of
727c478bd9Sstevel@tonic-gate  * this software for any purpose.  It is provided "as is" without express
737c478bd9Sstevel@tonic-gate  * or implied warranty.
747c478bd9Sstevel@tonic-gate  *
757c478bd9Sstevel@tonic-gate  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
767c478bd9Sstevel@tonic-gate  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
777c478bd9Sstevel@tonic-gate  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
787c478bd9Sstevel@tonic-gate  */
797c478bd9Sstevel@tonic-gate 
807c478bd9Sstevel@tonic-gate #ifndef KRB5_GENERAL__
817c478bd9Sstevel@tonic-gate #define KRB5_GENERAL__
827c478bd9Sstevel@tonic-gate 
837c478bd9Sstevel@tonic-gate #ifdef	_KERNEL
847c478bd9Sstevel@tonic-gate #include <sys/systm.h>
857c478bd9Sstevel@tonic-gate #include <sys/kmem.h>
867c478bd9Sstevel@tonic-gate 
877c478bd9Sstevel@tonic-gate #include <sys/crypto/common.h>
887c478bd9Sstevel@tonic-gate #include <sys/crypto/api.h>
897c478bd9Sstevel@tonic-gate 
907c478bd9Sstevel@tonic-gate /*
917c478bd9Sstevel@tonic-gate  * Just to be safe lets make sure the buffers are zero'ed after
927c478bd9Sstevel@tonic-gate  * malloc() as some code assumes this is the case.  To avoid warnings
937c478bd9Sstevel@tonic-gate  * of duplicated defines let remove the old one if present.
947c478bd9Sstevel@tonic-gate  */
957c478bd9Sstevel@tonic-gate #ifdef MALLOC
967c478bd9Sstevel@tonic-gate #undef MALLOC
977c478bd9Sstevel@tonic-gate #endif
987c478bd9Sstevel@tonic-gate #define MALLOC(n) kmem_zalloc((n), KM_SLEEP)
997c478bd9Sstevel@tonic-gate 
1007c478bd9Sstevel@tonic-gate #define	FREE(x, n) kmem_free((x), (n))
1017c478bd9Sstevel@tonic-gate #define CALLOC(n, s) kmem_zalloc((n)*(s), KM_SLEEP)
1027c478bd9Sstevel@tonic-gate #define strcpy(dst,src,n) bcopy((src),(dst),(n))
1037c478bd9Sstevel@tonic-gate #define mutex_lock(lck)  mutex_enter(lck)
1047c478bd9Sstevel@tonic-gate #define mutex_unlock(lck)  mutex_exit(lck)
1057c478bd9Sstevel@tonic-gate 
1067c478bd9Sstevel@tonic-gate #else /* !_KERNEL */
1077c478bd9Sstevel@tonic-gate #define	MALLOC(n) malloc(n)
1087c478bd9Sstevel@tonic-gate #define	FREE(x, n) free(x)
1097c478bd9Sstevel@tonic-gate #define CALLOC(n, s) calloc((n), (s))
1107c478bd9Sstevel@tonic-gate #include <stdlib.h>
1117c478bd9Sstevel@tonic-gate #include <thread.h>
1127c478bd9Sstevel@tonic-gate #include <synch.h>
1137c478bd9Sstevel@tonic-gate #include <security/cryptoki.h>
114*505d05c7Sgtb #include <limits.h>    /* for *_MAX */
1157c478bd9Sstevel@tonic-gate #endif /* _KERNEL */
1167c478bd9Sstevel@tonic-gate 
117*505d05c7Sgtb /* By default, do not expose deprecated interfaces. */
118*505d05c7Sgtb /* SUNW14resync - we need to enable this for rlogind and such */
119*505d05c7Sgtb #ifndef KRB5_DEPRECATED
120*505d05c7Sgtb #define KRB5_DEPRECATED 1
121*505d05c7Sgtb #endif
122*505d05c7Sgtb /* Do not expose private interfaces.  Build system will override. */
123*505d05c7Sgtb /* SUNW14resync - for the Solaris build we set it to 1 here */
124*505d05c7Sgtb #ifndef KRB5_PRIVATE
125*505d05c7Sgtb #define KRB5_PRIVATE 1
126*505d05c7Sgtb #endif
127*505d05c7Sgtb 
128*505d05c7Sgtb #if defined(__MACH__) && defined(__APPLE__)
129*505d05c7Sgtb #       include <TargetConditionals.h>
130*505d05c7Sgtb #    if TARGET_RT_MAC_CFM
131*505d05c7Sgtb #       error "Use KfM 4.0 SDK headers for CFM compilation."
132*505d05c7Sgtb #    endif
133*505d05c7Sgtb #endif
1347c478bd9Sstevel@tonic-gate 
135*505d05c7Sgtb #if (defined(_MSDOS) || defined(_WIN32))
1367c478bd9Sstevel@tonic-gate #include <win-mac.h>
1377c478bd9Sstevel@tonic-gate #endif
1387c478bd9Sstevel@tonic-gate 
1397c478bd9Sstevel@tonic-gate #ifndef KRB5_CONFIG__
1407c478bd9Sstevel@tonic-gate #ifndef KRB5_CALLCONV
1417c478bd9Sstevel@tonic-gate #define KRB5_CALLCONV
1427c478bd9Sstevel@tonic-gate #define KRB5_CALLCONV_C
1437c478bd9Sstevel@tonic-gate #endif /* !KRB5_CALLCONV */
1447c478bd9Sstevel@tonic-gate #endif /* !KRB5_CONFIG__ */
1457c478bd9Sstevel@tonic-gate 
146*505d05c7Sgtb #ifndef KRB5_CALLCONV_WRONG
147*505d05c7Sgtb #define KRB5_CALLCONV_WRONG
148*505d05c7Sgtb #endif
149*505d05c7Sgtb 
150*505d05c7Sgtb /* SUNW14resync XXX */
1517c478bd9Sstevel@tonic-gate #include <sys/types.h>
1527c478bd9Sstevel@tonic-gate #include <sys/socket.h>
1537c478bd9Sstevel@tonic-gate 
1547c478bd9Sstevel@tonic-gate #ifndef THREEPARAMOPEN
1557c478bd9Sstevel@tonic-gate #define THREEPARAMOPEN(x,y,z) open(x,y,z)
1567c478bd9Sstevel@tonic-gate #endif
1577c478bd9Sstevel@tonic-gate 
158*505d05c7Sgtb 
1597c478bd9Sstevel@tonic-gate /*
1607c478bd9Sstevel@tonic-gate  * Solaris Kerberos:
1617c478bd9Sstevel@tonic-gate  *   KRB5_OLD_CRYPTO is not needed or supported anymore.
1627c478bd9Sstevel@tonic-gate  */
1637c478bd9Sstevel@tonic-gate /* #define KRB5_OLD_CRYPTO */
1647c478bd9Sstevel@tonic-gate 
1657c478bd9Sstevel@tonic-gate 
166*505d05c7Sgtb #ifndef KRB5INT_BEGIN_DECLS
167*505d05c7Sgtb #if defined(__cplusplus)
168*505d05c7Sgtb #define KRB5INT_BEGIN_DECLS     extern "C" {
169*505d05c7Sgtb #define KRB5INT_END_DECLS }
170*505d05c7Sgtb #else
171*505d05c7Sgtb #define KRB5INT_BEGIN_DECLS
172*505d05c7Sgtb #define KRB5INT_END_DECLS
173*505d05c7Sgtb #endif
174*505d05c7Sgtb #endif /* KRB5INT_BEGIN_DECLS */
1757c478bd9Sstevel@tonic-gate 
176*505d05c7Sgtb #if TARGET_OS_MAC
177*505d05c7Sgtb #    pragma options align=mac68k
1787c478bd9Sstevel@tonic-gate #endif
1797c478bd9Sstevel@tonic-gate 
180*505d05c7Sgtb /* from profile.h */
181*505d05c7Sgtb struct _profile_t;
182*505d05c7Sgtb /* typedef struct _profile_t *profile_t; */
183*505d05c7Sgtb 
184*505d05c7Sgtb 
1857c478bd9Sstevel@tonic-gate /*
1867c478bd9Sstevel@tonic-gate  * begin wordsize.h
1877c478bd9Sstevel@tonic-gate  */
1887c478bd9Sstevel@tonic-gate 
1897c478bd9Sstevel@tonic-gate /*
1907c478bd9Sstevel@tonic-gate  * Word-size related definition.
1917c478bd9Sstevel@tonic-gate  */
1927c478bd9Sstevel@tonic-gate 
1937c478bd9Sstevel@tonic-gate typedef	unsigned char	krb5_octet;
1947c478bd9Sstevel@tonic-gate 
195*505d05c7Sgtb #if INT_MAX == 0x7fff
1967c478bd9Sstevel@tonic-gate typedef	int	krb5_int16;
1977c478bd9Sstevel@tonic-gate typedef	unsigned int	krb5_ui_2;
198*505d05c7Sgtb #elif SHRT_MAX == 0x7fff
1997c478bd9Sstevel@tonic-gate typedef	short	krb5_int16;
2007c478bd9Sstevel@tonic-gate typedef	unsigned short	krb5_ui_2;
2017c478bd9Sstevel@tonic-gate #else
202*505d05c7Sgtb #error undefined 16 bit type
2037c478bd9Sstevel@tonic-gate #endif
2047c478bd9Sstevel@tonic-gate 
205*505d05c7Sgtb #if INT_MAX == 0x7fffffffL
2067c478bd9Sstevel@tonic-gate typedef	int		krb5_int32;
2077c478bd9Sstevel@tonic-gate typedef	unsigned int	krb5_ui_4;
208*505d05c7Sgtb #elif LONG_MAX == 0x7fffffffL
2097c478bd9Sstevel@tonic-gate typedef	long	krb5_int32;
2107c478bd9Sstevel@tonic-gate typedef	unsigned long	krb5_ui_4;
211*505d05c7Sgtb #elif SHRT_MAX == 0x7fffffffL
2127c478bd9Sstevel@tonic-gate typedef	short	krb5_int32;
2137c478bd9Sstevel@tonic-gate typedef	unsigned short	krb5_ui_4;
2147c478bd9Sstevel@tonic-gate #else
215*505d05c7Sgtb #error: undefined 32 bit type
2167c478bd9Sstevel@tonic-gate #endif
2177c478bd9Sstevel@tonic-gate 
218*505d05c7Sgtb #define VALID_INT_BITS    INT_MAX
219*505d05c7Sgtb #define VALID_UINT_BITS   UINT_MAX
220*505d05c7Sgtb 
2217c478bd9Sstevel@tonic-gate #define KRB5_INT32_MAX	2147483647
2227c478bd9Sstevel@tonic-gate /* this strange form is necessary since - is a unary operator, not a sign
2237c478bd9Sstevel@tonic-gate    indicator */
2247c478bd9Sstevel@tonic-gate #define KRB5_INT32_MIN	(-KRB5_INT32_MAX-1)
2257c478bd9Sstevel@tonic-gate 
2267c478bd9Sstevel@tonic-gate #define KRB5_INT16_MAX 65535
2277c478bd9Sstevel@tonic-gate /* this strange form is necessary since - is a unary operator, not a sign
2287c478bd9Sstevel@tonic-gate    indicator */
2297c478bd9Sstevel@tonic-gate #define KRB5_INT16_MIN	(-KRB5_INT16_MAX-1)
2307c478bd9Sstevel@tonic-gate 
2317c478bd9Sstevel@tonic-gate /*
2327c478bd9Sstevel@tonic-gate  * end wordsize.h
2337c478bd9Sstevel@tonic-gate  */
2347c478bd9Sstevel@tonic-gate 
2357c478bd9Sstevel@tonic-gate /*
2367c478bd9Sstevel@tonic-gate  * begin "base-defs.h"
2377c478bd9Sstevel@tonic-gate  */
2387c478bd9Sstevel@tonic-gate 
2397c478bd9Sstevel@tonic-gate /*
2407c478bd9Sstevel@tonic-gate  * Basic definitions for Kerberos V5 library
2417c478bd9Sstevel@tonic-gate  */
2427c478bd9Sstevel@tonic-gate 
2437c478bd9Sstevel@tonic-gate #ifndef FALSE
2447c478bd9Sstevel@tonic-gate #define	FALSE	0
2457c478bd9Sstevel@tonic-gate #endif
2467c478bd9Sstevel@tonic-gate #ifndef TRUE
2477c478bd9Sstevel@tonic-gate #define	TRUE	1
2487c478bd9Sstevel@tonic-gate #endif
2497c478bd9Sstevel@tonic-gate 
2507c478bd9Sstevel@tonic-gate typedef	unsigned int krb5_boolean;
2517c478bd9Sstevel@tonic-gate typedef	unsigned int krb5_msgtype;
2527c478bd9Sstevel@tonic-gate typedef	unsigned int krb5_kvno;
2537c478bd9Sstevel@tonic-gate 
2547c478bd9Sstevel@tonic-gate typedef	krb5_int32	krb5_addrtype;
2557c478bd9Sstevel@tonic-gate typedef krb5_int32	krb5_enctype;
2567c478bd9Sstevel@tonic-gate typedef krb5_int32	krb5_cksumtype;
2577c478bd9Sstevel@tonic-gate typedef krb5_int32	krb5_authdatatype;
2587c478bd9Sstevel@tonic-gate typedef krb5_int32	krb5_keyusage;
2597c478bd9Sstevel@tonic-gate 
2607c478bd9Sstevel@tonic-gate typedef krb5_int32	krb5_preauthtype; /* This may change, later on */
2617c478bd9Sstevel@tonic-gate typedef	krb5_int32	krb5_flags;
2627c478bd9Sstevel@tonic-gate typedef krb5_int32	krb5_timestamp;
2637c478bd9Sstevel@tonic-gate typedef	krb5_int32	krb5_error_code;
2647c478bd9Sstevel@tonic-gate typedef krb5_int32	krb5_deltat;
2657c478bd9Sstevel@tonic-gate 
2667c478bd9Sstevel@tonic-gate typedef krb5_error_code	krb5_magic;
2677c478bd9Sstevel@tonic-gate 
2687c478bd9Sstevel@tonic-gate typedef struct _krb5_data {
2697c478bd9Sstevel@tonic-gate     krb5_magic magic;
2707c478bd9Sstevel@tonic-gate     unsigned int length;
2717c478bd9Sstevel@tonic-gate     char *data;
2727c478bd9Sstevel@tonic-gate } krb5_data;
2737c478bd9Sstevel@tonic-gate 
274*505d05c7Sgtb /*
275*505d05c7Sgtb  * Hack length for crypto library to use the afs_string_to_key It is
276*505d05c7Sgtb  * equivalent to -1 without possible sign extension
277*505d05c7Sgtb  * We also overload for an unset salt type length - which is also -1, but
278*505d05c7Sgtb  * hey, why not....
279*505d05c7Sgtb */
280*505d05c7Sgtb #define SALT_TYPE_AFS_LENGTH UINT_MAX
281*505d05c7Sgtb #define SALT_TYPE_NO_LENGTH  UINT_MAX
2827c478bd9Sstevel@tonic-gate 
283*505d05c7Sgtb typedef void * krb5_pointer;
284*505d05c7Sgtb typedef void const * krb5_const_pointer;
2857c478bd9Sstevel@tonic-gate 
2867c478bd9Sstevel@tonic-gate typedef struct krb5_principal_data {
2877c478bd9Sstevel@tonic-gate     krb5_magic magic;
2887c478bd9Sstevel@tonic-gate     krb5_data realm;
2897c478bd9Sstevel@tonic-gate     krb5_data *data;		/* An array of strings */
2907c478bd9Sstevel@tonic-gate     krb5_int32 length;
2917c478bd9Sstevel@tonic-gate     krb5_int32 type;
2927c478bd9Sstevel@tonic-gate } krb5_principal_data;
2937c478bd9Sstevel@tonic-gate 
2947c478bd9Sstevel@tonic-gate typedef	krb5_principal_data * krb5_principal;
2957c478bd9Sstevel@tonic-gate 
2967c478bd9Sstevel@tonic-gate /*
2977c478bd9Sstevel@tonic-gate  * Per V5 spec on definition of principal types
2987c478bd9Sstevel@tonic-gate  */
2997c478bd9Sstevel@tonic-gate 
3007c478bd9Sstevel@tonic-gate /* Name type not known */
3017c478bd9Sstevel@tonic-gate #define KRB5_NT_UNKNOWN		0
3027c478bd9Sstevel@tonic-gate /* Just the name of the principal as in DCE, or for users */
3037c478bd9Sstevel@tonic-gate #define KRB5_NT_PRINCIPAL	1
3047c478bd9Sstevel@tonic-gate /* Service and other unique instance (krbtgt) */
3057c478bd9Sstevel@tonic-gate #define KRB5_NT_SRV_INST	2
3067c478bd9Sstevel@tonic-gate /* Service with host name as instance (telnet, rcommands) */
3077c478bd9Sstevel@tonic-gate #define KRB5_NT_SRV_HST		3
3087c478bd9Sstevel@tonic-gate /* Service with host as remaining components */
3097c478bd9Sstevel@tonic-gate #define KRB5_NT_SRV_XHST	4
3107c478bd9Sstevel@tonic-gate /* Unique ID */
3117c478bd9Sstevel@tonic-gate #define KRB5_NT_UID		5
3127c478bd9Sstevel@tonic-gate 
3137c478bd9Sstevel@tonic-gate /* constant version thereof: */
314*505d05c7Sgtb typedef const krb5_principal_data *krb5_const_principal;
3157c478bd9Sstevel@tonic-gate 
3167c478bd9Sstevel@tonic-gate #define krb5_princ_realm(context, princ) (&(princ)->realm)
3177c478bd9Sstevel@tonic-gate #define krb5_princ_set_realm(context, princ,value) ((princ)->realm = *(value))
3187c478bd9Sstevel@tonic-gate #define krb5_princ_set_realm_length(context, princ,value) (princ)->realm.length = (value)
3197c478bd9Sstevel@tonic-gate #define krb5_princ_set_realm_data(context, princ,value) (princ)->realm.data = (value)
3207c478bd9Sstevel@tonic-gate #define	krb5_princ_size(context, princ) (princ)->length
3217c478bd9Sstevel@tonic-gate #define	krb5_princ_type(context, princ) (princ)->type
3227c478bd9Sstevel@tonic-gate #define	krb5_princ_name(context, princ) (princ)->data
323*505d05c7Sgtb #define krb5_princ_component(context, princ,i)         \
324*505d05c7Sgtb             (((i) < krb5_princ_size(context, princ)) \
325*505d05c7Sgtb              ? (princ)->data + (i)                   \
326*505d05c7Sgtb              : NULL)
3277c478bd9Sstevel@tonic-gate 
3287c478bd9Sstevel@tonic-gate /*
3297c478bd9Sstevel@tonic-gate  * end "base-defs.h"
3307c478bd9Sstevel@tonic-gate  */
3317c478bd9Sstevel@tonic-gate 
3327c478bd9Sstevel@tonic-gate /*
3337c478bd9Sstevel@tonic-gate  * begin "hostaddr.h"
3347c478bd9Sstevel@tonic-gate  */
3357c478bd9Sstevel@tonic-gate 
3367c478bd9Sstevel@tonic-gate /* structure for address */
3377c478bd9Sstevel@tonic-gate typedef struct _krb5_address {
3387c478bd9Sstevel@tonic-gate     krb5_magic magic;
3397c478bd9Sstevel@tonic-gate     krb5_addrtype addrtype;
3407c478bd9Sstevel@tonic-gate     unsigned int length;
3417c478bd9Sstevel@tonic-gate     krb5_octet *contents;
3427c478bd9Sstevel@tonic-gate } krb5_address;
3437c478bd9Sstevel@tonic-gate 
3447c478bd9Sstevel@tonic-gate /* per Kerberos v5 protocol spec */
3457c478bd9Sstevel@tonic-gate #define	ADDRTYPE_INET		0x0002
3467c478bd9Sstevel@tonic-gate #define	ADDRTYPE_CHAOS		0x0005
3477c478bd9Sstevel@tonic-gate #define	ADDRTYPE_XNS		0x0006
3487c478bd9Sstevel@tonic-gate #define	ADDRTYPE_ISO		0x0007
3497c478bd9Sstevel@tonic-gate #define	ADDRTYPE_DDP		0x0010
3507c478bd9Sstevel@tonic-gate #define	ADDRTYPE_INET6		0x0018
3517c478bd9Sstevel@tonic-gate /* not yet in the spec... */
3527c478bd9Sstevel@tonic-gate #define	ADDRTYPE_ADDRPORT	0x0100
3537c478bd9Sstevel@tonic-gate #define	ADDRTYPE_IPPORT		0x0101
3547c478bd9Sstevel@tonic-gate 
3557c478bd9Sstevel@tonic-gate /* macros to determine if a type is a local type */
3567c478bd9Sstevel@tonic-gate #define ADDRTYPE_IS_LOCAL(addrtype) (addrtype & 0x8000)
3577c478bd9Sstevel@tonic-gate 
3587c478bd9Sstevel@tonic-gate /*
3597c478bd9Sstevel@tonic-gate  * end "hostaddr.h"
3607c478bd9Sstevel@tonic-gate  */
3617c478bd9Sstevel@tonic-gate 
3627c478bd9Sstevel@tonic-gate 
3637c478bd9Sstevel@tonic-gate struct _krb5_context;
3647c478bd9Sstevel@tonic-gate typedef struct _krb5_context * krb5_context;
3657c478bd9Sstevel@tonic-gate 
3667c478bd9Sstevel@tonic-gate struct _krb5_auth_context;
3677c478bd9Sstevel@tonic-gate typedef struct _krb5_auth_context * krb5_auth_context;
3687c478bd9Sstevel@tonic-gate 
3697c478bd9Sstevel@tonic-gate struct _krb5_cryptosystem_entry;
3707c478bd9Sstevel@tonic-gate 
371*505d05c7Sgtb /* SUNW EF (I assume) crypto mods ... */
3727c478bd9Sstevel@tonic-gate struct _krb5_keyblock;
3737c478bd9Sstevel@tonic-gate 
3747c478bd9Sstevel@tonic-gate /*
3757c478bd9Sstevel@tonic-gate  * keyblocks will contain a list of derived keys,
3767c478bd9Sstevel@tonic-gate  * this  structure will contain the derived key data.
3777c478bd9Sstevel@tonic-gate  */
3787c478bd9Sstevel@tonic-gate typedef struct _dk_node {
3797c478bd9Sstevel@tonic-gate     krb5_keyusage   usage;
3807c478bd9Sstevel@tonic-gate     struct _krb5_keyblock   *derived_key;
3817c478bd9Sstevel@tonic-gate     uchar_t         dkid; /* derived key identifier byte */
3827c478bd9Sstevel@tonic-gate     struct _dk_node *next;
3837c478bd9Sstevel@tonic-gate } krb5_dk_node;
3847c478bd9Sstevel@tonic-gate 
3857c478bd9Sstevel@tonic-gate /*
3867c478bd9Sstevel@tonic-gate  * begin "encryption.h"
3877c478bd9Sstevel@tonic-gate  */
3887c478bd9Sstevel@tonic-gate typedef struct _krb5_keyblock {
3897c478bd9Sstevel@tonic-gate     krb5_magic magic;
3907c478bd9Sstevel@tonic-gate     krb5_enctype enctype;
3917c478bd9Sstevel@tonic-gate     unsigned int length;
3927c478bd9Sstevel@tonic-gate     krb5_octet *contents;
3937c478bd9Sstevel@tonic-gate     krb5_dk_node   *dk_list; /* list of keys derived from this key */
3947c478bd9Sstevel@tonic-gate #ifdef _KERNEL
3957c478bd9Sstevel@tonic-gate     crypto_mech_type_t     kef_mt;
3967c478bd9Sstevel@tonic-gate     crypto_key_t           kef_key;
3977c478bd9Sstevel@tonic-gate     crypto_ctx_template_t  key_tmpl;
3987c478bd9Sstevel@tonic-gate #else
3997c478bd9Sstevel@tonic-gate     CK_OBJECT_HANDLE       hKey; /* PKCS#11 key object handle */
4007c478bd9Sstevel@tonic-gate     pid_t	pid; /* fork safety */
4017c478bd9Sstevel@tonic-gate #endif /* _KERNEL */
4027c478bd9Sstevel@tonic-gate } krb5_keyblock;
4037c478bd9Sstevel@tonic-gate 
4047c478bd9Sstevel@tonic-gate typedef struct _krb5_checksum {
4057c478bd9Sstevel@tonic-gate     krb5_magic magic;
4067c478bd9Sstevel@tonic-gate     krb5_cksumtype checksum_type;	/* checksum type */
4077c478bd9Sstevel@tonic-gate     unsigned int length;
4087c478bd9Sstevel@tonic-gate     krb5_octet *contents;
4097c478bd9Sstevel@tonic-gate } krb5_checksum;
4107c478bd9Sstevel@tonic-gate 
4117c478bd9Sstevel@tonic-gate typedef struct _krb5_encrypt_block {
4127c478bd9Sstevel@tonic-gate     krb5_magic magic;
4137c478bd9Sstevel@tonic-gate     krb5_enctype crypto_entry;		/* to call krb5_encrypt_size, you need
4147c478bd9Sstevel@tonic-gate 					   this.  it was a pointer, but it
4157c478bd9Sstevel@tonic-gate 					   doesn't have to be.  gross. */
4167c478bd9Sstevel@tonic-gate     krb5_keyblock *key;
4177c478bd9Sstevel@tonic-gate } krb5_encrypt_block;
4187c478bd9Sstevel@tonic-gate 
4197c478bd9Sstevel@tonic-gate typedef struct _krb5_enc_data {
4207c478bd9Sstevel@tonic-gate     krb5_magic magic;
4217c478bd9Sstevel@tonic-gate     krb5_enctype enctype;
4227c478bd9Sstevel@tonic-gate     krb5_kvno kvno;
4237c478bd9Sstevel@tonic-gate     krb5_data ciphertext;
4247c478bd9Sstevel@tonic-gate } krb5_enc_data;
4257c478bd9Sstevel@tonic-gate 
4267c478bd9Sstevel@tonic-gate /* per Kerberos v5 protocol spec */
4277c478bd9Sstevel@tonic-gate #define	ENCTYPE_NULL		0x0000
4287c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES_CBC_CRC	0x0001	/* DES cbc mode with CRC-32 */
4297c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES_CBC_MD4	0x0002	/* DES cbc mode with RSA-MD4 */
4307c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES_CBC_MD5	0x0003	/* DES cbc mode with RSA-MD5 */
4317c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES_CBC_RAW	0x0004  /* DES cbc mode raw */
4327c478bd9Sstevel@tonic-gate /* XXX deprecated? */
4337c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES3_CBC_SHA	0x0005	/* DES-3 cbc mode with NIST-SHA */
4347c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES3_CBC_RAW	0x0006	/* DES-3 cbc mode raw */
4357c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES_HMAC_SHA1	0x0008
4367c478bd9Sstevel@tonic-gate #define	ENCTYPE_DES3_CBC_SHA1	0x0010
4377c478bd9Sstevel@tonic-gate #define ENCTYPE_AES128_CTS_HMAC_SHA1_96 0x0011
4387c478bd9Sstevel@tonic-gate #define ENCTYPE_AES256_CTS_HMAC_SHA1_96 0x0012
4397c478bd9Sstevel@tonic-gate #define ENCTYPE_ARCFOUR_HMAC	0x0017
4407c478bd9Sstevel@tonic-gate #define ENCTYPE_ARCFOUR_HMAC_EXP 0x0018
4417c478bd9Sstevel@tonic-gate #define	ENCTYPE_UNKNOWN		0x01ff
4427c478bd9Sstevel@tonic-gate 
4437c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_CRC32		0x0001
4447c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_RSA_MD4	0x0002
4457c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_RSA_MD4_DES	0x0003
4467c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_DESCBC	0x0004
4477c478bd9Sstevel@tonic-gate /* des-mac-k */
4487c478bd9Sstevel@tonic-gate /* rsa-md4-des-k */
4497c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_RSA_MD5	0x0007
4507c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_RSA_MD5_DES	0x0008
4517c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_NIST_SHA	0x0009
4527c478bd9Sstevel@tonic-gate #define	CKSUMTYPE_HMAC_SHA1_DES3	0x000c
4537c478bd9Sstevel@tonic-gate #define CKSUMTYPE_HMAC_SHA1_96_AES128	0x000f
4547c478bd9Sstevel@tonic-gate #define CKSUMTYPE_HMAC_SHA1_96_AES256	0x0010
4557c478bd9Sstevel@tonic-gate #define CKSUMTYPE_HMAC_MD5_ARCFOUR -138 /*Microsoft md5 hmac cksumtype*/
4567c478bd9Sstevel@tonic-gate 
457*505d05c7Sgtb /* The following are entropy source designations. Whenever
458*505d05c7Sgtb  * krb5_C_random_add_entropy is called, one of these source  ids is passed
459*505d05c7Sgtb  * in.  This  allows the library  to better estimate bits of
460*505d05c7Sgtb  * entropy in the sample and to keep track of what sources of entropy have
461*505d05c7Sgtb  * contributed enough entropy.  Sources marked internal MUST NOT be
462*505d05c7Sgtb  * used by applications outside the Kerberos library
463*505d05c7Sgtb */
464*505d05c7Sgtb 
465*505d05c7Sgtb enum {
466*505d05c7Sgtb   KRB5_C_RANDSOURCE_OLDAPI = 0, /*calls to krb5_C_RANDOM_SEED (INTERNAL)*/
467*505d05c7Sgtb   KRB5_C_RANDSOURCE_OSRAND = 1, /* /dev/random or equivalent (internal)*/
468*505d05c7Sgtb   KRB5_C_RANDSOURCE_TRUSTEDPARTY = 2, /* From KDC or other trusted party*/
469*505d05c7Sgtb   /*This source should be used carefully; data in this category
470*505d05c7Sgtb    * should be from a third party trusted to give random bits
471*505d05c7Sgtb    * For example keys issued by the KDC in the application server.
472*505d05c7Sgtb    */
473*505d05c7Sgtb   KRB5_C_RANDSOURCE_TIMING = 3, /* Timing of operations*/
474*505d05c7Sgtb   KRB5_C_RANDSOURCE_EXTERNAL_PROTOCOL = 4, /*Protocol data possibly from attacker*/
475*505d05c7Sgtb   KRB5_C_RANDSOURCE_MAX = 5 /*Do not use; maximum source ID*/
476*505d05c7Sgtb };
4777c478bd9Sstevel@tonic-gate 
4787c478bd9Sstevel@tonic-gate #ifndef krb5_roundup
4797c478bd9Sstevel@tonic-gate /* round x up to nearest multiple of y */
4807c478bd9Sstevel@tonic-gate #define krb5_roundup(x, y) ((((x) + (y) - 1)/(y))*(y))
4817c478bd9Sstevel@tonic-gate #endif /* roundup */
4827c478bd9Sstevel@tonic-gate 
4837c478bd9Sstevel@tonic-gate /* macro function definitions to help clean up code */
4847c478bd9Sstevel@tonic-gate 
4857c478bd9Sstevel@tonic-gate #ifndef _KERNEL
4867c478bd9Sstevel@tonic-gate #define krb5_x(ptr,args) ((ptr)?((*(ptr)) args):(abort(),1))
4877c478bd9Sstevel@tonic-gate #define krb5_xc(ptr,args) ((ptr)?((*(ptr)) args):(abort(),(char*)0))
4887c478bd9Sstevel@tonic-gate #else
4897c478bd9Sstevel@tonic-gate #define krb5_x(ptr,args) ((*(ptr)) args)
4907c478bd9Sstevel@tonic-gate #define krb5_xc(ptr,args) ((*(ptr)) args)
4917c478bd9Sstevel@tonic-gate #endif
4927c478bd9Sstevel@tonic-gate 
4937c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
4947c478bd9Sstevel@tonic-gate     krb5_c_encrypt
495*505d05c7Sgtb     (krb5_context context,
496*505d05c7Sgtb 		    const krb5_keyblock *key,
497*505d05c7Sgtb 		    krb5_keyusage usage, const krb5_data *ivec,
498*505d05c7Sgtb 		    const krb5_data *input, krb5_enc_data *output);
4997c478bd9Sstevel@tonic-gate 
5007c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
5017c478bd9Sstevel@tonic-gate     krb5_c_decrypt
502*505d05c7Sgtb     (krb5_context context,
503*505d05c7Sgtb 		    const krb5_keyblock *key,
504*505d05c7Sgtb 		    krb5_keyusage usage, const krb5_data *ivec,
505*505d05c7Sgtb 		    const krb5_enc_data *input, krb5_data *output);
5067c478bd9Sstevel@tonic-gate 
5077c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
5087c478bd9Sstevel@tonic-gate     krb5_c_encrypt_length
509*505d05c7Sgtb     (krb5_context context, krb5_enctype enctype,
510*505d05c7Sgtb 		    size_t inputlen, size_t *length);
5117c478bd9Sstevel@tonic-gate 
5127c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
5137c478bd9Sstevel@tonic-gate     krb5_c_block_size
514*505d05c7Sgtb     (krb5_context context, krb5_enctype enctype,
515*505d05c7Sgtb 		    size_t *blocksize);
5167c478bd9Sstevel@tonic-gate 
5177c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
5187c478bd9Sstevel@tonic-gate 	krb5_c_init_state(krb5_context,
5197c478bd9Sstevel@tonic-gate 		const krb5_keyblock *, krb5_keyusage,
5207c478bd9Sstevel@tonic-gate 		krb5_data *);
5217c478bd9Sstevel@tonic-gate 
5227c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
5237c478bd9Sstevel@tonic-gate 	krb5_c_free_state(krb5_context,
5247c478bd9Sstevel@tonic-gate 		const krb5_keyblock *, krb5_data *);
5257c478bd9Sstevel@tonic-gate 
5267c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
5277c478bd9Sstevel@tonic-gate     krb5_c_make_random_key
528*505d05c7Sgtb     (krb5_context context, krb5_enctype enctype,
529*505d05c7Sgtb 		    krb5_keyblock *random_key);
530*505d05c7Sgtb 
531*505d05c7Sgtb /* Register a new entropy sample  with the PRNG. may cause
532*505d05c7Sgtb * the PRNG to be reseeded, although this is not guaranteed.  See previous randsource definitions
533*505d05c7Sgtb * for information on how each source should be used.
534*505d05c7Sgtb */
535*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
536*505d05c7Sgtb         krb5_c_random_add_entropy
537*505d05c7Sgtb (krb5_context context, unsigned int  randsource_id, const krb5_data *data);
5387c478bd9Sstevel@tonic-gate 
5397c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
5407c478bd9Sstevel@tonic-gate     krb5_c_random_make_octets
541*505d05c7Sgtb     (krb5_context context, krb5_data *data);
542*505d05c7Sgtb 
543*505d05c7Sgtb /*
544*505d05c7Sgtb * Collect entropy from the OS if possible. strong requests that as strong
545*505d05c7Sgtb * of a source of entropy  as available be used.  Setting strong may
546*505d05c7Sgtb * increase the probability of blocking and should not  be used for normal
547*505d05c7Sgtb * applications.  Good uses include seeding the PRNG for kadmind
548*505d05c7Sgtb * and realm setup.
549*505d05c7Sgtb * If successful is non-null, then successful is set to 1 if the OS provided
550*505d05c7Sgtb * entropy else zero.
551*505d05c7Sgtb */
552*505d05c7Sgtb #if 0 /* SUNW14resync - not used in Solaris */
553*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
554*505d05c7Sgtb krb5_c_random_os_entropy
555*505d05c7Sgtb (krb5_context context, int strong, int *success);
556*505d05c7Sgtb #endif
5577c478bd9Sstevel@tonic-gate 
558*505d05c7Sgtb /*deprecated*/ krb5_error_code KRB5_CALLCONV
5597c478bd9Sstevel@tonic-gate     krb5_c_random_seed
560*505d05c7Sgtb     (krb5_context context, krb5_data *data);
5617c478bd9Sstevel@tonic-gate 
5627c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
5637c478bd9Sstevel@tonic-gate     krb5_c_string_to_key
564*505d05c7Sgtb     (krb5_context context, krb5_enctype enctype,
565*505d05c7Sgtb 		    const krb5_data *string, const krb5_data *salt,
566*505d05c7Sgtb 		    krb5_keyblock *key);
5677c478bd9Sstevel@tonic-gate 
5687c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
5697c478bd9Sstevel@tonic-gate krb5_c_string_to_key_with_params(krb5_context context,
5707c478bd9Sstevel@tonic-gate                                  krb5_enctype enctype,
5717c478bd9Sstevel@tonic-gate                                  const krb5_data *string,
5727c478bd9Sstevel@tonic-gate                                  const krb5_data *salt,
5737c478bd9Sstevel@tonic-gate                                  const krb5_data *params,
5747c478bd9Sstevel@tonic-gate                                  krb5_keyblock *key);
5757c478bd9Sstevel@tonic-gate 
5767c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
5777c478bd9Sstevel@tonic-gate     krb5_c_enctype_compare
578*505d05c7Sgtb     (krb5_context context, krb5_enctype e1, krb5_enctype e2,
579*505d05c7Sgtb 		    krb5_boolean *similar);
5807c478bd9Sstevel@tonic-gate 
5817c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
5827c478bd9Sstevel@tonic-gate     krb5_c_make_checksum
583*505d05c7Sgtb     (krb5_context context, krb5_cksumtype cksumtype,
584*505d05c7Sgtb 		    const krb5_keyblock *key, krb5_keyusage usage,
585*505d05c7Sgtb 		    const krb5_data *input, krb5_checksum *cksum);
5867c478bd9Sstevel@tonic-gate 
5877c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
5887c478bd9Sstevel@tonic-gate     krb5_c_verify_checksum
589*505d05c7Sgtb     (krb5_context context,
590*505d05c7Sgtb 		    const krb5_keyblock *key, krb5_keyusage usage,
591*505d05c7Sgtb 		    const krb5_data *data,
592*505d05c7Sgtb 		    const krb5_checksum *cksum,
593*505d05c7Sgtb 		    krb5_boolean *valid);
5947c478bd9Sstevel@tonic-gate 
5957c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
5967c478bd9Sstevel@tonic-gate     krb5_c_checksum_length
597*505d05c7Sgtb     (krb5_context context, krb5_cksumtype cksumtype,
598*505d05c7Sgtb 		    size_t *length);
5997c478bd9Sstevel@tonic-gate 
6007c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
6017c478bd9Sstevel@tonic-gate     krb5_c_keyed_checksum_types
602*505d05c7Sgtb     (krb5_context context, krb5_enctype enctype,
603*505d05c7Sgtb 		    unsigned int *count, krb5_cksumtype **cksumtypes);
6047c478bd9Sstevel@tonic-gate 
6057c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AS_REQ_PA_ENC_TS		1
6067c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_KDC_REP_TICKET		2
6077c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AS_REP_ENCPART		3
6087c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_TGS_REQ_AD_SESSKEY	4
6097c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_TGS_REQ_AD_SUBKEY		5
6107c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_TGS_REQ_AUTH_CKSUM	6
6117c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_TGS_REQ_AUTH		7
6127c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_TGS_REP_ENCPART_SESSKEY	8
6137c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_TGS_REP_ENCPART_SUBKEY	9
6147c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AP_REQ_AUTH_CKSUM		10
6157c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AP_REQ_AUTH		11
6167c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AP_REP_ENCPART		12
6177c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_KRB_PRIV_ENCPART		13
6187c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_KRB_CRED_ENCPART		14
6197c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_KRB_SAFE_CKSUM		15
6207c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_APP_DATA_ENCRYPT		16
6217c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_APP_DATA_CKSUM		17
6227c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_KRB_ERROR_CKSUM		18
6237c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AD_KDCISSUED_CKSUM	19
6247c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AD_MTE			20
6257c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_AD_ITE			21
6267c478bd9Sstevel@tonic-gate 
6277c478bd9Sstevel@tonic-gate /* XXX need to register these */
6287c478bd9Sstevel@tonic-gate 
6297c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_GSS_TOK_MIC		22
6307c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_GSS_TOK_WRAP_INTEG	23
6317c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_GSS_TOK_WRAP_PRIV		24
6327c478bd9Sstevel@tonic-gate 
6337c478bd9Sstevel@tonic-gate /* Defined in hardware preauth draft */
6347c478bd9Sstevel@tonic-gate 
6357c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_PA_SAM_CHALLENGE_CKSUM	25
6367c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID	26
6377c478bd9Sstevel@tonic-gate #define KRB5_KEYUSAGE_PA_SAM_RESPONSE		27
6387c478bd9Sstevel@tonic-gate 
6397c478bd9Sstevel@tonic-gate krb5_boolean KRB5_CALLCONV krb5_c_valid_enctype
640*505d05c7Sgtb         (krb5_enctype ktype);
6417c478bd9Sstevel@tonic-gate krb5_boolean KRB5_CALLCONV krb5_c_valid_cksumtype
642*505d05c7Sgtb         (krb5_cksumtype ctype);
6437c478bd9Sstevel@tonic-gate krb5_boolean KRB5_CALLCONV krb5_c_is_coll_proof_cksum
644*505d05c7Sgtb         (krb5_cksumtype ctype);
6457c478bd9Sstevel@tonic-gate krb5_boolean KRB5_CALLCONV krb5_c_is_keyed_cksum
646*505d05c7Sgtb         (krb5_cksumtype ctype);
647*505d05c7Sgtb 
648*505d05c7Sgtb 
649*505d05c7Sgtb #if KRB5_PRIVATE
650*505d05c7Sgtb /* Use the above four instead.  */
651*505d05c7Sgtb krb5_boolean KRB5_CALLCONV valid_enctype
652*505d05c7Sgtb         (krb5_enctype ktype);
653*505d05c7Sgtb krb5_boolean KRB5_CALLCONV valid_cksumtype
654*505d05c7Sgtb         (krb5_cksumtype ctype);
655*505d05c7Sgtb krb5_boolean KRB5_CALLCONV is_coll_proof_cksum
656*505d05c7Sgtb         (krb5_cksumtype ctype);
657*505d05c7Sgtb krb5_boolean KRB5_CALLCONV is_keyed_cksum
658*505d05c7Sgtb         (krb5_cksumtype ctype);
659*505d05c7Sgtb #endif
6607c478bd9Sstevel@tonic-gate 
661*505d05c7Sgtb /* #ifdef KRB5_OLD_CRYPTO
662*505d05c7Sgtb  * this mit block removed for Solaris Kerberos
663*505d05c7Sgtb #endif KRB5_OLD_CRYPTO */
6647c478bd9Sstevel@tonic-gate 
6657c478bd9Sstevel@tonic-gate /*
6667c478bd9Sstevel@tonic-gate  * end "encryption.h"
6677c478bd9Sstevel@tonic-gate  */
6687c478bd9Sstevel@tonic-gate 
6697c478bd9Sstevel@tonic-gate /*
6707c478bd9Sstevel@tonic-gate  * begin "fieldbits.h"
6717c478bd9Sstevel@tonic-gate  */
6727c478bd9Sstevel@tonic-gate 
6737c478bd9Sstevel@tonic-gate /* kdc_options for kdc_request */
6747c478bd9Sstevel@tonic-gate /* options is 32 bits; each host is responsible to put the 4 bytes
6757c478bd9Sstevel@tonic-gate    representing these bits into net order before transmission */
6767c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x80000000 */
6777c478bd9Sstevel@tonic-gate #define	KDC_OPT_FORWARDABLE		0x40000000
6787c478bd9Sstevel@tonic-gate #define	KDC_OPT_FORWARDED		0x20000000
6797c478bd9Sstevel@tonic-gate #define	KDC_OPT_PROXIABLE		0x10000000
6807c478bd9Sstevel@tonic-gate #define	KDC_OPT_PROXY			0x08000000
6817c478bd9Sstevel@tonic-gate #define	KDC_OPT_ALLOW_POSTDATE		0x04000000
6827c478bd9Sstevel@tonic-gate #define	KDC_OPT_POSTDATED		0x02000000
6837c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_UNUSED		0x01000000 */
6847c478bd9Sstevel@tonic-gate #define	KDC_OPT_RENEWABLE		0x00800000
6857c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_UNUSED		0x00400000 */
6867c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00200000 */
6877c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00100000 */
6887c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00080000 */
6897c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00040000 */
6907c478bd9Sstevel@tonic-gate #define	KDC_OPT_REQUEST_ANONYMOUS	0x00020000
6917c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00010000 */
6927c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00008000 */
6937c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00004000 */
6947c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00002000 */
6957c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00001000 */
6967c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00000800 */
6977c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00000400 */
6987c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00000200 */
6997c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00000100 */
7007c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00000080 */
7017c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_RESERVED	0x00000040 */
7027c478bd9Sstevel@tonic-gate #define	KDC_OPT_DISABLE_TRANSITED_CHECK 0x00000020
7037c478bd9Sstevel@tonic-gate #define	KDC_OPT_RENEWABLE_OK		0x00000010
7047c478bd9Sstevel@tonic-gate #define	KDC_OPT_ENC_TKT_IN_SKEY		0x00000008
7057c478bd9Sstevel@tonic-gate /* #define	KDC_OPT_UNUSED		0x00000004 */
7067c478bd9Sstevel@tonic-gate #define	KDC_OPT_RENEW			0x00000002
7077c478bd9Sstevel@tonic-gate #define	KDC_OPT_VALIDATE		0x00000001
7087c478bd9Sstevel@tonic-gate 
7097c478bd9Sstevel@tonic-gate /*
7107c478bd9Sstevel@tonic-gate  * Mask of ticket flags in the TGT which should be converted into KDC
7117c478bd9Sstevel@tonic-gate  * options when using the TGT to get derivitive tickets.
7127c478bd9Sstevel@tonic-gate  *
7137c478bd9Sstevel@tonic-gate  *  New mask = KDC_OPT_FORWARDABLE | KDC_OPT_PROXIABLE |
7147c478bd9Sstevel@tonic-gate  *             KDC_OPT_ALLOW_POSTDATE | KDC_OPT_RENEWABLE
7157c478bd9Sstevel@tonic-gate  */
7167c478bd9Sstevel@tonic-gate #define KDC_TKT_COMMON_MASK		0x54800000
7177c478bd9Sstevel@tonic-gate 
7187c478bd9Sstevel@tonic-gate /* definitions for ap_options fields */
7197c478bd9Sstevel@tonic-gate /* ap_options are 32 bits; each host is responsible to put the 4 bytes
7207c478bd9Sstevel@tonic-gate    representing these bits into net order before transmission */
7217c478bd9Sstevel@tonic-gate #define	AP_OPTS_RESERVED		0x80000000
7227c478bd9Sstevel@tonic-gate #define	AP_OPTS_USE_SESSION_KEY		0x40000000
7237c478bd9Sstevel@tonic-gate #define	AP_OPTS_MUTUAL_REQUIRED		0x20000000
7247c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x10000000 */
7257c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x08000000 */
7267c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x04000000 */
7277c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x02000000 */
7287c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x01000000 */
7297c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00800000 */
7307c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00400000 */
7317c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00200000 */
7327c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00100000 */
7337c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00080000 */
7347c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00040000 */
7357c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00020000 */
7367c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00010000 */
7377c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00008000 */
7387c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00004000 */
7397c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00002000 */
7407c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00001000 */
7417c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000800 */
7427c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000400 */
7437c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000200 */
7447c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000100 */
7457c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000080 */
7467c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000040 */
7477c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000020 */
7487c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000010 */
7497c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000008 */
7507c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000004 */
7517c478bd9Sstevel@tonic-gate /* #define	AP_OPTS_RESERVED	0x00000002 */
7527c478bd9Sstevel@tonic-gate #define AP_OPTS_USE_SUBKEY      0x00000001
7537c478bd9Sstevel@tonic-gate 
7547c478bd9Sstevel@tonic-gate #define AP_OPTS_WIRE_MASK	0xfffffff0
7557c478bd9Sstevel@tonic-gate 
7567c478bd9Sstevel@tonic-gate /* definitions for ad_type fields. */
7577c478bd9Sstevel@tonic-gate #define	AD_TYPE_RESERVED	0x8000
7587c478bd9Sstevel@tonic-gate #define	AD_TYPE_EXTERNAL	0x4000
7597c478bd9Sstevel@tonic-gate #define	AD_TYPE_REGISTERED	0x2000
7607c478bd9Sstevel@tonic-gate 
7617c478bd9Sstevel@tonic-gate #define AD_TYPE_FIELD_TYPE_MASK	0x1fff
7627c478bd9Sstevel@tonic-gate 
7637c478bd9Sstevel@tonic-gate /* Ticket flags */
7647c478bd9Sstevel@tonic-gate /* flags are 32 bits; each host is responsible to put the 4 bytes
7657c478bd9Sstevel@tonic-gate    representing these bits into net order before transmission */
7667c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x80000000 */
7677c478bd9Sstevel@tonic-gate #define	TKT_FLG_FORWARDABLE		0x40000000
7687c478bd9Sstevel@tonic-gate #define	TKT_FLG_FORWARDED		0x20000000
7697c478bd9Sstevel@tonic-gate #define	TKT_FLG_PROXIABLE		0x10000000
7707c478bd9Sstevel@tonic-gate #define	TKT_FLG_PROXY			0x08000000
7717c478bd9Sstevel@tonic-gate #define	TKT_FLG_MAY_POSTDATE		0x04000000
7727c478bd9Sstevel@tonic-gate #define	TKT_FLG_POSTDATED		0x02000000
7737c478bd9Sstevel@tonic-gate #define	TKT_FLG_INVALID			0x01000000
7747c478bd9Sstevel@tonic-gate #define	TKT_FLG_RENEWABLE		0x00800000
7757c478bd9Sstevel@tonic-gate #define	TKT_FLG_INITIAL			0x00400000
7767c478bd9Sstevel@tonic-gate #define	TKT_FLG_PRE_AUTH		0x00200000
7777c478bd9Sstevel@tonic-gate #define	TKT_FLG_HW_AUTH			0x00100000
7787c478bd9Sstevel@tonic-gate #define	TKT_FLG_TRANSIT_POLICY_CHECKED	0x00080000
7797c478bd9Sstevel@tonic-gate #define	TKT_FLG_OK_AS_DELEGATE		0x00040000
7807c478bd9Sstevel@tonic-gate #define	TKT_FLG_ANONYMOUS		0x00020000
7817c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00010000 */
7827c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00008000 */
7837c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00004000 */
7847c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00002000 */
7857c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00001000 */
7867c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000800 */
7877c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000400 */
7887c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000200 */
7897c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000100 */
7907c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000080 */
7917c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000040 */
7927c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000020 */
7937c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000010 */
7947c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000008 */
7957c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000004 */
7967c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000002 */
7977c478bd9Sstevel@tonic-gate /* #define	TKT_FLG_RESERVED	0x00000001 */
7987c478bd9Sstevel@tonic-gate 
7997c478bd9Sstevel@tonic-gate /* definitions for lr_type fields. */
8007c478bd9Sstevel@tonic-gate #define	LR_TYPE_THIS_SERVER_ONLY	0x8000
8017c478bd9Sstevel@tonic-gate 
8027c478bd9Sstevel@tonic-gate #define LR_TYPE_INTERPRETATION_MASK	0x7fff
8037c478bd9Sstevel@tonic-gate 
8047c478bd9Sstevel@tonic-gate /* definitions for ad_type fields. */
8057c478bd9Sstevel@tonic-gate #define	AD_TYPE_EXTERNAL	0x4000
8067c478bd9Sstevel@tonic-gate #define	AD_TYPE_REGISTERED	0x2000
8077c478bd9Sstevel@tonic-gate 
8087c478bd9Sstevel@tonic-gate #define AD_TYPE_FIELD_TYPE_MASK	0x1fff
8097c478bd9Sstevel@tonic-gate #define AD_TYPE_INTERNAL_MASK	0x3fff
8107c478bd9Sstevel@tonic-gate 
8117c478bd9Sstevel@tonic-gate /* definitions for msec direction bit for KRB_SAFE, KRB_PRIV */
8127c478bd9Sstevel@tonic-gate #define	MSEC_DIRBIT		0x8000
8137c478bd9Sstevel@tonic-gate #define	MSEC_VAL_MASK		0x7fff
8147c478bd9Sstevel@tonic-gate 
8157c478bd9Sstevel@tonic-gate /*
8167c478bd9Sstevel@tonic-gate  * end "fieldbits.h"
8177c478bd9Sstevel@tonic-gate  */
8187c478bd9Sstevel@tonic-gate 
8197c478bd9Sstevel@tonic-gate /*
8207c478bd9Sstevel@tonic-gate  * begin "proto.h"
8217c478bd9Sstevel@tonic-gate  */
8227c478bd9Sstevel@tonic-gate 
8237c478bd9Sstevel@tonic-gate /* Protocol version number */
8247c478bd9Sstevel@tonic-gate #define	KRB5_PVNO	5
8257c478bd9Sstevel@tonic-gate 
8267c478bd9Sstevel@tonic-gate /* Message types */
8277c478bd9Sstevel@tonic-gate 
8287c478bd9Sstevel@tonic-gate #define	KRB5_AS_REQ	((krb5_msgtype)10) /* Req for initial authentication */
8297c478bd9Sstevel@tonic-gate #define	KRB5_AS_REP	((krb5_msgtype)11) /* Response to KRB_AS_REQ request */
8307c478bd9Sstevel@tonic-gate #define	KRB5_TGS_REQ	((krb5_msgtype)12) /* TGS request to server */
8317c478bd9Sstevel@tonic-gate #define	KRB5_TGS_REP	((krb5_msgtype)13) /* Response to KRB_TGS_REQ req */
8327c478bd9Sstevel@tonic-gate #define	KRB5_AP_REQ	((krb5_msgtype)14) /* application request to server */
8337c478bd9Sstevel@tonic-gate #define	KRB5_AP_REP	((krb5_msgtype)15) /* Response to KRB_AP_REQ_MUTUAL */
8347c478bd9Sstevel@tonic-gate #define	KRB5_SAFE	((krb5_msgtype)20) /* Safe application message */
8357c478bd9Sstevel@tonic-gate #define	KRB5_PRIV	((krb5_msgtype)21) /* Private application message */
8367c478bd9Sstevel@tonic-gate #define	KRB5_CRED	((krb5_msgtype)22) /* Credential forwarding message */
8377c478bd9Sstevel@tonic-gate #define	KRB5_ERROR	((krb5_msgtype)30) /* Error response */
8387c478bd9Sstevel@tonic-gate 
8397c478bd9Sstevel@tonic-gate /* LastReq types */
8407c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_NONE			0
8417c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ALL_LAST_TGT		1
8427c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ONE_LAST_TGT		(-1)
8437c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ALL_LAST_INITIAL	2
8447c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ONE_LAST_INITIAL	(-2)
8457c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ALL_LAST_TGT_ISSUED	3
8467c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ONE_LAST_TGT_ISSUED	(-3)
8477c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ALL_LAST_RENEWAL	4
8487c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ONE_LAST_RENEWAL	(-4)
8497c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ALL_LAST_REQ		5
8507c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ONE_LAST_REQ		(-5)
8517c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ALL_PW_EXPTIME		6
8527c478bd9Sstevel@tonic-gate #define	KRB5_LRQ_ONE_PW_EXPTIME		(-6)
8537c478bd9Sstevel@tonic-gate 
8547c478bd9Sstevel@tonic-gate 
8557c478bd9Sstevel@tonic-gate /* PADATA types */
8567c478bd9Sstevel@tonic-gate #define	KRB5_PADATA_NONE                0
8577c478bd9Sstevel@tonic-gate #define	KRB5_PADATA_AP_REQ		1
8587c478bd9Sstevel@tonic-gate #define	KRB5_PADATA_TGS_REQ		KRB5_PADATA_AP_REQ
8597c478bd9Sstevel@tonic-gate #define KRB5_PADATA_ENC_TIMESTAMP	2
8607c478bd9Sstevel@tonic-gate #define	KRB5_PADATA_PW_SALT		3
8617c478bd9Sstevel@tonic-gate #if 0				/* Not used */
8627c478bd9Sstevel@tonic-gate #define KRB5_PADATA_ENC_ENCKEY          4  /* Key encrypted within itself */
8637c478bd9Sstevel@tonic-gate #endif
8647c478bd9Sstevel@tonic-gate #define KRB5_PADATA_ENC_UNIX_TIME       5  /* timestamp encrypted in key */
8657c478bd9Sstevel@tonic-gate #define KRB5_PADATA_ENC_SANDIA_SECURID  6  /* SecurId passcode */
8667c478bd9Sstevel@tonic-gate #define KRB5_PADATA_SESAME		7  /* Sesame project */
8677c478bd9Sstevel@tonic-gate #define KRB5_PADATA_OSF_DCE		8  /* OSF DCE */
8687c478bd9Sstevel@tonic-gate #define KRB5_CYBERSAFE_SECUREID		9  /* Cybersafe */
8697c478bd9Sstevel@tonic-gate #define	KRB5_PADATA_AFS3_SALT		10 /* Cygnus */
8707c478bd9Sstevel@tonic-gate #define KRB5_PADATA_ETYPE_INFO		11 /* Etype info for preauth */
8717c478bd9Sstevel@tonic-gate #define KRB5_PADATA_SAM_CHALLENGE	12 /* draft challenge system */
8727c478bd9Sstevel@tonic-gate #define KRB5_PADATA_SAM_RESPONSE	13 /* draft challenge system response */
8737c478bd9Sstevel@tonic-gate #define KRB5_PADATA_PK_AS_REQ		14 /* PKINIT */
8747c478bd9Sstevel@tonic-gate #define KRB5_PADATA_PK_AS_REP		15 /* PKINIT */
8757c478bd9Sstevel@tonic-gate #define KRB5_PADATA_ETYPE_INFO2 	19
8767c478bd9Sstevel@tonic-gate #define KRB5_PADATA_SAM_CHALLENGE_2	30 /* draft challenge system, updated */
8777c478bd9Sstevel@tonic-gate #define KRB5_PADATA_SAM_RESPONSE_2	31 /* draft challenge system, updated */
8787c478bd9Sstevel@tonic-gate 
8797c478bd9Sstevel@tonic-gate #define	KRB5_SAM_USE_SAD_AS_KEY		0x80000000
8807c478bd9Sstevel@tonic-gate #define	KRB5_SAM_SEND_ENCRYPTED_SAD	0x40000000
8817c478bd9Sstevel@tonic-gate #define	KRB5_SAM_MUST_PK_ENCRYPT_SAD	0x20000000 /* currently must be zero */
8827c478bd9Sstevel@tonic-gate 
8837c478bd9Sstevel@tonic-gate /* Reserved for SPX pre-authentication. */
8847c478bd9Sstevel@tonic-gate #define KRB5_PADATA_DASS		16
8857c478bd9Sstevel@tonic-gate 
8867c478bd9Sstevel@tonic-gate /* Transited encoding types */
8877c478bd9Sstevel@tonic-gate #define	KRB5_DOMAIN_X500_COMPRESS	1
8887c478bd9Sstevel@tonic-gate 
8897c478bd9Sstevel@tonic-gate /* alternate authentication types */
8907c478bd9Sstevel@tonic-gate #define	KRB5_ALTAUTH_ATT_CHALLENGE_RESPONSE	64
8917c478bd9Sstevel@tonic-gate 
8927c478bd9Sstevel@tonic-gate /* authorization data types */
8937c478bd9Sstevel@tonic-gate #define	KRB5_AUTHDATA_OSF_DCE	64
8947c478bd9Sstevel@tonic-gate #define KRB5_AUTHDATA_SESAME	65
8957c478bd9Sstevel@tonic-gate 
8967c478bd9Sstevel@tonic-gate /* password change constants */
8977c478bd9Sstevel@tonic-gate 
8987c478bd9Sstevel@tonic-gate #define KRB5_KPASSWD_SUCCESS		0
8997c478bd9Sstevel@tonic-gate #define KRB5_KPASSWD_MALFORMED		1
9007c478bd9Sstevel@tonic-gate #define KRB5_KPASSWD_HARDERROR		2
9017c478bd9Sstevel@tonic-gate #define KRB5_KPASSWD_AUTHERROR		3
9027c478bd9Sstevel@tonic-gate #define KRB5_KPASSWD_SOFTERROR		4
903*505d05c7Sgtb /* These are Microsoft's extensions in RFC 3244, and it looks like
904*505d05c7Sgtb    they'll become standardized, possibly with other additions.  */
905*505d05c7Sgtb #define KRB5_KPASSWD_ACCESSDENIED       5       /* unused */
906*505d05c7Sgtb #define KRB5_KPASSWD_BAD_VERSION        6
907*505d05c7Sgtb #define KRB5_KPASSWD_INITIAL_FLAG_NEEDED 7      /* unused */
9087c478bd9Sstevel@tonic-gate 
9097c478bd9Sstevel@tonic-gate /*
9107c478bd9Sstevel@tonic-gate  * end "proto.h"
9117c478bd9Sstevel@tonic-gate  */
9127c478bd9Sstevel@tonic-gate 
9137c478bd9Sstevel@tonic-gate /* Time set */
9147c478bd9Sstevel@tonic-gate typedef struct _krb5_ticket_times {
9157c478bd9Sstevel@tonic-gate     krb5_timestamp authtime; /* XXX ? should ktime in KDC_REP == authtime
9167c478bd9Sstevel@tonic-gate 				in ticket? otherwise client can't get this */
9177c478bd9Sstevel@tonic-gate     krb5_timestamp starttime;		/* optional in ticket, if not present,
9187c478bd9Sstevel@tonic-gate 					   use authtime */
9197c478bd9Sstevel@tonic-gate     krb5_timestamp endtime;
9207c478bd9Sstevel@tonic-gate     krb5_timestamp renew_till;
9217c478bd9Sstevel@tonic-gate } krb5_ticket_times;
9227c478bd9Sstevel@tonic-gate 
9237c478bd9Sstevel@tonic-gate /* structure for auth data */
9247c478bd9Sstevel@tonic-gate typedef struct _krb5_authdata {
9257c478bd9Sstevel@tonic-gate     krb5_magic magic;
9267c478bd9Sstevel@tonic-gate     krb5_authdatatype ad_type;
9277c478bd9Sstevel@tonic-gate     unsigned int length;
9287c478bd9Sstevel@tonic-gate     krb5_octet *contents;
9297c478bd9Sstevel@tonic-gate } krb5_authdata;
9307c478bd9Sstevel@tonic-gate 
9317c478bd9Sstevel@tonic-gate /* structure for transited encoding */
9327c478bd9Sstevel@tonic-gate typedef struct _krb5_transited {
9337c478bd9Sstevel@tonic-gate     krb5_magic magic;
9347c478bd9Sstevel@tonic-gate     krb5_octet tr_type;
9357c478bd9Sstevel@tonic-gate     krb5_data tr_contents;
9367c478bd9Sstevel@tonic-gate } krb5_transited;
9377c478bd9Sstevel@tonic-gate 
9387c478bd9Sstevel@tonic-gate typedef struct _krb5_enc_tkt_part {
9397c478bd9Sstevel@tonic-gate     krb5_magic magic;
9407c478bd9Sstevel@tonic-gate     /* to-be-encrypted portion */
9417c478bd9Sstevel@tonic-gate     krb5_flags flags;			/* flags */
9427c478bd9Sstevel@tonic-gate     krb5_keyblock *session;		/* session key: includes enctype */
9437c478bd9Sstevel@tonic-gate     krb5_principal client;		/* client name/realm */
9447c478bd9Sstevel@tonic-gate     krb5_transited transited;		/* list of transited realms */
9457c478bd9Sstevel@tonic-gate     krb5_ticket_times times;		/* auth, start, end, renew_till */
9467c478bd9Sstevel@tonic-gate     krb5_address * *caddrs;	/* array of ptrs to addresses */
9477c478bd9Sstevel@tonic-gate     krb5_authdata * *authorization_data; /* auth data */
9487c478bd9Sstevel@tonic-gate } krb5_enc_tkt_part;
9497c478bd9Sstevel@tonic-gate 
9507c478bd9Sstevel@tonic-gate typedef struct _krb5_ticket {
9517c478bd9Sstevel@tonic-gate     krb5_magic magic;
9527c478bd9Sstevel@tonic-gate     /* cleartext portion */
9537c478bd9Sstevel@tonic-gate     krb5_principal server;		/* server name/realm */
9547c478bd9Sstevel@tonic-gate     krb5_enc_data enc_part;		/* encryption type, kvno, encrypted
9557c478bd9Sstevel@tonic-gate 					   encoding */
9567c478bd9Sstevel@tonic-gate     krb5_enc_tkt_part *enc_part2;	/* ptr to decrypted version, if
9577c478bd9Sstevel@tonic-gate 					   available */
9587c478bd9Sstevel@tonic-gate } krb5_ticket;
9597c478bd9Sstevel@tonic-gate 
9607c478bd9Sstevel@tonic-gate /* the unencrypted version */
9617c478bd9Sstevel@tonic-gate typedef struct _krb5_authenticator {
9627c478bd9Sstevel@tonic-gate     krb5_magic magic;
9637c478bd9Sstevel@tonic-gate     krb5_principal client;		/* client name/realm */
9647c478bd9Sstevel@tonic-gate     krb5_checksum *checksum;	/* checksum, includes type, optional */
9657c478bd9Sstevel@tonic-gate     krb5_int32 cusec;			/* client usec portion */
9667c478bd9Sstevel@tonic-gate     krb5_timestamp ctime;		/* client sec portion */
9677c478bd9Sstevel@tonic-gate     krb5_keyblock *subkey;		/* true session key, optional */
9687c478bd9Sstevel@tonic-gate     krb5_ui_4 seq_number;		/* sequence #, optional */
9697c478bd9Sstevel@tonic-gate     krb5_authdata * *authorization_data; /* New add by Ari, auth data */
9707c478bd9Sstevel@tonic-gate } krb5_authenticator;
9717c478bd9Sstevel@tonic-gate 
9727c478bd9Sstevel@tonic-gate typedef struct _krb5_tkt_authent {
9737c478bd9Sstevel@tonic-gate     krb5_magic magic;
9747c478bd9Sstevel@tonic-gate     krb5_ticket *ticket;
9757c478bd9Sstevel@tonic-gate     krb5_authenticator *authenticator;
9767c478bd9Sstevel@tonic-gate     krb5_flags ap_options;
9777c478bd9Sstevel@tonic-gate } krb5_tkt_authent;
9787c478bd9Sstevel@tonic-gate 
9797c478bd9Sstevel@tonic-gate /* credentials:  Ticket, session key, etc. */
9807c478bd9Sstevel@tonic-gate typedef struct _krb5_creds {
9817c478bd9Sstevel@tonic-gate     krb5_magic magic;
9827c478bd9Sstevel@tonic-gate     krb5_principal client;		/* client's principal identifier */
9837c478bd9Sstevel@tonic-gate     krb5_principal server;		/* server's principal identifier */
9847c478bd9Sstevel@tonic-gate     krb5_keyblock keyblock;		/* session encryption key info */
9857c478bd9Sstevel@tonic-gate     krb5_ticket_times times;		/* lifetime info */
9867c478bd9Sstevel@tonic-gate     krb5_boolean is_skey;		/* true if ticket is encrypted in
9877c478bd9Sstevel@tonic-gate 					   another ticket's skey */
9887c478bd9Sstevel@tonic-gate     krb5_flags ticket_flags;		/* flags in ticket */
9897c478bd9Sstevel@tonic-gate     krb5_address * *addresses;	/* addrs in ticket */
9907c478bd9Sstevel@tonic-gate     krb5_data ticket;			/* ticket string itself */
9917c478bd9Sstevel@tonic-gate     krb5_data second_ticket;		/* second ticket, if related to
9927c478bd9Sstevel@tonic-gate 					   ticket (via DUPLICATE-SKEY or
9937c478bd9Sstevel@tonic-gate 					   ENC-TKT-IN-SKEY) */
9947c478bd9Sstevel@tonic-gate     krb5_authdata * *authdata;	/* authorization data */
9957c478bd9Sstevel@tonic-gate } krb5_creds;
9967c478bd9Sstevel@tonic-gate 
9977c478bd9Sstevel@tonic-gate /* Last request fields */
9987c478bd9Sstevel@tonic-gate typedef struct _krb5_last_req_entry {
9997c478bd9Sstevel@tonic-gate     krb5_magic magic;
10007c478bd9Sstevel@tonic-gate     krb5_int32 lr_type;
10017c478bd9Sstevel@tonic-gate     krb5_timestamp value;
10027c478bd9Sstevel@tonic-gate } krb5_last_req_entry;
10037c478bd9Sstevel@tonic-gate 
10047c478bd9Sstevel@tonic-gate /* pre-authentication data */
10057c478bd9Sstevel@tonic-gate typedef struct _krb5_pa_data {
10067c478bd9Sstevel@tonic-gate     krb5_magic magic;
10077c478bd9Sstevel@tonic-gate     krb5_preauthtype  pa_type;
10087c478bd9Sstevel@tonic-gate     unsigned int length;
10097c478bd9Sstevel@tonic-gate     krb5_octet *contents;
10107c478bd9Sstevel@tonic-gate } krb5_pa_data;
10117c478bd9Sstevel@tonic-gate 
10127c478bd9Sstevel@tonic-gate typedef struct _krb5_kdc_req {
10137c478bd9Sstevel@tonic-gate     krb5_magic magic;
10147c478bd9Sstevel@tonic-gate     krb5_msgtype msg_type;		/* AS_REQ or TGS_REQ? */
10157c478bd9Sstevel@tonic-gate     krb5_pa_data * *padata;	/* e.g. encoded AP_REQ */
10167c478bd9Sstevel@tonic-gate     /* real body */
10177c478bd9Sstevel@tonic-gate     krb5_flags kdc_options;		/* requested options */
10187c478bd9Sstevel@tonic-gate     krb5_principal client;		/* includes realm; optional */
10197c478bd9Sstevel@tonic-gate     krb5_principal server;		/* includes realm (only used if no
10207c478bd9Sstevel@tonic-gate 					   client) */
10217c478bd9Sstevel@tonic-gate     krb5_timestamp from;		/* requested starttime */
10227c478bd9Sstevel@tonic-gate     krb5_timestamp till;		/* requested endtime */
10237c478bd9Sstevel@tonic-gate     krb5_timestamp rtime;		/* (optional) requested renew_till */
10247c478bd9Sstevel@tonic-gate     krb5_int32 nonce;			/* nonce to match request/response */
10257c478bd9Sstevel@tonic-gate     int nktypes;			/* # of ktypes, must be positive */
10267c478bd9Sstevel@tonic-gate     krb5_enctype *ktype;		/* requested enctype(s) */
10277c478bd9Sstevel@tonic-gate     krb5_address * *addresses;	/* requested addresses, optional */
10287c478bd9Sstevel@tonic-gate     krb5_enc_data authorization_data;	/* encrypted auth data; OPTIONAL */
10297c478bd9Sstevel@tonic-gate     krb5_authdata * *unenc_authdata; /* unencrypted auth data,
10307c478bd9Sstevel@tonic-gate 					   if available */
10317c478bd9Sstevel@tonic-gate     krb5_ticket * *second_ticket;/* second ticket array; OPTIONAL */
10327c478bd9Sstevel@tonic-gate } krb5_kdc_req;
10337c478bd9Sstevel@tonic-gate 
10347c478bd9Sstevel@tonic-gate typedef struct _krb5_enc_kdc_rep_part {
10357c478bd9Sstevel@tonic-gate     krb5_magic magic;
10367c478bd9Sstevel@tonic-gate     /* encrypted part: */
10377c478bd9Sstevel@tonic-gate     krb5_msgtype msg_type;		/* krb5 message type */
10387c478bd9Sstevel@tonic-gate     krb5_keyblock *session;		/* session key */
10397c478bd9Sstevel@tonic-gate     krb5_last_req_entry * *last_req; /* array of ptrs to entries */
10407c478bd9Sstevel@tonic-gate     krb5_int32 nonce;			/* nonce from request */
10417c478bd9Sstevel@tonic-gate     krb5_timestamp key_exp;		/* expiration date */
10427c478bd9Sstevel@tonic-gate     krb5_flags flags;			/* ticket flags */
10437c478bd9Sstevel@tonic-gate     krb5_ticket_times times;		/* lifetime info */
10447c478bd9Sstevel@tonic-gate     krb5_principal server;		/* server's principal identifier */
10457c478bd9Sstevel@tonic-gate     krb5_address * *caddrs;	/* array of ptrs to addresses,
10467c478bd9Sstevel@tonic-gate 					   optional */
10477c478bd9Sstevel@tonic-gate } krb5_enc_kdc_rep_part;
10487c478bd9Sstevel@tonic-gate 
10497c478bd9Sstevel@tonic-gate typedef struct _krb5_kdc_rep {
10507c478bd9Sstevel@tonic-gate     krb5_magic magic;
10517c478bd9Sstevel@tonic-gate     /* cleartext part: */
10527c478bd9Sstevel@tonic-gate     krb5_msgtype msg_type;		/* AS_REP or KDC_REP? */
10537c478bd9Sstevel@tonic-gate     krb5_pa_data * *padata;	/* preauthentication data from KDC */
10547c478bd9Sstevel@tonic-gate     krb5_principal client;		/* client's principal identifier */
10557c478bd9Sstevel@tonic-gate     krb5_ticket *ticket;		/* ticket */
10567c478bd9Sstevel@tonic-gate     krb5_enc_data enc_part;		/* encryption type, kvno, encrypted
10577c478bd9Sstevel@tonic-gate 					   encoding */
10587c478bd9Sstevel@tonic-gate     krb5_enc_kdc_rep_part *enc_part2;/* unencrypted version, if available */
10597c478bd9Sstevel@tonic-gate } krb5_kdc_rep;
10607c478bd9Sstevel@tonic-gate 
10617c478bd9Sstevel@tonic-gate /* error message structure */
10627c478bd9Sstevel@tonic-gate typedef struct _krb5_error {
10637c478bd9Sstevel@tonic-gate     krb5_magic magic;
10647c478bd9Sstevel@tonic-gate     /* some of these may be meaningless in certain contexts */
10657c478bd9Sstevel@tonic-gate     krb5_timestamp ctime;		/* client sec portion; optional */
10667c478bd9Sstevel@tonic-gate     krb5_int32 cusec;			/* client usec portion; optional */
10677c478bd9Sstevel@tonic-gate     krb5_int32 susec;			/* server usec portion */
10687c478bd9Sstevel@tonic-gate     krb5_timestamp stime;		/* server sec portion */
10697c478bd9Sstevel@tonic-gate     krb5_ui_4 error;			/* error code (protocol error #'s) */
10707c478bd9Sstevel@tonic-gate     krb5_principal client;		/* client's principal identifier;
10717c478bd9Sstevel@tonic-gate 					   optional */
10727c478bd9Sstevel@tonic-gate     krb5_principal server;		/* server's principal identifier */
10737c478bd9Sstevel@tonic-gate     krb5_data text;			/* descriptive text */
10747c478bd9Sstevel@tonic-gate     krb5_data e_data;			/* additional error-describing data */
10757c478bd9Sstevel@tonic-gate } krb5_error;
10767c478bd9Sstevel@tonic-gate 
10777c478bd9Sstevel@tonic-gate typedef struct _krb5_ap_req {
10787c478bd9Sstevel@tonic-gate     krb5_magic magic;
10797c478bd9Sstevel@tonic-gate     krb5_flags ap_options;		/* requested options */
10807c478bd9Sstevel@tonic-gate     krb5_ticket *ticket;		/* ticket */
10817c478bd9Sstevel@tonic-gate     krb5_enc_data authenticator;	/* authenticator (already encrypted) */
10827c478bd9Sstevel@tonic-gate } krb5_ap_req;
10837c478bd9Sstevel@tonic-gate 
10847c478bd9Sstevel@tonic-gate typedef struct _krb5_ap_rep {
10857c478bd9Sstevel@tonic-gate     krb5_magic magic;
10867c478bd9Sstevel@tonic-gate     krb5_enc_data enc_part;
10877c478bd9Sstevel@tonic-gate } krb5_ap_rep;
10887c478bd9Sstevel@tonic-gate 
10897c478bd9Sstevel@tonic-gate typedef struct _krb5_ap_rep_enc_part {
10907c478bd9Sstevel@tonic-gate     krb5_magic magic;
10917c478bd9Sstevel@tonic-gate     krb5_timestamp ctime;		/* client time, seconds portion */
10927c478bd9Sstevel@tonic-gate     krb5_int32 cusec;			/* client time, microseconds portion */
10937c478bd9Sstevel@tonic-gate     krb5_keyblock *subkey;		/* true session key, optional */
10947c478bd9Sstevel@tonic-gate     krb5_ui_4 seq_number;		/* sequence #, optional */
10957c478bd9Sstevel@tonic-gate } krb5_ap_rep_enc_part;
10967c478bd9Sstevel@tonic-gate 
10977c478bd9Sstevel@tonic-gate typedef struct _krb5_response {
10987c478bd9Sstevel@tonic-gate     krb5_magic magic;
10997c478bd9Sstevel@tonic-gate     krb5_octet message_type;
11007c478bd9Sstevel@tonic-gate     krb5_data response;
11017c478bd9Sstevel@tonic-gate     krb5_int32 expected_nonce;	/* The expected nonce for KDC_REP messages */
11027c478bd9Sstevel@tonic-gate     krb5_timestamp request_time;   /* When we made the request */
11037c478bd9Sstevel@tonic-gate } krb5_response;
11047c478bd9Sstevel@tonic-gate 
11057c478bd9Sstevel@tonic-gate typedef struct _krb5_cred_info {
11067c478bd9Sstevel@tonic-gate     krb5_magic magic;
11077c478bd9Sstevel@tonic-gate     krb5_keyblock *session;         /* session key used to encrypt */
11087c478bd9Sstevel@tonic-gate 					/* ticket */
11097c478bd9Sstevel@tonic-gate     krb5_principal client;              /* client name/realm, optional */
11107c478bd9Sstevel@tonic-gate     krb5_principal server;              /* server name/realm, optional */
11117c478bd9Sstevel@tonic-gate     krb5_flags flags;			/* ticket flags, optional */
11127c478bd9Sstevel@tonic-gate     krb5_ticket_times times;		/* auth, start, end, renew_till, */
11137c478bd9Sstevel@tonic-gate                                         /* optional */
11147c478bd9Sstevel@tonic-gate     krb5_address * *caddrs;	/* array of ptrs to addresses */
11157c478bd9Sstevel@tonic-gate } krb5_cred_info;
11167c478bd9Sstevel@tonic-gate 
11177c478bd9Sstevel@tonic-gate typedef struct _krb5_cred_enc_part {
11187c478bd9Sstevel@tonic-gate     krb5_magic magic;
11197c478bd9Sstevel@tonic-gate     krb5_int32 nonce;                   /* nonce, optional */
11207c478bd9Sstevel@tonic-gate     krb5_timestamp timestamp;           /* client time */
11217c478bd9Sstevel@tonic-gate     krb5_int32 usec;                    /* microsecond portion of time */
11227c478bd9Sstevel@tonic-gate     krb5_address *s_address;        /* sender address, optional */
11237c478bd9Sstevel@tonic-gate     krb5_address *r_address;        /* recipient address, optional */
11247c478bd9Sstevel@tonic-gate     krb5_cred_info * *ticket_info;
11257c478bd9Sstevel@tonic-gate } krb5_cred_enc_part;
11267c478bd9Sstevel@tonic-gate 
11277c478bd9Sstevel@tonic-gate typedef struct _krb5_cred {
11287c478bd9Sstevel@tonic-gate     krb5_magic magic;
11297c478bd9Sstevel@tonic-gate     krb5_ticket * *tickets;	/* tickets */
11307c478bd9Sstevel@tonic-gate     krb5_enc_data enc_part;		/* encrypted part */
11317c478bd9Sstevel@tonic-gate     krb5_cred_enc_part *enc_part2; 	/* unencrypted version, if available*/
11327c478bd9Sstevel@tonic-gate } krb5_cred;
11337c478bd9Sstevel@tonic-gate 
11347c478bd9Sstevel@tonic-gate /* Sandia password generation structures */
11357c478bd9Sstevel@tonic-gate typedef struct _passwd_phrase_element {
11367c478bd9Sstevel@tonic-gate     krb5_magic magic;
11377c478bd9Sstevel@tonic-gate     krb5_data *passwd;
11387c478bd9Sstevel@tonic-gate     krb5_data *phrase;
11397c478bd9Sstevel@tonic-gate } passwd_phrase_element;
11407c478bd9Sstevel@tonic-gate 
11417c478bd9Sstevel@tonic-gate typedef struct _krb5_pwd_data {
11427c478bd9Sstevel@tonic-gate     krb5_magic magic;
11437c478bd9Sstevel@tonic-gate     int sequence_count;
11447c478bd9Sstevel@tonic-gate     passwd_phrase_element * *element;
11457c478bd9Sstevel@tonic-gate } krb5_pwd_data;
11467c478bd9Sstevel@tonic-gate 
11477c478bd9Sstevel@tonic-gate /* these need to be here so the typedefs are available for the prototypes */
11487c478bd9Sstevel@tonic-gate 
11497c478bd9Sstevel@tonic-gate /*
11507c478bd9Sstevel@tonic-gate  * begin "safepriv.h"
11517c478bd9Sstevel@tonic-gate  */
11527c478bd9Sstevel@tonic-gate 
11537c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_DO_TIME       0x00000001
11547c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_RET_TIME      0x00000002
11557c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_DO_SEQUENCE   0x00000004
11567c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_RET_SEQUENCE  0x00000008
11577c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_PERMIT_ALL	0x00000010
11587c478bd9Sstevel@tonic-gate #define	KRB5_AUTH_CONTEXT_USE_SUBKEY	0x00000020
11597c478bd9Sstevel@tonic-gate 
11607c478bd9Sstevel@tonic-gate typedef struct krb5_replay_data {
11617c478bd9Sstevel@tonic-gate     krb5_timestamp      timestamp;
11627c478bd9Sstevel@tonic-gate     krb5_int32          usec;
11637c478bd9Sstevel@tonic-gate     krb5_int32          seq;
11647c478bd9Sstevel@tonic-gate } krb5_replay_data;
11657c478bd9Sstevel@tonic-gate 
11667c478bd9Sstevel@tonic-gate /* flags for krb5_auth_con_genaddrs() */
11677c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDR           0x00000001
11687c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDR          0x00000002
11697c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR      0x00000004
11707c478bd9Sstevel@tonic-gate #define KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR     0x00000008
11717c478bd9Sstevel@tonic-gate 
11727c478bd9Sstevel@tonic-gate /* type of function used as a callback to generate checksum data for
11737c478bd9Sstevel@tonic-gate  * mk_req */
11747c478bd9Sstevel@tonic-gate 
11757c478bd9Sstevel@tonic-gate typedef krb5_error_code
11767c478bd9Sstevel@tonic-gate (KRB5_CALLCONV * krb5_mk_req_checksum_func) (
11777c478bd9Sstevel@tonic-gate 	krb5_context,
11787c478bd9Sstevel@tonic-gate 	krb5_auth_context,
11797c478bd9Sstevel@tonic-gate 	void *,
11807c478bd9Sstevel@tonic-gate 	krb5_data **);
11817c478bd9Sstevel@tonic-gate 
11827c478bd9Sstevel@tonic-gate 
11837c478bd9Sstevel@tonic-gate /*
11847c478bd9Sstevel@tonic-gate  * end "safepriv.h"
11857c478bd9Sstevel@tonic-gate  */
11867c478bd9Sstevel@tonic-gate 
11877c478bd9Sstevel@tonic-gate 
11887c478bd9Sstevel@tonic-gate /*
11897c478bd9Sstevel@tonic-gate  * begin "ccache.h"
11907c478bd9Sstevel@tonic-gate  */
11917c478bd9Sstevel@tonic-gate 
11927c478bd9Sstevel@tonic-gate typedef	krb5_pointer	krb5_cc_cursor;	/* cursor for sequential lookup */
11937c478bd9Sstevel@tonic-gate 
1194*505d05c7Sgtb struct _krb5_ccache;
1195*505d05c7Sgtb typedef struct _krb5_ccache *krb5_ccache;
1196*505d05c7Sgtb struct _krb5_cc_ops;
1197*505d05c7Sgtb typedef struct _krb5_cc_ops krb5_cc_ops;
11987c478bd9Sstevel@tonic-gate 
11997c478bd9Sstevel@tonic-gate /* for retrieve_cred */
12007c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_TIMES		0x00000001
12017c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_IS_SKEY		0x00000002
12027c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_FLAGS		0x00000004
12037c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_TIMES_EXACT	0x00000008
12047c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_FLAGS_EXACT	0x00000010
12057c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_AUTHDATA		0x00000020
12067c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_SRV_NAMEONLY	0x00000040
12077c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_2ND_TKT		0x00000080
12087c478bd9Sstevel@tonic-gate #define	KRB5_TC_MATCH_KTYPE		0x00000100
12097c478bd9Sstevel@tonic-gate #define KRB5_TC_SUPPORTED_KTYPES	0x00000200
12107c478bd9Sstevel@tonic-gate 
12117c478bd9Sstevel@tonic-gate /* for set_flags and other functions */
12127c478bd9Sstevel@tonic-gate #define KRB5_TC_OPENCLOSE		0x00000001
1213*505d05c7Sgtb #define KRB5_TC_NOTICKET                0x00000002
1214*505d05c7Sgtb 
1215*505d05c7Sgtb 
1216*505d05c7Sgtb 
1217*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1218*505d05c7Sgtb krb5_cc_gen_new (krb5_context context, krb5_ccache *cache);
1219*505d05c7Sgtb 
1220*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1221*505d05c7Sgtb krb5_cc_initialize(krb5_context context, krb5_ccache cache,
1222*505d05c7Sgtb                    krb5_principal principal);
1223*505d05c7Sgtb 
1224*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1225*505d05c7Sgtb krb5_cc_destroy (krb5_context context, krb5_ccache cache);
1226*505d05c7Sgtb 
1227*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1228*505d05c7Sgtb krb5_cc_close (krb5_context context, krb5_ccache cache);
1229*505d05c7Sgtb 
1230*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1231*505d05c7Sgtb krb5_cc_store_cred (krb5_context context, krb5_ccache cache,
1232*505d05c7Sgtb                     krb5_creds *creds);
1233*505d05c7Sgtb 
1234*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1235*505d05c7Sgtb krb5_cc_retrieve_cred (krb5_context context, krb5_ccache cache,
1236*505d05c7Sgtb                        krb5_flags flags, krb5_creds *mcreds,
1237*505d05c7Sgtb                        krb5_creds *creds);
1238*505d05c7Sgtb 
1239*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1240*505d05c7Sgtb krb5_cc_get_principal (krb5_context context, krb5_ccache cache,
1241*505d05c7Sgtb                        krb5_principal *principal);
1242*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1243*505d05c7Sgtb krb5_cc_start_seq_get (krb5_context context, krb5_ccache cache,
1244*505d05c7Sgtb                        krb5_cc_cursor *cursor);
12457c478bd9Sstevel@tonic-gate 
1246*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1247*505d05c7Sgtb krb5_cc_next_cred (krb5_context context, krb5_ccache cache,
1248*505d05c7Sgtb                    krb5_cc_cursor *cursor, krb5_creds *creds);
1249*505d05c7Sgtb 
1250*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1251*505d05c7Sgtb krb5_cc_end_seq_get (krb5_context context, krb5_ccache cache,
1252*505d05c7Sgtb                      krb5_cc_cursor *cursor);
1253*505d05c7Sgtb 
1254*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1255*505d05c7Sgtb krb5_cc_remove_cred (krb5_context context, krb5_ccache cache, krb5_flags flags,
1256*505d05c7Sgtb                      krb5_creds *creds);
1257*505d05c7Sgtb 
1258*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1259*505d05c7Sgtb krb5_cc_set_flags (krb5_context context, krb5_ccache cache, krb5_flags flags);
1260*505d05c7Sgtb 
1261*505d05c7Sgtb const char * KRB5_CALLCONV
1262*505d05c7Sgtb krb5_cc_get_type (krb5_context context, krb5_ccache cache);
1263*505d05c7Sgtb 
1264*505d05c7Sgtb /* SUNW14resync - add_cred.c needs this func */
1265*505d05c7Sgtb const char * KRB5_CALLCONV
1266*505d05c7Sgtb krb5_cc_get_name (krb5_context context, krb5_ccache cache);
12677c478bd9Sstevel@tonic-gate 
12687c478bd9Sstevel@tonic-gate /*
12697c478bd9Sstevel@tonic-gate  * end "ccache.h"
12707c478bd9Sstevel@tonic-gate  */
12717c478bd9Sstevel@tonic-gate 
12727c478bd9Sstevel@tonic-gate /*
12737c478bd9Sstevel@tonic-gate  * begin "rcache.h"
12747c478bd9Sstevel@tonic-gate  */
12757c478bd9Sstevel@tonic-gate 
1276*505d05c7Sgtb struct krb5_rc_st;
1277*505d05c7Sgtb typedef struct krb5_rc_st *krb5_rcache;
12787c478bd9Sstevel@tonic-gate 
12797c478bd9Sstevel@tonic-gate /*
12807c478bd9Sstevel@tonic-gate  * end "rcache.h"
12817c478bd9Sstevel@tonic-gate  */
12827c478bd9Sstevel@tonic-gate 
12837c478bd9Sstevel@tonic-gate /*
12847c478bd9Sstevel@tonic-gate  * begin "keytab.h"
12857c478bd9Sstevel@tonic-gate  */
12867c478bd9Sstevel@tonic-gate 
12877c478bd9Sstevel@tonic-gate 
12887c478bd9Sstevel@tonic-gate /* XXX */
12897c478bd9Sstevel@tonic-gate #define MAX_KEYTAB_NAME_LEN 1100 /* Long enough for MAXPATHLEN + some extra */
12907c478bd9Sstevel@tonic-gate 
12917c478bd9Sstevel@tonic-gate typedef krb5_pointer krb5_kt_cursor;	/* XXX */
12927c478bd9Sstevel@tonic-gate 
12937c478bd9Sstevel@tonic-gate typedef struct krb5_keytab_entry_st {
12947c478bd9Sstevel@tonic-gate     krb5_magic magic;
12957c478bd9Sstevel@tonic-gate     krb5_principal principal;	/* principal of this key */
12967c478bd9Sstevel@tonic-gate     krb5_timestamp timestamp;   /* time entry written to keytable */
12977c478bd9Sstevel@tonic-gate     krb5_kvno vno;		/* key version number */
12987c478bd9Sstevel@tonic-gate     krb5_keyblock key;		/* the secret key */
12997c478bd9Sstevel@tonic-gate } krb5_keytab_entry;
13007c478bd9Sstevel@tonic-gate 
1301*505d05c7Sgtb #if KRB5_PRIVATE
1302*505d05c7Sgtb struct _krb5_kt_ops;
1303*505d05c7Sgtb typedef struct _krb5_kt {       /* should move into k5-int.h */
13047c478bd9Sstevel@tonic-gate     krb5_magic magic;
1305*505d05c7Sgtb     const struct _krb5_kt_ops *ops;
13067c478bd9Sstevel@tonic-gate     krb5_pointer data;
1307*505d05c7Sgtb } *krb5_keytab;
1308*505d05c7Sgtb #else
1309*505d05c7Sgtb struct _krb5_kt;
1310*505d05c7Sgtb typedef struct _krb5_kt *krb5_keytab;
1311*505d05c7Sgtb #endif
13127c478bd9Sstevel@tonic-gate 
1313*505d05c7Sgtb char * KRB5_CALLCONV
1314*505d05c7Sgtb krb5_kt_get_type (krb5_context, krb5_keytab keytab);
1315*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1316*505d05c7Sgtb krb5_kt_get_name(krb5_context context, krb5_keytab keytab, char *name,
1317*505d05c7Sgtb                  unsigned int namelen);
1318*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1319*505d05c7Sgtb krb5_kt_close(krb5_context context, krb5_keytab keytab);
1320*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1321*505d05c7Sgtb krb5_kt_get_entry(krb5_context context, krb5_keytab keytab,
1322*505d05c7Sgtb                   krb5_const_principal principal, krb5_kvno vno,
1323*505d05c7Sgtb                   krb5_enctype enctype, krb5_keytab_entry *entry);
1324*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1325*505d05c7Sgtb krb5_kt_start_seq_get(krb5_context context, krb5_keytab keytab,
1326*505d05c7Sgtb                       krb5_kt_cursor *cursor);
1327*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1328*505d05c7Sgtb krb5_kt_next_entry(krb5_context context, krb5_keytab keytab,
1329*505d05c7Sgtb                    krb5_keytab_entry *entry, krb5_kt_cursor *cursor);
1330*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1331*505d05c7Sgtb krb5_kt_end_seq_get(krb5_context context, krb5_keytab keytab,
1332*505d05c7Sgtb                     krb5_kt_cursor *cursor);
13337c478bd9Sstevel@tonic-gate 
13347c478bd9Sstevel@tonic-gate /*
13357c478bd9Sstevel@tonic-gate  * end "keytab.h"
13367c478bd9Sstevel@tonic-gate  */
13377c478bd9Sstevel@tonic-gate 
13387c478bd9Sstevel@tonic-gate /*
13397c478bd9Sstevel@tonic-gate  * begin "func-proto.h"
13407c478bd9Sstevel@tonic-gate  */
13417c478bd9Sstevel@tonic-gate 
1342*505d05c7Sgtb /* Solaris Kerberos */
13437c478bd9Sstevel@tonic-gate krb5_error_code krb5_init_ef_handle(krb5_context);
13447c478bd9Sstevel@tonic-gate krb5_error_code krb5_free_ef_handle(krb5_context);
13457c478bd9Sstevel@tonic-gate 
13467c478bd9Sstevel@tonic-gate krb5_boolean krb5_privacy_allowed(void);
13477c478bd9Sstevel@tonic-gate 
1348*505d05c7Sgtb /*
1349*505d05c7Sgtb  * Solaris Kerberos:
1350*505d05c7Sgtb  * krb5_copy_keyblock_data is a new routine to hide the details
1351*505d05c7Sgtb  * of a keyblock copy operation.
1352*505d05c7Sgtb  */
1353*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_copy_keyblock_data
1354*505d05c7Sgtb 	(krb5_context,
1355*505d05c7Sgtb 		const krb5_keyblock *,
1356*505d05c7Sgtb 		krb5_keyblock *);
1357*505d05c7Sgtb 
1358*505d05c7Sgtb 
1359*505d05c7Sgtb 
1360*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_init_context
1361*505d05c7Sgtb 	(krb5_context *);
1362*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_init_secure_context
1363*505d05c7Sgtb 	(krb5_context *);
1364*505d05c7Sgtb void KRB5_CALLCONV krb5_free_context
1365*505d05c7Sgtb 	(krb5_context);
1366*505d05c7Sgtb 
1367*505d05c7Sgtb #if KRB5_PRIVATE
13687c478bd9Sstevel@tonic-gate krb5_error_code krb5_set_default_in_tkt_ktypes
1369*505d05c7Sgtb 	(krb5_context,
1370*505d05c7Sgtb 		const krb5_enctype *);
13717c478bd9Sstevel@tonic-gate krb5_error_code krb5_get_default_in_tkt_ktypes
1372*505d05c7Sgtb 	(krb5_context,
1373*505d05c7Sgtb 		krb5_enctype **);
13747c478bd9Sstevel@tonic-gate 
13757c478bd9Sstevel@tonic-gate krb5_error_code krb5_set_default_tgs_ktypes
1376*505d05c7Sgtb 	(krb5_context,
1377*505d05c7Sgtb 		const krb5_enctype *);
1378*505d05c7Sgtb #endif
1379*505d05c7Sgtb 
13807c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
13817c478bd9Sstevel@tonic-gate krb5_set_default_tgs_enctypes
13827c478bd9Sstevel@tonic-gate 	(krb5_context,
1383*505d05c7Sgtb 		const krb5_enctype *);
1384*505d05c7Sgtb #if KRB5_PRIVATE
13857c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_tgs_ktypes
1386*505d05c7Sgtb 	(krb5_context,
1387*505d05c7Sgtb 		krb5_const_principal,
1388*505d05c7Sgtb 		krb5_enctype **);
1389*505d05c7Sgtb #endif
13907c478bd9Sstevel@tonic-gate 
1391*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_get_permitted_enctypes
1392*505d05c7Sgtb 	(krb5_context, krb5_enctype **);
1393*505d05c7Sgtb 
1394*505d05c7Sgtb #if KRB5_PRIVATE
13957c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_ktypes
1396*505d05c7Sgtb 	(krb5_context, krb5_enctype *);
13977c478bd9Sstevel@tonic-gate 
13987c478bd9Sstevel@tonic-gate krb5_boolean krb5_is_permitted_enctype
1399*505d05c7Sgtb 	(krb5_context, krb5_enctype);
1400*505d05c7Sgtb #endif
1401*505d05c7Sgtb 
1402*505d05c7Sgtb krb5_boolean KRB5_CALLCONV krb5_is_thread_safe(void);
14037c478bd9Sstevel@tonic-gate 
14047c478bd9Sstevel@tonic-gate /* libkrb.spec */
1405*505d05c7Sgtb #if KRB5_PRIVATE
14067c478bd9Sstevel@tonic-gate krb5_error_code krb5_kdc_rep_decrypt_proc
1407*505d05c7Sgtb 	(krb5_context,
1408*505d05c7Sgtb 		const krb5_keyblock *,
1409*505d05c7Sgtb 		krb5_const_pointer,
1410*505d05c7Sgtb 		krb5_kdc_rep * );
1411*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_decrypt_tkt_part
1412*505d05c7Sgtb 	(krb5_context,
1413*505d05c7Sgtb 		const krb5_keyblock *,
1414*505d05c7Sgtb 		krb5_ticket * );
14157c478bd9Sstevel@tonic-gate krb5_error_code krb5_get_cred_from_kdc
1416*505d05c7Sgtb 	(krb5_context,
1417*505d05c7Sgtb 		krb5_ccache,		/* not const, as reading may save
14187c478bd9Sstevel@tonic-gate 					   state */
1419*505d05c7Sgtb 		krb5_creds *,
1420*505d05c7Sgtb 		krb5_creds **,
1421*505d05c7Sgtb 		krb5_creds *** );
14227c478bd9Sstevel@tonic-gate krb5_error_code krb5_get_cred_from_kdc_validate
1423*505d05c7Sgtb 	(krb5_context,
1424*505d05c7Sgtb 		krb5_ccache,		/* not const, as reading may save
14257c478bd9Sstevel@tonic-gate 					   state */
1426*505d05c7Sgtb 		krb5_creds *,
1427*505d05c7Sgtb 		krb5_creds **,
1428*505d05c7Sgtb 		krb5_creds *** );
14297c478bd9Sstevel@tonic-gate krb5_error_code krb5_get_cred_from_kdc_renew
1430*505d05c7Sgtb 	(krb5_context,
1431*505d05c7Sgtb 		krb5_ccache,		/* not const, as reading may save
14327c478bd9Sstevel@tonic-gate 					   state */
1433*505d05c7Sgtb 		krb5_creds *,
1434*505d05c7Sgtb 		krb5_creds **,
1435*505d05c7Sgtb 		krb5_creds *** );
1436*505d05c7Sgtb #endif
1437*505d05c7Sgtb 
14387c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_tgt_creds
1439*505d05c7Sgtb 	(krb5_context,
1440*505d05c7Sgtb 	 krb5_creds **); /* XXX too hard to do with const */
14417c478bd9Sstevel@tonic-gate 
14427c478bd9Sstevel@tonic-gate #define	KRB5_GC_USER_USER	1	/* want user-user ticket */
14437c478bd9Sstevel@tonic-gate #define	KRB5_GC_CACHED		2	/* want cached ticket only */
14447c478bd9Sstevel@tonic-gate 
14457c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_credentials
1446*505d05c7Sgtb 	(krb5_context,
1447*505d05c7Sgtb 		krb5_flags,
1448*505d05c7Sgtb 		krb5_ccache,
1449*505d05c7Sgtb 		krb5_creds *,
1450*505d05c7Sgtb 		krb5_creds **);
14517c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_credentials_validate
1452*505d05c7Sgtb 	(krb5_context,
1453*505d05c7Sgtb 		krb5_flags,
1454*505d05c7Sgtb 		krb5_ccache,
1455*505d05c7Sgtb 		krb5_creds *,
1456*505d05c7Sgtb 		krb5_creds **);
14577c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_credentials_renew
1458*505d05c7Sgtb 	(krb5_context,
1459*505d05c7Sgtb 		krb5_flags,
1460*505d05c7Sgtb 		krb5_ccache,
1461*505d05c7Sgtb 		krb5_creds *,
1462*505d05c7Sgtb 		krb5_creds **);
1463*505d05c7Sgtb #if KRB5_PRIVATE
14647c478bd9Sstevel@tonic-gate krb5_error_code krb5_get_cred_via_tkt
1465*505d05c7Sgtb 	(krb5_context,
1466*505d05c7Sgtb 		   krb5_creds *,
1467*505d05c7Sgtb 		   krb5_flags,
1468*505d05c7Sgtb 		   krb5_address * const *,
1469*505d05c7Sgtb 		   krb5_creds *,
1470*505d05c7Sgtb 		   krb5_creds **);
1471*505d05c7Sgtb #endif
14727c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_req
1473*505d05c7Sgtb 	(krb5_context,
14747c478bd9Sstevel@tonic-gate 		krb5_auth_context *,
1475*505d05c7Sgtb 		krb5_flags,
14767c478bd9Sstevel@tonic-gate 		char *,
14777c478bd9Sstevel@tonic-gate 		char *,
14787c478bd9Sstevel@tonic-gate 		krb5_data *,
14797c478bd9Sstevel@tonic-gate 		krb5_ccache,
1480*505d05c7Sgtb 		krb5_data * );
14817c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_req_extended
1482*505d05c7Sgtb 	(krb5_context,
1483*505d05c7Sgtb 		krb5_auth_context *,
1484*505d05c7Sgtb 		krb5_flags,
1485*505d05c7Sgtb 		krb5_data *,
1486*505d05c7Sgtb 		krb5_creds *,
1487*505d05c7Sgtb 		krb5_data * );
14887c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_rep
1489*505d05c7Sgtb 	(krb5_context,
14907c478bd9Sstevel@tonic-gate 		krb5_auth_context,
1491*505d05c7Sgtb 		krb5_data *);
14927c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_rd_rep
1493*505d05c7Sgtb 	(krb5_context,
1494*505d05c7Sgtb 		krb5_auth_context,
1495*505d05c7Sgtb 		const krb5_data *,
1496*505d05c7Sgtb 		krb5_ap_rep_enc_part **);
14977c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_error
1498*505d05c7Sgtb 	(krb5_context,
1499*505d05c7Sgtb 		const krb5_error *,
1500*505d05c7Sgtb 		krb5_data * );
15017c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_rd_error
1502*505d05c7Sgtb 	(krb5_context,
1503*505d05c7Sgtb 		const krb5_data *,
1504*505d05c7Sgtb 		krb5_error ** );
15057c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_rd_safe
1506*505d05c7Sgtb 	(krb5_context,
15077c478bd9Sstevel@tonic-gate 		krb5_auth_context,
1508*505d05c7Sgtb 		const krb5_data *,
15097c478bd9Sstevel@tonic-gate 		krb5_data *,
1510*505d05c7Sgtb 		krb5_replay_data *);
15117c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_rd_priv
1512*505d05c7Sgtb 	(krb5_context,
15137c478bd9Sstevel@tonic-gate 		krb5_auth_context,
1514*505d05c7Sgtb 		const krb5_data *,
15157c478bd9Sstevel@tonic-gate 		krb5_data *,
1516*505d05c7Sgtb 		krb5_replay_data *);
15177c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_parse_name
1518*505d05c7Sgtb 	(krb5_context,
1519*505d05c7Sgtb 		const char *,
1520*505d05c7Sgtb 		krb5_principal * );
15217c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_unparse_name
1522*505d05c7Sgtb 	(krb5_context,
1523*505d05c7Sgtb 		krb5_const_principal,
1524*505d05c7Sgtb 		char ** );
15257c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_unparse_name_ext
1526*505d05c7Sgtb 	(krb5_context,
15277c478bd9Sstevel@tonic-gate 		krb5_const_principal,
1528*505d05c7Sgtb 		char **,
1529*505d05c7Sgtb 		unsigned int *);
15307c478bd9Sstevel@tonic-gate 
15317c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_set_principal_realm
1532*505d05c7Sgtb 	(krb5_context, krb5_principal, const char *);
1533*505d05c7Sgtb 
1534*505d05c7Sgtb krb5_boolean KRB5_CALLCONV_WRONG krb5_address_search
1535*505d05c7Sgtb 	(krb5_context,
1536*505d05c7Sgtb 		const krb5_address *,
1537*505d05c7Sgtb 		krb5_address * const *);
1538*505d05c7Sgtb krb5_boolean KRB5_CALLCONV krb5_address_compare
1539*505d05c7Sgtb 	(krb5_context,
1540*505d05c7Sgtb 		const krb5_address *,
1541*505d05c7Sgtb 		const krb5_address *);
1542*505d05c7Sgtb int KRB5_CALLCONV krb5_address_order
1543*505d05c7Sgtb 	(krb5_context,
1544*505d05c7Sgtb 		const krb5_address *,
1545*505d05c7Sgtb 		const krb5_address *);
1546*505d05c7Sgtb krb5_boolean KRB5_CALLCONV krb5_realm_compare
1547*505d05c7Sgtb 	(krb5_context,
1548*505d05c7Sgtb 		krb5_const_principal,
1549*505d05c7Sgtb 		krb5_const_principal);
1550*505d05c7Sgtb krb5_boolean KRB5_CALLCONV krb5_principal_compare
1551*505d05c7Sgtb 	(krb5_context,
1552*505d05c7Sgtb 		krb5_const_principal,
1553*505d05c7Sgtb 		krb5_const_principal);
1554*505d05c7Sgtb krb5_error_code KRB5_CALLCONV  krb5_init_keyblock
1555*505d05c7Sgtb 		(krb5_context, krb5_enctype enctype,
1556*505d05c7Sgtb 		size_t length, krb5_keyblock **out);
1557*505d05c7Sgtb   		/* Initialize a new keyblock and allocate storage
1558*505d05c7Sgtb 		 * for the contents of the key, which will be freed along
1559*505d05c7Sgtb 		 * with the keyblock when krb5_free_keyblock is called.
1560*505d05c7Sgtb 		 * It is legal to pass in a length of 0, in which
1561*505d05c7Sgtb 		 * case contents are left unallocated.
1562*505d05c7Sgtb 		 */
15637c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_keyblock
1564*505d05c7Sgtb 	(krb5_context,
1565*505d05c7Sgtb 		const krb5_keyblock *,
1566*505d05c7Sgtb 		krb5_keyblock **);
15677c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_keyblock_contents
1568*505d05c7Sgtb 	(krb5_context,
1569*505d05c7Sgtb 		const krb5_keyblock *,
1570*505d05c7Sgtb 		krb5_keyblock *);
15717c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_creds
1572*505d05c7Sgtb 	(krb5_context,
1573*505d05c7Sgtb 		const krb5_creds *,
1574*505d05c7Sgtb 		krb5_creds **);
15757c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_data
1576*505d05c7Sgtb 	(krb5_context,
1577*505d05c7Sgtb 		const krb5_data *,
1578*505d05c7Sgtb 		krb5_data **);
15797c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_principal
1580*505d05c7Sgtb 	(krb5_context,
15817c478bd9Sstevel@tonic-gate 		krb5_const_principal,
1582*505d05c7Sgtb 		krb5_principal *);
1583*505d05c7Sgtb #if KRB5_PRIVATE
15847c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_addr
1585*505d05c7Sgtb 	(krb5_context,
15867c478bd9Sstevel@tonic-gate 		const krb5_address *,
1587*505d05c7Sgtb 		krb5_address **);
1588*505d05c7Sgtb #endif
15897c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_addresses
1590*505d05c7Sgtb 	(krb5_context,
1591*505d05c7Sgtb 		krb5_address * const *,
1592*505d05c7Sgtb 		krb5_address ***);
15937c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_ticket
1594*505d05c7Sgtb 	(krb5_context,
1595*505d05c7Sgtb 		const krb5_ticket *,
1596*505d05c7Sgtb 		krb5_ticket **);
15977c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_authdata
1598*505d05c7Sgtb 	(krb5_context,
1599*505d05c7Sgtb 		krb5_authdata * const *,
1600*505d05c7Sgtb 		krb5_authdata ***);
16017c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_authenticator
1602*505d05c7Sgtb 	(krb5_context,
1603*505d05c7Sgtb 		const krb5_authenticator *,
1604*505d05c7Sgtb 		krb5_authenticator **);
16057c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_copy_checksum
1606*505d05c7Sgtb 	(krb5_context,
1607*505d05c7Sgtb 		const krb5_checksum *,
1608*505d05c7Sgtb 		krb5_checksum **);
1609*505d05c7Sgtb #if KRB5_PRIVATE
16107c478bd9Sstevel@tonic-gate void krb5_init_ets
1611*505d05c7Sgtb 	(krb5_context);
16127c478bd9Sstevel@tonic-gate void krb5_free_ets
1613*505d05c7Sgtb 	(krb5_context);
16147c478bd9Sstevel@tonic-gate krb5_error_code krb5_generate_subkey
1615*505d05c7Sgtb 	(krb5_context,
1616*505d05c7Sgtb 		const krb5_keyblock *, krb5_keyblock **);
16177c478bd9Sstevel@tonic-gate krb5_error_code krb5_generate_seq_number
1618*505d05c7Sgtb 	(krb5_context,
1619*505d05c7Sgtb 		const krb5_keyblock *, krb5_ui_4 *);
1620*505d05c7Sgtb #endif
16217c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_server_rcache
1622*505d05c7Sgtb 	(krb5_context,
1623*505d05c7Sgtb 		const krb5_data *, krb5_rcache *);
16247c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV_C krb5_build_principal_ext
1625*505d05c7Sgtb 	(krb5_context, krb5_principal *, unsigned int, const char *, ...);
1626*505d05c7Sgtb krb5_error_code KRB5_CALLCONV_C krb5_build_principal
1627*505d05c7Sgtb 	(krb5_context, krb5_principal *, unsigned int, const char *, ...);
16287c478bd9Sstevel@tonic-gate #ifdef va_start
16297c478bd9Sstevel@tonic-gate /* XXX depending on varargs include file defining va_start... */
1630*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_build_principal_va
1631*505d05c7Sgtb 	(krb5_context,
1632*505d05c7Sgtb 		krb5_principal, unsigned int, const char *, va_list);
16337c478bd9Sstevel@tonic-gate #endif
16347c478bd9Sstevel@tonic-gate 
16357c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_425_conv_principal
1636*505d05c7Sgtb 	(krb5_context,
1637*505d05c7Sgtb 		const char *name,
1638*505d05c7Sgtb 		const char *instance, const char *realm,
1639*505d05c7Sgtb 		krb5_principal *princ);
16407c478bd9Sstevel@tonic-gate 
16417c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_524_conv_principal
1642*505d05c7Sgtb 	(krb5_context context, krb5_const_principal princ,
1643*505d05c7Sgtb 		char *name, char *inst, char *realm);
1644*505d05c7Sgtb 
1645*505d05c7Sgtb struct credentials;
1646*505d05c7Sgtb int KRB5_CALLCONV krb5_524_convert_creds
1647*505d05c7Sgtb 	(krb5_context context, krb5_creds *v5creds,
1648*505d05c7Sgtb 	 struct credentials *v4creds);
1649*505d05c7Sgtb #if KRB5_DEPRECATED
1650*505d05c7Sgtb #define krb524_convert_creds_kdc krb5_524_convert_creds
1651*505d05c7Sgtb #define krb524_init_ets(x) (0)
1652*505d05c7Sgtb #endif
16537c478bd9Sstevel@tonic-gate 
16547c478bd9Sstevel@tonic-gate /* libkt.spec */
1655*505d05c7Sgtb #if KRB5_PRIVATE
16567c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_register
1657*505d05c7Sgtb 	(krb5_context,
1658*505d05c7Sgtb 		const struct _krb5_kt_ops * );
1659*505d05c7Sgtb #endif
1660*505d05c7Sgtb 
16617c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_resolve
1662*505d05c7Sgtb 	(krb5_context,
1663*505d05c7Sgtb 		const char *,
1664*505d05c7Sgtb 		krb5_keytab * );
16657c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_default_name
1666*505d05c7Sgtb 	(krb5_context,
16677c478bd9Sstevel@tonic-gate 		char *,
1668*505d05c7Sgtb 		int );
16697c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_default
1670*505d05c7Sgtb 	(krb5_context,
1671*505d05c7Sgtb 		krb5_keytab * );
1672*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_free_keytab_entry_contents
1673*505d05c7Sgtb 	(krb5_context,
1674*505d05c7Sgtb 		krb5_keytab_entry * );
1675*505d05c7Sgtb #if KRB5_PRIVATE
1676*505d05c7Sgtb /* use krb5_free_keytab_entry_contents instead */
16777c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_free_entry
1678*505d05c7Sgtb 	(krb5_context,
1679*505d05c7Sgtb 		krb5_keytab_entry * );
1680*505d05c7Sgtb #endif
16817c478bd9Sstevel@tonic-gate /* remove and add are functions, so that they can return NOWRITE
16827c478bd9Sstevel@tonic-gate    if not a writable keytab */
16837c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_remove_entry
1684*505d05c7Sgtb 	(krb5_context,
16857c478bd9Sstevel@tonic-gate 		krb5_keytab,
1686*505d05c7Sgtb 		krb5_keytab_entry * );
16877c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_add_entry
1688*505d05c7Sgtb 	(krb5_context,
16897c478bd9Sstevel@tonic-gate 		krb5_keytab,
1690*505d05c7Sgtb 		krb5_keytab_entry * );
1691*505d05c7Sgtb krb5_error_code KRB5_CALLCONV_WRONG krb5_principal2salt
1692*505d05c7Sgtb 	(krb5_context,
1693*505d05c7Sgtb 		krb5_const_principal, krb5_data *);
1694*505d05c7Sgtb #if KRB5_PRIVATE
16957c478bd9Sstevel@tonic-gate krb5_error_code krb5_principal2salt_norealm
1696*505d05c7Sgtb 	(krb5_context,
1697*505d05c7Sgtb 		krb5_const_principal, krb5_data *);
1698*505d05c7Sgtb #endif
16997c478bd9Sstevel@tonic-gate /* librc.spec--see rcache.h */
17007c478bd9Sstevel@tonic-gate 
17017c478bd9Sstevel@tonic-gate /* libcc.spec */
17027c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_cc_resolve
1703*505d05c7Sgtb 	(krb5_context,
1704*505d05c7Sgtb 		const char *,
1705*505d05c7Sgtb 		krb5_ccache * );
1706*505d05c7Sgtb const char * KRB5_CALLCONV krb5_cc_default_name
1707*505d05c7Sgtb 	(krb5_context);
17087c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_cc_set_default_name
1709*505d05c7Sgtb 	(krb5_context, const char *);
17107c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_cc_default
1711*505d05c7Sgtb 	(krb5_context,
1712*505d05c7Sgtb 		krb5_ccache *);
1713*505d05c7Sgtb #if KRB5_PRIVATE
1714*505d05c7Sgtb unsigned int KRB5_CALLCONV krb5_get_notification_message
1715*505d05c7Sgtb 	(void);
1716*505d05c7Sgtb #endif
17177c478bd9Sstevel@tonic-gate 
17187c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_cc_copy_creds
1719*505d05c7Sgtb 	(krb5_context context,
17207c478bd9Sstevel@tonic-gate 			krb5_ccache incc,
1721*505d05c7Sgtb 			krb5_ccache outcc);
17227c478bd9Sstevel@tonic-gate 
17237c478bd9Sstevel@tonic-gate 
17247c478bd9Sstevel@tonic-gate /* chk_trans.c */
1725*505d05c7Sgtb #if KRB5_PRIVATE
17267c478bd9Sstevel@tonic-gate krb5_error_code krb5_check_transited_list
1727*505d05c7Sgtb 	(krb5_context, const krb5_data *trans,
1728*505d05c7Sgtb 	 const krb5_data *realm1, const krb5_data *realm2);
1729*505d05c7Sgtb #endif
17307c478bd9Sstevel@tonic-gate 
17317c478bd9Sstevel@tonic-gate /* free_rtree.c */
1732*505d05c7Sgtb #if KRB5_PRIVATE
17337c478bd9Sstevel@tonic-gate void krb5_free_realm_tree
1734*505d05c7Sgtb 	(krb5_context,
1735*505d05c7Sgtb 		krb5_principal *);
1736*505d05c7Sgtb #endif
17377c478bd9Sstevel@tonic-gate 
17387c478bd9Sstevel@tonic-gate /* krb5_free.c */
17397c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_principal
1740*505d05c7Sgtb 	(krb5_context, krb5_principal );
17417c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_authenticator
1742*505d05c7Sgtb 	(krb5_context, krb5_authenticator * );
1743*505d05c7Sgtb #if KRB5_PRIVATE
17447c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_authenticator_contents
1745*505d05c7Sgtb 	(krb5_context, krb5_authenticator * );
1746*505d05c7Sgtb #endif
17477c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_addresses
1748*505d05c7Sgtb 	(krb5_context, krb5_address ** );
1749*505d05c7Sgtb #if KRB5_PRIVATE
17507c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_address
1751*505d05c7Sgtb 	(krb5_context, krb5_address * );
1752*505d05c7Sgtb #endif
17537c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_authdata
1754*505d05c7Sgtb 	(krb5_context, krb5_authdata ** );
1755*505d05c7Sgtb #if KRB5_PRIVATE
17567c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_enc_tkt_part
1757*505d05c7Sgtb 	(krb5_context, krb5_enc_tkt_part * );
1758*505d05c7Sgtb #endif
17597c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_ticket
1760*505d05c7Sgtb 	(krb5_context, krb5_ticket * );
1761*505d05c7Sgtb #if KRB5_PRIVATE
17627c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_tickets
1763*505d05c7Sgtb 	(krb5_context, krb5_ticket ** );
17647c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_kdc_req
1765*505d05c7Sgtb 	(krb5_context, krb5_kdc_req * );
17667c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_kdc_rep
1767*505d05c7Sgtb 	(krb5_context, krb5_kdc_rep * );
17687c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_last_req
1769*505d05c7Sgtb 	(krb5_context, krb5_last_req_entry ** );
17707c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_enc_kdc_rep_part
1771*505d05c7Sgtb 	(krb5_context, krb5_enc_kdc_rep_part * );
1772*505d05c7Sgtb #endif
17737c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_error
1774*505d05c7Sgtb 	(krb5_context, krb5_error * );
1775*505d05c7Sgtb #if KRB5_PRIVATE
17767c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_ap_req
1777*505d05c7Sgtb 	(krb5_context, krb5_ap_req * );
17787c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_ap_rep
1779*505d05c7Sgtb 	(krb5_context, krb5_ap_rep * );
17807c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_cred
1781*505d05c7Sgtb 	(krb5_context, krb5_cred *);
1782*505d05c7Sgtb #endif
17837c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_creds
1784*505d05c7Sgtb 	(krb5_context, krb5_creds *);
17857c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_cred_contents
1786*505d05c7Sgtb 	(krb5_context, krb5_creds *);
1787*505d05c7Sgtb #if KRB5_PRIVATE
17887c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_cred_enc_part
1789*505d05c7Sgtb 	(krb5_context, krb5_cred_enc_part *);
1790*505d05c7Sgtb #endif
17917c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_checksum
1792*505d05c7Sgtb 	(krb5_context, krb5_checksum *);
17937c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_checksum_contents
1794*505d05c7Sgtb 	(krb5_context, krb5_checksum *);
17957c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_keyblock
1796*505d05c7Sgtb 	(krb5_context, krb5_keyblock *);
17977c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_keyblock_contents
1798*505d05c7Sgtb 	(krb5_context, krb5_keyblock *);
1799*505d05c7Sgtb #if KRB5_PRIVATE
18007c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_pa_data
1801*505d05c7Sgtb 	(krb5_context, krb5_pa_data **);
1802*505d05c7Sgtb #endif
18037c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_ap_rep_enc_part
1804*505d05c7Sgtb 	(krb5_context, krb5_ap_rep_enc_part *);
1805*505d05c7Sgtb #if KRB5_PRIVATE
18067c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_tkt_authent
1807*505d05c7Sgtb 	(krb5_context, krb5_tkt_authent *);
18087c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_pwd_data
1809*505d05c7Sgtb 	(krb5_context, krb5_pwd_data *);
18107c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_pwd_sequences
1811*505d05c7Sgtb 	(krb5_context, passwd_phrase_element **);
1812*505d05c7Sgtb #endif
18137c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_data
1814*505d05c7Sgtb 	(krb5_context, krb5_data *);
18157c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_data_contents
1816*505d05c7Sgtb 	(krb5_context, krb5_data *);
18177c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_unparsed_name
1818*505d05c7Sgtb 	(krb5_context, char *);
18197c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_cksumtypes
1820*505d05c7Sgtb 	(krb5_context, krb5_cksumtype *);
18217c478bd9Sstevel@tonic-gate 
18227c478bd9Sstevel@tonic-gate /* From krb5/os but needed but by the outside world */
18237c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_us_timeofday
1824*505d05c7Sgtb 	(krb5_context,
1825*505d05c7Sgtb 		krb5_int32 *,
1826*505d05c7Sgtb 		krb5_int32 * );
18277c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_timeofday
1828*505d05c7Sgtb 	(krb5_context,
1829*505d05c7Sgtb 		krb5_int32 * );
18307c478bd9Sstevel@tonic-gate 		 /* get all the addresses of this host */
18317c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_os_localaddr
1832*505d05c7Sgtb 	(krb5_context,
1833*505d05c7Sgtb 		krb5_address ***);
18347c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_default_realm
1835*505d05c7Sgtb 	(krb5_context,
1836*505d05c7Sgtb 		 char ** );
18377c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_set_default_realm
1838*505d05c7Sgtb 	(krb5_context,
1839*505d05c7Sgtb 		   const char * );
18407c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_default_realm
1841*505d05c7Sgtb 	(krb5_context,
1842*505d05c7Sgtb 		   char * );
18437c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_sname_to_principal
1844*505d05c7Sgtb 	(krb5_context,
1845*505d05c7Sgtb 		const char *,
1846*505d05c7Sgtb 		   const char *,
18477c478bd9Sstevel@tonic-gate 		   krb5_int32,
1848*505d05c7Sgtb 		   krb5_principal *);
1849*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1850*505d05c7Sgtb krb5_change_password
1851*505d05c7Sgtb 	(krb5_context context, krb5_creds *creds, char *newpw,
1852*505d05c7Sgtb 			int *result_code, krb5_data *result_code_string,
1853*505d05c7Sgtb 			krb5_data *result_string);
1854*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1855*505d05c7Sgtb krb5_set_password
1856*505d05c7Sgtb 	(krb5_context context, krb5_creds *creds, char *newpw, krb5_principal change_password_for,
1857*505d05c7Sgtb 			int *result_code, krb5_data *result_code_string, krb5_data *result_string);
1858*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1859*505d05c7Sgtb krb5_set_password_using_ccache
1860*505d05c7Sgtb 	(krb5_context context, krb5_ccache ccache, char *newpw, krb5_principal change_password_for,
1861*505d05c7Sgtb 			int *result_code, krb5_data *result_code_string, krb5_data *result_string);
18627c478bd9Sstevel@tonic-gate 
1863*505d05c7Sgtb #if KRB5_PRIVATE
18647c478bd9Sstevel@tonic-gate krb5_error_code krb5_set_config_files
1865*505d05c7Sgtb 	(krb5_context, const char **);
18667c478bd9Sstevel@tonic-gate 
18677c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_default_config_files
1868*505d05c7Sgtb 	(char ***filenames);
18697c478bd9Sstevel@tonic-gate 
18707c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_config_files
1871*505d05c7Sgtb 	(char **filenames);
18727c478bd9Sstevel@tonic-gate #endif
18737c478bd9Sstevel@tonic-gate 
1874*505d05c7Sgtb krb5_error_code KRB5_CALLCONV
1875*505d05c7Sgtb krb5_get_profile
1876*505d05c7Sgtb 	(krb5_context, struct _profile_t * /* profile_t */ *);
1877*505d05c7Sgtb 
1878*505d05c7Sgtb #if KRB5_PRIVATE
18797c478bd9Sstevel@tonic-gate krb5_error_code krb5_send_tgs
1880*505d05c7Sgtb 	(krb5_context,
1881*505d05c7Sgtb 		krb5_flags,
1882*505d05c7Sgtb 		const krb5_ticket_times *,
1883*505d05c7Sgtb 		const krb5_enctype *,
1884*505d05c7Sgtb 		krb5_const_principal,
1885*505d05c7Sgtb 		krb5_address * const *,
1886*505d05c7Sgtb 		krb5_authdata * const *,
1887*505d05c7Sgtb 		krb5_pa_data * const *,
1888*505d05c7Sgtb 		const krb5_data *,
1889*505d05c7Sgtb 		krb5_creds *,
1890*505d05c7Sgtb 		krb5_response * );
1891*505d05c7Sgtb #endif
1892*505d05c7Sgtb 
1893*505d05c7Sgtb #if KRB5_DEPRECATED
1894*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_get_in_tkt
1895*505d05c7Sgtb 	(krb5_context,
1896*505d05c7Sgtb 		krb5_flags,
1897*505d05c7Sgtb 		krb5_address * const *,
1898*505d05c7Sgtb 		krb5_enctype *,
1899*505d05c7Sgtb 		krb5_preauthtype *,
1900*505d05c7Sgtb 		krb5_error_code ( * )(krb5_context,
1901*505d05c7Sgtb 					krb5_enctype,
1902*505d05c7Sgtb 					krb5_data *,
1903*505d05c7Sgtb 					krb5_const_pointer,
1904*505d05c7Sgtb 					krb5_keyblock **),
1905*505d05c7Sgtb 		krb5_const_pointer,
1906*505d05c7Sgtb 		krb5_error_code ( * )(krb5_context,
1907*505d05c7Sgtb 					const krb5_keyblock *,
1908*505d05c7Sgtb 					krb5_const_pointer,
1909*505d05c7Sgtb 					krb5_kdc_rep * ),
1910*505d05c7Sgtb 		krb5_const_pointer,
1911*505d05c7Sgtb 		krb5_creds *,
1912*505d05c7Sgtb 		krb5_ccache,
1913*505d05c7Sgtb 		krb5_kdc_rep ** );
1914*505d05c7Sgtb 
1915*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_get_in_tkt_with_password
1916*505d05c7Sgtb 	(krb5_context,
1917*505d05c7Sgtb 		krb5_flags,
1918*505d05c7Sgtb 		krb5_address * const *,
1919*505d05c7Sgtb 		krb5_enctype *,
1920*505d05c7Sgtb 		krb5_preauthtype *,
1921*505d05c7Sgtb 		const char *,
1922*505d05c7Sgtb 		krb5_ccache,
1923*505d05c7Sgtb 		krb5_creds *,
1924*505d05c7Sgtb 		krb5_kdc_rep ** );
1925*505d05c7Sgtb 
1926*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_get_in_tkt_with_skey
1927*505d05c7Sgtb 	(krb5_context,
1928*505d05c7Sgtb 		krb5_flags,
1929*505d05c7Sgtb 		krb5_address * const *,
1930*505d05c7Sgtb 		krb5_enctype *,
1931*505d05c7Sgtb 		krb5_preauthtype *,
1932*505d05c7Sgtb 		const krb5_keyblock *,
1933*505d05c7Sgtb 		krb5_ccache,
1934*505d05c7Sgtb 		krb5_creds *,
1935*505d05c7Sgtb 		krb5_kdc_rep ** );
1936*505d05c7Sgtb 
1937*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_get_in_tkt_with_keytab
1938*505d05c7Sgtb 	(krb5_context,
1939*505d05c7Sgtb 		krb5_flags,
1940*505d05c7Sgtb 		krb5_address * const *,
1941*505d05c7Sgtb 		krb5_enctype *,
1942*505d05c7Sgtb 		krb5_preauthtype *,
1943*505d05c7Sgtb 		krb5_keytab,
1944*505d05c7Sgtb 		krb5_ccache,
1945*505d05c7Sgtb 		krb5_creds *,
1946*505d05c7Sgtb 		krb5_kdc_rep ** );
1947*505d05c7Sgtb #endif /* KRB5_DEPRECATED */
19487c478bd9Sstevel@tonic-gate 
1949*505d05c7Sgtb #if KRB5_PRIVATE
19507c478bd9Sstevel@tonic-gate krb5_error_code krb5_decode_kdc_rep
1951*505d05c7Sgtb 	(krb5_context,
1952*505d05c7Sgtb 		krb5_data *,
1953*505d05c7Sgtb 		const krb5_keyblock *,
1954*505d05c7Sgtb 		krb5_kdc_rep ** );
1955*505d05c7Sgtb #endif
19567c478bd9Sstevel@tonic-gate 
19577c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_rd_req
1958*505d05c7Sgtb 	(krb5_context,
19597c478bd9Sstevel@tonic-gate 		krb5_auth_context *,
1960*505d05c7Sgtb 		const krb5_data *,
19617c478bd9Sstevel@tonic-gate 		krb5_const_principal,
19627c478bd9Sstevel@tonic-gate 		krb5_keytab,
19637c478bd9Sstevel@tonic-gate 		krb5_flags *,
1964*505d05c7Sgtb 		krb5_ticket **);
19657c478bd9Sstevel@tonic-gate 
1966*505d05c7Sgtb #if KRB5_PRIVATE
19677c478bd9Sstevel@tonic-gate krb5_error_code krb5_rd_req_decoded
1968*505d05c7Sgtb 	(krb5_context,
1969*505d05c7Sgtb 		krb5_auth_context *,
1970*505d05c7Sgtb 		const krb5_ap_req *,
1971*505d05c7Sgtb 		krb5_const_principal,
1972*505d05c7Sgtb 		krb5_keytab,
1973*505d05c7Sgtb 		krb5_flags *,
1974*505d05c7Sgtb 		krb5_ticket **);
19757c478bd9Sstevel@tonic-gate 
19767c478bd9Sstevel@tonic-gate krb5_error_code krb5_rd_req_decoded_anyflag
1977*505d05c7Sgtb 	(krb5_context,
1978*505d05c7Sgtb 		krb5_auth_context *,
1979*505d05c7Sgtb 		const krb5_ap_req *,
1980*505d05c7Sgtb 		krb5_const_principal,
1981*505d05c7Sgtb 		krb5_keytab,
1982*505d05c7Sgtb 		krb5_flags *,
1983*505d05c7Sgtb 		krb5_ticket **);
1984*505d05c7Sgtb #endif
19857c478bd9Sstevel@tonic-gate 
19867c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_kt_read_service_key
1987*505d05c7Sgtb 	(krb5_context,
19887c478bd9Sstevel@tonic-gate 		krb5_pointer,
19897c478bd9Sstevel@tonic-gate 		krb5_principal,
19907c478bd9Sstevel@tonic-gate 		krb5_kvno,
19917c478bd9Sstevel@tonic-gate 		krb5_enctype,
1992*505d05c7Sgtb 		krb5_keyblock **);
19937c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_safe
1994*505d05c7Sgtb 	(krb5_context,
19957c478bd9Sstevel@tonic-gate 		krb5_auth_context,
1996*505d05c7Sgtb 		const krb5_data *,
19977c478bd9Sstevel@tonic-gate 		krb5_data *,
1998*505d05c7Sgtb 		krb5_replay_data *);
19997c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_priv
2000*505d05c7Sgtb 	(krb5_context,
20017c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2002*505d05c7Sgtb 		const krb5_data *,
20037c478bd9Sstevel@tonic-gate 		krb5_data *,
2004*505d05c7Sgtb 		krb5_replay_data *);
2005*505d05c7Sgtb #if KRB5_PRIVATE
20067c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_cc_register
2007*505d05c7Sgtb 	(krb5_context,
20087c478bd9Sstevel@tonic-gate 		krb5_cc_ops *,
2009*505d05c7Sgtb 		krb5_boolean );
2010*505d05c7Sgtb #endif
20117c478bd9Sstevel@tonic-gate 
2012*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_sendauth
2013*505d05c7Sgtb 	(krb5_context,
20147c478bd9Sstevel@tonic-gate 		krb5_auth_context *,
20157c478bd9Sstevel@tonic-gate 		krb5_pointer,
20167c478bd9Sstevel@tonic-gate 		char *,
20177c478bd9Sstevel@tonic-gate 		krb5_principal,
20187c478bd9Sstevel@tonic-gate 		krb5_principal,
20197c478bd9Sstevel@tonic-gate 		krb5_flags,
20207c478bd9Sstevel@tonic-gate 		krb5_data *,
20217c478bd9Sstevel@tonic-gate 		krb5_creds *,
20227c478bd9Sstevel@tonic-gate 		krb5_ccache,
2023*505d05c7Sgtb 		krb5_error **,
2024*505d05c7Sgtb 		krb5_ap_rep_enc_part **,
2025*505d05c7Sgtb 		krb5_creds **);
2026*505d05c7Sgtb 
20277c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_recvauth
2028*505d05c7Sgtb 	(krb5_context,
20297c478bd9Sstevel@tonic-gate 		krb5_auth_context *,
20307c478bd9Sstevel@tonic-gate 		krb5_pointer,
20317c478bd9Sstevel@tonic-gate 		char *,
20327c478bd9Sstevel@tonic-gate 		krb5_principal,
2033*505d05c7Sgtb 		krb5_int32,
20347c478bd9Sstevel@tonic-gate 		krb5_keytab,
2035*505d05c7Sgtb 		krb5_ticket **);
20367c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_recvauth_version
2037*505d05c7Sgtb 	(krb5_context,
20387c478bd9Sstevel@tonic-gate 		krb5_auth_context *,
20397c478bd9Sstevel@tonic-gate 		krb5_pointer,
20407c478bd9Sstevel@tonic-gate 		krb5_principal,
2041*505d05c7Sgtb 		krb5_int32,
20427c478bd9Sstevel@tonic-gate 		krb5_keytab,
2043*505d05c7Sgtb 		krb5_ticket **,
2044*505d05c7Sgtb 		krb5_data *);
20457c478bd9Sstevel@tonic-gate 
2046*505d05c7Sgtb #if KRB5_PRIVATE
20477c478bd9Sstevel@tonic-gate krb5_error_code krb5_walk_realm_tree
2048*505d05c7Sgtb 	(krb5_context,
2049*505d05c7Sgtb 		const krb5_data *,
2050*505d05c7Sgtb 		const krb5_data *,
20517c478bd9Sstevel@tonic-gate 		krb5_principal **,
2052*505d05c7Sgtb 		int);
2053*505d05c7Sgtb #endif
20547c478bd9Sstevel@tonic-gate 
20557c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_ncred
2056*505d05c7Sgtb 	(krb5_context,
20577c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2058*505d05c7Sgtb 		krb5_creds **,
2059*505d05c7Sgtb 		krb5_data **,
2060*505d05c7Sgtb 		krb5_replay_data *);
20617c478bd9Sstevel@tonic-gate 
20627c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_mk_1cred
2063*505d05c7Sgtb 	(krb5_context,
20647c478bd9Sstevel@tonic-gate 		krb5_auth_context,
20657c478bd9Sstevel@tonic-gate 		krb5_creds *,
2066*505d05c7Sgtb 		krb5_data **,
2067*505d05c7Sgtb 		krb5_replay_data *);
20687c478bd9Sstevel@tonic-gate 
20697c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_rd_cred
2070*505d05c7Sgtb 	(krb5_context,
20717c478bd9Sstevel@tonic-gate 		krb5_auth_context,
20727c478bd9Sstevel@tonic-gate 		krb5_data *,
2073*505d05c7Sgtb 		krb5_creds ***,
2074*505d05c7Sgtb 		krb5_replay_data *);
20757c478bd9Sstevel@tonic-gate 
20767c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_fwd_tgt_creds
2077*505d05c7Sgtb 	(krb5_context,
20787c478bd9Sstevel@tonic-gate 		krb5_auth_context,
20797c478bd9Sstevel@tonic-gate 		char *,
2080*505d05c7Sgtb 		krb5_principal,
2081*505d05c7Sgtb 		krb5_principal,
20827c478bd9Sstevel@tonic-gate 		krb5_ccache,
20837c478bd9Sstevel@tonic-gate 		int forwardable,
2084*505d05c7Sgtb 		krb5_data *);
20857c478bd9Sstevel@tonic-gate 
20867c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_init
2087*505d05c7Sgtb 	(krb5_context,
2088*505d05c7Sgtb 		krb5_auth_context *);
20897c478bd9Sstevel@tonic-gate 
20907c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_free
2091*505d05c7Sgtb 	(krb5_context,
2092*505d05c7Sgtb 		krb5_auth_context);
20937c478bd9Sstevel@tonic-gate 
20947c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_setflags
2095*505d05c7Sgtb 	(krb5_context,
20967c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2097*505d05c7Sgtb 		krb5_int32);
20987c478bd9Sstevel@tonic-gate 
20997c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getflags
2100*505d05c7Sgtb 	(krb5_context,
21017c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2102*505d05c7Sgtb 		krb5_int32 *);
21037c478bd9Sstevel@tonic-gate 
21047c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
21057c478bd9Sstevel@tonic-gate krb5_auth_con_set_checksum_func (krb5_context, krb5_auth_context,
2106*505d05c7Sgtb 				 krb5_mk_req_checksum_func, void *);
21077c478bd9Sstevel@tonic-gate 
21087c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
21097c478bd9Sstevel@tonic-gate krb5_auth_con_get_checksum_func( krb5_context, krb5_auth_context,
2110*505d05c7Sgtb 				 krb5_mk_req_checksum_func *, void **);
2111*505d05c7Sgtb 
2112*505d05c7Sgtb krb5_error_code KRB5_CALLCONV_WRONG krb5_auth_con_setaddrs
2113*505d05c7Sgtb 	(krb5_context,
2114*505d05c7Sgtb 		krb5_auth_context,
2115*505d05c7Sgtb 		krb5_address *,
2116*505d05c7Sgtb 		krb5_address *);
2117*505d05c7Sgtb 
2118*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_auth_con_getaddrs
2119*505d05c7Sgtb 	(krb5_context,
2120*505d05c7Sgtb 		krb5_auth_context,
2121*505d05c7Sgtb 		krb5_address **,
2122*505d05c7Sgtb 		krb5_address **);
2123*505d05c7Sgtb 
2124*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_auth_con_setports
2125*505d05c7Sgtb 	(krb5_context,
2126*505d05c7Sgtb 		krb5_auth_context,
2127*505d05c7Sgtb 		krb5_address *,
2128*505d05c7Sgtb 		krb5_address *);
21297c478bd9Sstevel@tonic-gate 
21307c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_setuseruserkey
2131*505d05c7Sgtb 	(krb5_context,
21327c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2133*505d05c7Sgtb 		krb5_keyblock *);
21347c478bd9Sstevel@tonic-gate 
21357c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getkey
2136*505d05c7Sgtb 	(krb5_context,
21377c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2138*505d05c7Sgtb 		krb5_keyblock **);
21397c478bd9Sstevel@tonic-gate 
21407c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getsendsubkey(
21417c478bd9Sstevel@tonic-gate     krb5_context, krb5_auth_context, krb5_keyblock **);
21427c478bd9Sstevel@tonic-gate 
21437c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getrecvsubkey(
21447c478bd9Sstevel@tonic-gate     krb5_context, krb5_auth_context, krb5_keyblock **);
21457c478bd9Sstevel@tonic-gate 
21467c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_setsendsubkey(
21477c478bd9Sstevel@tonic-gate     krb5_context, krb5_auth_context, krb5_keyblock *);
21487c478bd9Sstevel@tonic-gate 
21497c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_setrecvsubkey(
21507c478bd9Sstevel@tonic-gate     krb5_context, krb5_auth_context, krb5_keyblock *);
21517c478bd9Sstevel@tonic-gate 
2152*505d05c7Sgtb #if KRB5_DEPRECATED
21537c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getlocalsubkey
2154*505d05c7Sgtb 	(krb5_context,
21557c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2156*505d05c7Sgtb 		krb5_keyblock **);
21577c478bd9Sstevel@tonic-gate 
2158*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_auth_con_getremotesubkey
2159*505d05c7Sgtb 	(krb5_context,
2160*505d05c7Sgtb 		krb5_auth_context,
2161*505d05c7Sgtb 		krb5_keyblock **);
2162*505d05c7Sgtb #endif
2163*505d05c7Sgtb 
2164*505d05c7Sgtb #if KRB5_PRIVATE
21657c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_set_req_cksumtype
2166*505d05c7Sgtb 	(krb5_context,
21677c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2168*505d05c7Sgtb 		krb5_cksumtype);
21697c478bd9Sstevel@tonic-gate 
21707c478bd9Sstevel@tonic-gate krb5_error_code krb5_auth_con_set_safe_cksumtype
2171*505d05c7Sgtb 	(krb5_context,
2172*505d05c7Sgtb 		krb5_auth_context,
2173*505d05c7Sgtb 		krb5_cksumtype);
2174*505d05c7Sgtb #endif
21757c478bd9Sstevel@tonic-gate 
21767c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getlocalseqnumber
2177*505d05c7Sgtb 	(krb5_context,
21787c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2179*505d05c7Sgtb 		krb5_int32 *);
21807c478bd9Sstevel@tonic-gate 
21817c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_getremoteseqnumber
2182*505d05c7Sgtb 	(krb5_context,
21837c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2184*505d05c7Sgtb 		krb5_int32 *);
21857c478bd9Sstevel@tonic-gate 
2186*505d05c7Sgtb #if KRB5_DEPRECATED
2187*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_auth_con_initivector
2188*505d05c7Sgtb 	(krb5_context,
2189*505d05c7Sgtb 		krb5_auth_context);
2190*505d05c7Sgtb #endif
21917c478bd9Sstevel@tonic-gate 
2192*505d05c7Sgtb #if KRB5_PRIVATE
21937c478bd9Sstevel@tonic-gate krb5_error_code krb5_auth_con_setivector
2194*505d05c7Sgtb 	(krb5_context,
2195*505d05c7Sgtb 		krb5_auth_context,
2196*505d05c7Sgtb 		krb5_pointer);
21977c478bd9Sstevel@tonic-gate 
21987c478bd9Sstevel@tonic-gate krb5_error_code krb5_auth_con_getivector
2199*505d05c7Sgtb 	(krb5_context,
2200*505d05c7Sgtb 		krb5_auth_context,
2201*505d05c7Sgtb 		krb5_pointer *);
2202*505d05c7Sgtb #endif
22037c478bd9Sstevel@tonic-gate 
22047c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_setrcache
2205*505d05c7Sgtb 	(krb5_context,
22067c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2207*505d05c7Sgtb 		krb5_rcache);
22087c478bd9Sstevel@tonic-gate 
2209*505d05c7Sgtb krb5_error_code KRB5_CALLCONV_WRONG krb5_auth_con_getrcache
2210*505d05c7Sgtb 	(krb5_context,
22117c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2212*505d05c7Sgtb 		krb5_rcache *);
22137c478bd9Sstevel@tonic-gate 
2214*505d05c7Sgtb #if KRB5_PRIVATE
2215*505d05c7Sgtb krb5_error_code krb5_auth_con_setpermetypes
2216*505d05c7Sgtb 	(krb5_context,
2217*505d05c7Sgtb 	    krb5_auth_context,
2218*505d05c7Sgtb 	    const krb5_enctype *);
2219*505d05c7Sgtb 
2220*505d05c7Sgtb krb5_error_code krb5_auth_con_getpermetypes
2221*505d05c7Sgtb 	(krb5_context,
2222*505d05c7Sgtb 	    krb5_auth_context,
2223*505d05c7Sgtb 	    krb5_enctype **);
2224*505d05c7Sgtb #endif
2225*505d05c7Sgtb 
2226*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_auth_con_getauthenticator
2227*505d05c7Sgtb 	(krb5_context,
22287c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2229*505d05c7Sgtb 		krb5_authenticator **);
22307c478bd9Sstevel@tonic-gate 
22317c478bd9Sstevel@tonic-gate #define KRB5_REALM_BRANCH_CHAR '.'
22327c478bd9Sstevel@tonic-gate 
22337c478bd9Sstevel@tonic-gate /*
22347c478bd9Sstevel@tonic-gate  * end "func-proto.h"
22357c478bd9Sstevel@tonic-gate  */
22367c478bd9Sstevel@tonic-gate 
22377c478bd9Sstevel@tonic-gate /*
22387c478bd9Sstevel@tonic-gate  * begin stuff from libos.h
22397c478bd9Sstevel@tonic-gate  */
22407c478bd9Sstevel@tonic-gate 
2241*505d05c7Sgtb 
2242*505d05c7Sgtb #if KRB5_PRIVATE
2243*505d05c7Sgtb krb5_error_code krb5_read_message (krb5_context, krb5_pointer, krb5_data *);
2244*505d05c7Sgtb krb5_error_code krb5_write_message (krb5_context, krb5_pointer, krb5_data *);
2245*505d05c7Sgtb int krb5_net_read (krb5_context, int , char *, int);
2246*505d05c7Sgtb int krb5_net_write (krb5_context, int , const char *, int);
2247*505d05c7Sgtb #endif
2248*505d05c7Sgtb 
22497c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_read_password
2250*505d05c7Sgtb 	(krb5_context,
22517c478bd9Sstevel@tonic-gate 		const char *,
22527c478bd9Sstevel@tonic-gate 		const char *,
22537c478bd9Sstevel@tonic-gate 		char *,
2254*505d05c7Sgtb 		unsigned int * );
2255*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_aname_to_localname
2256*505d05c7Sgtb 	(krb5_context,
22577c478bd9Sstevel@tonic-gate 		krb5_const_principal,
2258*505d05c7Sgtb 		int,
2259*505d05c7Sgtb 		char * );
22607c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_host_realm
2261*505d05c7Sgtb 	(krb5_context,
22627c478bd9Sstevel@tonic-gate 		const char *,
2263*505d05c7Sgtb 		char *** );
22647c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_free_host_realm
2265*505d05c7Sgtb 	(krb5_context,
2266*505d05c7Sgtb 		char * const * );
2267*505d05c7Sgtb #if KRB5_PRIVATE
22687c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_get_realm_domain
2269*505d05c7Sgtb 	(krb5_context,
22707c478bd9Sstevel@tonic-gate 		const char *,
2271*505d05c7Sgtb 		char ** );
2272*505d05c7Sgtb #endif
2273*505d05c7Sgtb krb5_boolean KRB5_CALLCONV krb5_kuserok
2274*505d05c7Sgtb 	(krb5_context,
2275*505d05c7Sgtb 		krb5_principal, const char *);
22767c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_auth_con_genaddrs
2277*505d05c7Sgtb 	(krb5_context,
22787c478bd9Sstevel@tonic-gate 		krb5_auth_context,
2279*505d05c7Sgtb 		int, int);
2280*505d05c7Sgtb #if KRB5_PRIVATE
22817c478bd9Sstevel@tonic-gate krb5_error_code krb5_gen_portaddr
2282*505d05c7Sgtb 	(krb5_context,
22837c478bd9Sstevel@tonic-gate 		const krb5_address *,
22847c478bd9Sstevel@tonic-gate 		krb5_const_pointer,
2285*505d05c7Sgtb 		krb5_address **);
2286*505d05c7Sgtb krb5_error_code krb5_gen_replay_name
2287*505d05c7Sgtb 	(krb5_context,
2288*505d05c7Sgtb 		const krb5_address *,
2289*505d05c7Sgtb 		const char *,
2290*505d05c7Sgtb 		char **);
22917c478bd9Sstevel@tonic-gate krb5_error_code krb5_make_fulladdr
2292*505d05c7Sgtb 	(krb5_context,
22937c478bd9Sstevel@tonic-gate 		krb5_address *,
22947c478bd9Sstevel@tonic-gate 		krb5_address *,
2295*505d05c7Sgtb 		krb5_address *);
2296*505d05c7Sgtb #endif
22977c478bd9Sstevel@tonic-gate 
2298*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_set_real_time
2299*505d05c7Sgtb 	(krb5_context, krb5_int32, krb5_int32);
23007c478bd9Sstevel@tonic-gate 
2301*505d05c7Sgtb #if KRB5_PRIVATE
23027c478bd9Sstevel@tonic-gate krb5_error_code krb5_set_debugging_time
2303*505d05c7Sgtb 	(krb5_context, krb5_int32, krb5_int32);
23047c478bd9Sstevel@tonic-gate krb5_error_code krb5_use_natural_time
2305*505d05c7Sgtb 	(krb5_context);
2306*505d05c7Sgtb #endif
2307*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_get_time_offsets
2308*505d05c7Sgtb 	(krb5_context, krb5_int32 *, krb5_int32 *);
2309*505d05c7Sgtb #if KRB5_PRIVATE
23107c478bd9Sstevel@tonic-gate krb5_error_code krb5_set_time_offsets
2311*505d05c7Sgtb 	(krb5_context, krb5_int32, krb5_int32);
2312*505d05c7Sgtb #endif
23137c478bd9Sstevel@tonic-gate 
23147c478bd9Sstevel@tonic-gate /* str_conv.c */
23157c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_string_to_enctype
2316*505d05c7Sgtb 	(char *, krb5_enctype *);
23177c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_string_to_salttype
2318*505d05c7Sgtb 	(char *, krb5_int32 *);
23197c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_string_to_cksumtype
2320*505d05c7Sgtb 	(char *, krb5_cksumtype *);
23217c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_string_to_timestamp
2322*505d05c7Sgtb 	(char *, krb5_timestamp *);
23237c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_string_to_deltat
2324*505d05c7Sgtb 	(char *, krb5_deltat *);
23257c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_enctype_to_string
2326*505d05c7Sgtb 	(krb5_enctype, char *, size_t);
23277c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_salttype_to_string
2328*505d05c7Sgtb 	(krb5_int32, char *, size_t);
23297c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_cksumtype_to_string
2330*505d05c7Sgtb 	(krb5_cksumtype, char *, size_t);
23317c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_timestamp_to_string
2332*505d05c7Sgtb 	(krb5_timestamp, char *, size_t);
23337c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_timestamp_to_sfstring
2334*505d05c7Sgtb 	(krb5_timestamp, char *, size_t, char *);
23357c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_deltat_to_string
2336*505d05c7Sgtb 	(krb5_deltat, char *, size_t);
2337*505d05c7Sgtb 
23387c478bd9Sstevel@tonic-gate 
23397c478bd9Sstevel@tonic-gate /*
23407c478bd9Sstevel@tonic-gate  * end stuff from libos.h
23417c478bd9Sstevel@tonic-gate  */
23427c478bd9Sstevel@tonic-gate 
23437c478bd9Sstevel@tonic-gate /*
23447c478bd9Sstevel@tonic-gate  * begin "k5-free.h"
23457c478bd9Sstevel@tonic-gate  */
23467c478bd9Sstevel@tonic-gate 
23477c478bd9Sstevel@tonic-gate /* to keep lint happy */
23487c478bd9Sstevel@tonic-gate #ifdef _KERNEL
23497c478bd9Sstevel@tonic-gate #define krb5_xfree_wrap(val,n) kmem_free((char *)(val),n)
23507c478bd9Sstevel@tonic-gate #else
23517c478bd9Sstevel@tonic-gate #define krb5_xfree_wrap(val,n) free((char *)(val))
23527c478bd9Sstevel@tonic-gate #define krb5_xfree(val) free((char *)(val))
23537c478bd9Sstevel@tonic-gate #endif
23547c478bd9Sstevel@tonic-gate 
23557c478bd9Sstevel@tonic-gate /*
23567c478bd9Sstevel@tonic-gate  * end "k5-free.h"
23577c478bd9Sstevel@tonic-gate  */
23587c478bd9Sstevel@tonic-gate 
23597c478bd9Sstevel@tonic-gate /* The name of the Kerberos ticket granting service... and its size */
23607c478bd9Sstevel@tonic-gate #define	KRB5_TGS_NAME		"krbtgt"
23617c478bd9Sstevel@tonic-gate #define KRB5_TGS_NAME_SIZE	6
23627c478bd9Sstevel@tonic-gate 
23637c478bd9Sstevel@tonic-gate /* flags for recvauth */
23647c478bd9Sstevel@tonic-gate #define KRB5_RECVAUTH_SKIP_VERSION	0x0001
23657c478bd9Sstevel@tonic-gate #define KRB5_RECVAUTH_BADAUTHVERS	0x0002
23667c478bd9Sstevel@tonic-gate 
23677c478bd9Sstevel@tonic-gate /* initial ticket api functions */
23687c478bd9Sstevel@tonic-gate 
23697c478bd9Sstevel@tonic-gate typedef struct _krb5_prompt {
23707c478bd9Sstevel@tonic-gate     char *prompt;
23717c478bd9Sstevel@tonic-gate     int hidden;
23727c478bd9Sstevel@tonic-gate     krb5_data *reply;
23737c478bd9Sstevel@tonic-gate } krb5_prompt;
23747c478bd9Sstevel@tonic-gate 
23757c478bd9Sstevel@tonic-gate typedef krb5_error_code (KRB5_CALLCONV *krb5_prompter_fct)(krb5_context context,
23767c478bd9Sstevel@tonic-gate 					     void *data,
23777c478bd9Sstevel@tonic-gate 					     const char *name,
23787c478bd9Sstevel@tonic-gate 					     const char *banner,
23797c478bd9Sstevel@tonic-gate 					     int num_prompts,
23807c478bd9Sstevel@tonic-gate 					     krb5_prompt prompts[]);
23817c478bd9Sstevel@tonic-gate 
23827c478bd9Sstevel@tonic-gate 
23837c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
23847c478bd9Sstevel@tonic-gate krb5_prompter_posix
2385*505d05c7Sgtb     (krb5_context context,
23867c478bd9Sstevel@tonic-gate 		void *data,
23877c478bd9Sstevel@tonic-gate 		const char *name,
23887c478bd9Sstevel@tonic-gate 		const char *banner,
23897c478bd9Sstevel@tonic-gate 		int num_prompts,
2390*505d05c7Sgtb 		krb5_prompt prompts[]);
23917c478bd9Sstevel@tonic-gate 
23927c478bd9Sstevel@tonic-gate typedef struct _krb5_get_init_creds_opt {
23937c478bd9Sstevel@tonic-gate     krb5_flags flags;
23947c478bd9Sstevel@tonic-gate     krb5_deltat tkt_life;
23957c478bd9Sstevel@tonic-gate     krb5_deltat renew_life;
23967c478bd9Sstevel@tonic-gate     int forwardable;
23977c478bd9Sstevel@tonic-gate     int proxiable;
23987c478bd9Sstevel@tonic-gate     krb5_enctype *etype_list;
23997c478bd9Sstevel@tonic-gate     int etype_list_length;
24007c478bd9Sstevel@tonic-gate     krb5_address **address_list;
24017c478bd9Sstevel@tonic-gate     krb5_preauthtype *preauth_list;
24027c478bd9Sstevel@tonic-gate     int preauth_list_length;
24037c478bd9Sstevel@tonic-gate     krb5_data *salt;
24047c478bd9Sstevel@tonic-gate } krb5_get_init_creds_opt;
24057c478bd9Sstevel@tonic-gate 
24067c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_TKT_LIFE	0x0001
24077c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_RENEW_LIFE	0x0002
24087c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_FORWARDABLE	0x0004
24097c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_PROXIABLE	0x0008
24107c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_ETYPE_LIST	0x0010
24117c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_ADDRESS_LIST	0x0020
24127c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_PREAUTH_LIST	0x0040
24137c478bd9Sstevel@tonic-gate #define KRB5_GET_INIT_CREDS_OPT_SALT		0x0080
24147c478bd9Sstevel@tonic-gate 
24157c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
24167c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_init
2417*505d05c7Sgtb (krb5_get_init_creds_opt *opt);
24187c478bd9Sstevel@tonic-gate 
24197c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
24207c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_tkt_life
2421*505d05c7Sgtb (krb5_get_init_creds_opt *opt,
2422*505d05c7Sgtb 		krb5_deltat tkt_life);
24237c478bd9Sstevel@tonic-gate 
24247c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
24257c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_renew_life
2426*505d05c7Sgtb (krb5_get_init_creds_opt *opt,
2427*505d05c7Sgtb 		krb5_deltat renew_life);
24287c478bd9Sstevel@tonic-gate 
24297c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
24307c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_forwardable
2431*505d05c7Sgtb (krb5_get_init_creds_opt *opt,
2432*505d05c7Sgtb 		int forwardable);
24337c478bd9Sstevel@tonic-gate 
24347c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
24357c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_proxiable
2436*505d05c7Sgtb (krb5_get_init_creds_opt *opt,
2437*505d05c7Sgtb 		int proxiable);
24387c478bd9Sstevel@tonic-gate 
24397c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
24407c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_etype_list
2441*505d05c7Sgtb (krb5_get_init_creds_opt *opt,
24427c478bd9Sstevel@tonic-gate 		krb5_enctype *etype_list,
2443*505d05c7Sgtb 		int etype_list_length);
24447c478bd9Sstevel@tonic-gate 
24457c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
24467c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_address_list
2447*505d05c7Sgtb (krb5_get_init_creds_opt *opt,
2448*505d05c7Sgtb 		krb5_address **addresses);
24497c478bd9Sstevel@tonic-gate 
24507c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
24517c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_preauth_list
2452*505d05c7Sgtb (krb5_get_init_creds_opt *opt,
24537c478bd9Sstevel@tonic-gate 		krb5_preauthtype *preauth_list,
2454*505d05c7Sgtb 		int preauth_list_length);
24557c478bd9Sstevel@tonic-gate 
24567c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
24577c478bd9Sstevel@tonic-gate krb5_get_init_creds_opt_set_salt
2458*505d05c7Sgtb (krb5_get_init_creds_opt *opt,
2459*505d05c7Sgtb 		krb5_data *salt);
2460*505d05c7Sgtb 
2461*505d05c7Sgtb 
24627c478bd9Sstevel@tonic-gate 
24637c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
24647c478bd9Sstevel@tonic-gate krb5_get_init_creds_password
2465*505d05c7Sgtb (krb5_context context,
24667c478bd9Sstevel@tonic-gate 		krb5_creds *creds,
24677c478bd9Sstevel@tonic-gate 		krb5_principal client,
24687c478bd9Sstevel@tonic-gate 		char *password,
24697c478bd9Sstevel@tonic-gate 		krb5_prompter_fct prompter,
24707c478bd9Sstevel@tonic-gate 		void *data,
24717c478bd9Sstevel@tonic-gate 		krb5_deltat start_time,
24727c478bd9Sstevel@tonic-gate 		char *in_tkt_service,
2473*505d05c7Sgtb 		krb5_get_init_creds_opt *k5_gic_options);
24747c478bd9Sstevel@tonic-gate 
24757c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
24767c478bd9Sstevel@tonic-gate krb5_get_init_creds_keytab
2477*505d05c7Sgtb (krb5_context context,
24787c478bd9Sstevel@tonic-gate 		krb5_creds *creds,
24797c478bd9Sstevel@tonic-gate 		krb5_principal client,
24807c478bd9Sstevel@tonic-gate 		krb5_keytab arg_keytab,
24817c478bd9Sstevel@tonic-gate 		krb5_deltat start_time,
24827c478bd9Sstevel@tonic-gate 		char *in_tkt_service,
2483*505d05c7Sgtb 		krb5_get_init_creds_opt *k5_gic_options);
24847c478bd9Sstevel@tonic-gate 
24857c478bd9Sstevel@tonic-gate typedef struct _krb5_verify_init_creds_opt {
24867c478bd9Sstevel@tonic-gate     krb5_flags flags;
24877c478bd9Sstevel@tonic-gate     int ap_req_nofail;
24887c478bd9Sstevel@tonic-gate } krb5_verify_init_creds_opt;
24897c478bd9Sstevel@tonic-gate 
2490*505d05c7Sgtb #define KRB5_VERIFY_INIT_CREDS_OPT_AP_REQ_NOFAIL	0x0001
24917c478bd9Sstevel@tonic-gate 
24927c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
24937c478bd9Sstevel@tonic-gate krb5_verify_init_creds_opt_init
2494*505d05c7Sgtb (krb5_verify_init_creds_opt *k5_vic_options);
24957c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
24967c478bd9Sstevel@tonic-gate krb5_verify_init_creds_opt_set_ap_req_nofail
2497*505d05c7Sgtb (krb5_verify_init_creds_opt *k5_vic_options,
2498*505d05c7Sgtb 		int ap_req_nofail);
24997c478bd9Sstevel@tonic-gate 
25007c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
25017c478bd9Sstevel@tonic-gate krb5_verify_init_creds
2502*505d05c7Sgtb (krb5_context context,
25037c478bd9Sstevel@tonic-gate 		krb5_creds *creds,
25047c478bd9Sstevel@tonic-gate 		krb5_principal ap_req_server,
25057c478bd9Sstevel@tonic-gate 		krb5_keytab ap_req_keytab,
25067c478bd9Sstevel@tonic-gate 		krb5_ccache *ccache,
2507*505d05c7Sgtb 		krb5_verify_init_creds_opt *k5_vic_options);
25087c478bd9Sstevel@tonic-gate 
25097c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
25107c478bd9Sstevel@tonic-gate krb5_get_validated_creds
2511*505d05c7Sgtb (krb5_context context,
25127c478bd9Sstevel@tonic-gate 		krb5_creds *creds,
25137c478bd9Sstevel@tonic-gate 		krb5_principal client,
25147c478bd9Sstevel@tonic-gate 		krb5_ccache ccache,
2515*505d05c7Sgtb 		char *in_tkt_service);
25167c478bd9Sstevel@tonic-gate 
25177c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
25187c478bd9Sstevel@tonic-gate krb5_get_renewed_creds
2519*505d05c7Sgtb (krb5_context context,
25207c478bd9Sstevel@tonic-gate 		krb5_creds *creds,
25217c478bd9Sstevel@tonic-gate 		krb5_principal client,
25227c478bd9Sstevel@tonic-gate 		krb5_ccache ccache,
2523*505d05c7Sgtb 		char *in_tkt_service);
25247c478bd9Sstevel@tonic-gate 
25257c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV
25267c478bd9Sstevel@tonic-gate krb5_decode_ticket
2527*505d05c7Sgtb (const krb5_data *code,
2528*505d05c7Sgtb 		krb5_ticket **rep);
25297c478bd9Sstevel@tonic-gate 
25307c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
25317c478bd9Sstevel@tonic-gate krb5_appdefault_string
2532*505d05c7Sgtb (krb5_context context,
2533*505d05c7Sgtb 		const char *appname,
2534*505d05c7Sgtb 	        const krb5_data *realm,
2535*505d05c7Sgtb  		const char *option,
25367c478bd9Sstevel@tonic-gate 		const char *default_value,
2537*505d05c7Sgtb 		char ** ret_value);
25387c478bd9Sstevel@tonic-gate 
25397c478bd9Sstevel@tonic-gate void KRB5_CALLCONV
25407c478bd9Sstevel@tonic-gate krb5_appdefault_boolean
2541*505d05c7Sgtb (krb5_context context,
2542*505d05c7Sgtb 		const char *appname,
2543*505d05c7Sgtb 	        const krb5_data *realm,
2544*505d05c7Sgtb  		const char *option,
25457c478bd9Sstevel@tonic-gate 		int default_value,
2546*505d05c7Sgtb 		int *ret_value);
25477c478bd9Sstevel@tonic-gate 
2548*505d05c7Sgtb #if KRB5_PRIVATE
25497c478bd9Sstevel@tonic-gate /*
25507c478bd9Sstevel@tonic-gate  * The realm iterator functions
25517c478bd9Sstevel@tonic-gate  */
25527c478bd9Sstevel@tonic-gate 
25537c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_realm_iterator_create
2554*505d05c7Sgtb 	(krb5_context context, void **iter_p);
25557c478bd9Sstevel@tonic-gate 
25567c478bd9Sstevel@tonic-gate krb5_error_code KRB5_CALLCONV krb5_realm_iterator
2557*505d05c7Sgtb 	(krb5_context context, void **iter_p, char **ret_realm);
25587c478bd9Sstevel@tonic-gate 
25597c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_realm_iterator_free
2560*505d05c7Sgtb 	(krb5_context context, void **iter_p);
25617c478bd9Sstevel@tonic-gate 
25627c478bd9Sstevel@tonic-gate void KRB5_CALLCONV krb5_free_realm_string
2563*505d05c7Sgtb 	(krb5_context context, char *str);
2564*505d05c7Sgtb #endif
2565*505d05c7Sgtb 
2566*505d05c7Sgtb /*
2567*505d05c7Sgtb  * The realm iterator functions
2568*505d05c7Sgtb  */
2569*505d05c7Sgtb 
2570*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_realm_iterator_create
2571*505d05c7Sgtb 	(krb5_context context, void **iter_p);
2572*505d05c7Sgtb 
2573*505d05c7Sgtb krb5_error_code KRB5_CALLCONV krb5_realm_iterator
2574*505d05c7Sgtb 	(krb5_context context, void **iter_p, char **ret_realm);
2575*505d05c7Sgtb 
2576*505d05c7Sgtb void KRB5_CALLCONV krb5_realm_iterator_free
2577*505d05c7Sgtb 	(krb5_context context, void **iter_p);
2578*505d05c7Sgtb 
2579*505d05c7Sgtb void KRB5_CALLCONV krb5_free_realm_string
2580*505d05c7Sgtb 	(krb5_context context, char *str);
25817c478bd9Sstevel@tonic-gate 
25827c478bd9Sstevel@tonic-gate /*
25837c478bd9Sstevel@tonic-gate  * Prompter enhancements
25847c478bd9Sstevel@tonic-gate  */
25857c478bd9Sstevel@tonic-gate 
25867c478bd9Sstevel@tonic-gate #define KRB5_PROMPT_TYPE_PASSWORD		0x1
25877c478bd9Sstevel@tonic-gate #define KRB5_PROMPT_TYPE_NEW_PASSWORD		0x2
25887c478bd9Sstevel@tonic-gate #define KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN	0x3
25897c478bd9Sstevel@tonic-gate #define KRB5_PROMPT_TYPE_PREAUTH		0x4
25907c478bd9Sstevel@tonic-gate 
25917c478bd9Sstevel@tonic-gate typedef krb5_int32 krb5_prompt_type;
25927c478bd9Sstevel@tonic-gate 
25937c478bd9Sstevel@tonic-gate krb5_prompt_type* KRB5_CALLCONV krb5_get_prompt_types
25947c478bd9Sstevel@tonic-gate 	(krb5_context context);
25957c478bd9Sstevel@tonic-gate 
2596*505d05c7Sgtb #if TARGET_OS_MAC
2597*505d05c7Sgtb #    pragma options align=reset
2598*505d05c7Sgtb #endif /* KRB5INT_END_DECLS */
2599*505d05c7Sgtb 
2600*505d05c7Sgtb /* Don't use this!  We're going to phase it out.  It's just here to keep
2601*505d05c7Sgtb    applications from breaking right away.  */
2602*505d05c7Sgtb #define krb5_const const
2603*505d05c7Sgtb 
26047c478bd9Sstevel@tonic-gate #endif /* KRB5_GENERAL__ */
26057c478bd9Sstevel@tonic-gate 
26067c478bd9Sstevel@tonic-gate 
26077c478bd9Sstevel@tonic-gate /*
26087c478bd9Sstevel@tonic-gate  * krb5_err.h:
26097c478bd9Sstevel@tonic-gate  * This file is automatically generated; please do not edit it.
26107c478bd9Sstevel@tonic-gate  */
26117c478bd9Sstevel@tonic-gate 
26127c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_NONE                         (-1765328384L)
26137c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_NAME_EXP                     (-1765328383L)
26147c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_SERVICE_EXP                  (-1765328382L)
26157c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_BAD_PVNO                     (-1765328381L)
26167c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_C_OLD_MAST_KVNO              (-1765328380L)
26177c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_S_OLD_MAST_KVNO              (-1765328379L)
26187c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN          (-1765328378L)
26197c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN          (-1765328377L)
26207c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_PRINCIPAL_NOT_UNIQUE         (-1765328376L)
26217c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_NULL_KEY                     (-1765328375L)
26227c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_CANNOT_POSTDATE              (-1765328374L)
26237c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_NEVER_VALID                  (-1765328373L)
26247c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_POLICY                       (-1765328372L)
26257c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_BADOPTION                    (-1765328371L)
26267c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_ETYPE_NOSUPP                 (-1765328370L)
26277c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_SUMTYPE_NOSUPP               (-1765328369L)
26287c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_PADATA_TYPE_NOSUPP           (-1765328368L)
26297c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_TRTYPE_NOSUPP                (-1765328367L)
26307c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_CLIENT_REVOKED               (-1765328366L)
26317c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_SERVICE_REVOKED              (-1765328365L)
26327c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_TGT_REVOKED                  (-1765328364L)
26337c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_CLIENT_NOTYET                (-1765328363L)
26347c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_SERVICE_NOTYET               (-1765328362L)
26357c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_KEY_EXP                      (-1765328361L)
26367c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_PREAUTH_FAILED               (-1765328360L)
26377c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_PREAUTH_REQUIRED             (-1765328359L)
26387c478bd9Sstevel@tonic-gate #define KRB5KDC_ERR_SERVER_NOMATCH               (-1765328358L)
26397c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_27                         (-1765328357L)
26407c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_28                         (-1765328356L)
26417c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_29                         (-1765328355L)
26427c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_30                         (-1765328354L)
26437c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BAD_INTEGRITY             (-1765328353L)
26447c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_TKT_EXPIRED               (-1765328352L)
26457c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_TKT_NYV                   (-1765328351L)
26467c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_REPEAT                    (-1765328350L)
26477c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_NOT_US                    (-1765328349L)
26487c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BADMATCH                  (-1765328348L)
26497c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_SKEW                      (-1765328347L)
26507c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BADADDR                   (-1765328346L)
26517c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BADVERSION                (-1765328345L)
26527c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_MSG_TYPE                  (-1765328344L)
26537c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_MODIFIED                  (-1765328343L)
26547c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BADORDER                  (-1765328342L)
26557c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_ILL_CR_TKT                (-1765328341L)
26567c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BADKEYVER                 (-1765328340L)
26577c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_NOKEY                     (-1765328339L)
26587c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_MUT_FAIL                  (-1765328338L)
26597c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BADDIRECTION              (-1765328337L)
26607c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_METHOD                    (-1765328336L)
26617c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_BADSEQ                    (-1765328335L)
26627c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_INAPP_CKSUM               (-1765328334L)
26637c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_51                         (-1765328333L)
26647c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_52                         (-1765328332L)
26657c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_53                         (-1765328331L)
26667c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_54                         (-1765328330L)
26677c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_55                         (-1765328329L)
26687c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_56                         (-1765328328L)
26697c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_57                         (-1765328327L)
26707c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_58                         (-1765328326L)
26717c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_59                         (-1765328325L)
26727c478bd9Sstevel@tonic-gate #define KRB5KRB_ERR_GENERIC                      (-1765328324L)
26737c478bd9Sstevel@tonic-gate #define KRB5KRB_ERR_FIELD_TOOLONG                (-1765328323L)
26747c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_62                         (-1765328322L)
26757c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_63                         (-1765328321L)
26767c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_64                         (-1765328320L)
26777c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_65                         (-1765328319L)
26787c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_66                         (-1765328318L)
26797c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_67                         (-1765328317L)
26807c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_68                         (-1765328316L)
26817c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_69                         (-1765328315L)
26827c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_70                         (-1765328314L)
26837c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_71                         (-1765328313L)
26847c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_72                         (-1765328312L)
26857c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_73                         (-1765328311L)
26867c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_74                         (-1765328310L)
26877c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_75                         (-1765328309L)
26887c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_76                         (-1765328308L)
26897c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_77                         (-1765328307L)
26907c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_78                         (-1765328306L)
26917c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_79                         (-1765328305L)
26927c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_80                         (-1765328304L)
26937c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_81                         (-1765328303L)
26947c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_82                         (-1765328302L)
26957c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_83                         (-1765328301L)
26967c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_84                         (-1765328300L)
26977c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_85                         (-1765328299L)
26987c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_86                         (-1765328298L)
26997c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_87                         (-1765328297L)
27007c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_88                         (-1765328296L)
27017c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_89                         (-1765328295L)
27027c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_90                         (-1765328294L)
27037c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_91                         (-1765328293L)
27047c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_92                         (-1765328292L)
27057c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_93                         (-1765328291L)
27067c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_94                         (-1765328290L)
27077c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_95                         (-1765328289L)
27087c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_96                         (-1765328288L)
27097c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_97                         (-1765328287L)
27107c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_98                         (-1765328286L)
27117c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_99                         (-1765328285L)
27127c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_100                        (-1765328284L)
27137c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_101                        (-1765328283L)
27147c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_102                        (-1765328282L)
27157c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_103                        (-1765328281L)
27167c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_104                        (-1765328280L)
27177c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_105                        (-1765328279L)
27187c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_106                        (-1765328278L)
27197c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_107                        (-1765328277L)
27207c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_108                        (-1765328276L)
27217c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_109                        (-1765328275L)
27227c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_110                        (-1765328274L)
27237c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_111                        (-1765328273L)
27247c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_112                        (-1765328272L)
27257c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_113                        (-1765328271L)
27267c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_114                        (-1765328270L)
27277c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_115                        (-1765328269L)
27287c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_116                        (-1765328268L)
27297c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_117                        (-1765328267L)
27307c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_118                        (-1765328266L)
27317c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_119                        (-1765328265L)
27327c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_120                        (-1765328264L)
27337c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_121                        (-1765328263L)
27347c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_122                        (-1765328262L)
27357c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_123                        (-1765328261L)
27367c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_124                        (-1765328260L)
27377c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_125                        (-1765328259L)
27387c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_126                        (-1765328258L)
27397c478bd9Sstevel@tonic-gate #define KRB5PLACEHOLD_127                        (-1765328257L)
27407c478bd9Sstevel@tonic-gate #define KRB5_ERR_RCSID                           (-1765328256L)
27417c478bd9Sstevel@tonic-gate #define KRB5_LIBOS_BADLOCKFLAG                   (-1765328255L)
27427c478bd9Sstevel@tonic-gate #define KRB5_LIBOS_CANTREADPWD                   (-1765328254L)
27437c478bd9Sstevel@tonic-gate #define KRB5_LIBOS_BADPWDMATCH                   (-1765328253L)
27447c478bd9Sstevel@tonic-gate #define KRB5_LIBOS_PWDINTR                       (-1765328252L)
27457c478bd9Sstevel@tonic-gate #define KRB5_PARSE_ILLCHAR                       (-1765328251L)
27467c478bd9Sstevel@tonic-gate #define KRB5_PARSE_MALFORMED                     (-1765328250L)
27477c478bd9Sstevel@tonic-gate #define KRB5_CONFIG_CANTOPEN                     (-1765328249L)
27487c478bd9Sstevel@tonic-gate #define KRB5_CONFIG_BADFORMAT                    (-1765328248L)
27497c478bd9Sstevel@tonic-gate #define KRB5_CONFIG_NOTENUFSPACE                 (-1765328247L)
27507c478bd9Sstevel@tonic-gate #define KRB5_BADMSGTYPE                          (-1765328246L)
27517c478bd9Sstevel@tonic-gate #define KRB5_CC_BADNAME                          (-1765328245L)
27527c478bd9Sstevel@tonic-gate #define KRB5_CC_UNKNOWN_TYPE                     (-1765328244L)
27537c478bd9Sstevel@tonic-gate #define KRB5_CC_NOTFOUND                         (-1765328243L)
27547c478bd9Sstevel@tonic-gate #define KRB5_CC_END                              (-1765328242L)
27557c478bd9Sstevel@tonic-gate #define KRB5_NO_TKT_SUPPLIED                     (-1765328241L)
27567c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_WRONG_PRINC                   (-1765328240L)
27577c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_TKT_INVALID               (-1765328239L)
27587c478bd9Sstevel@tonic-gate #define KRB5_PRINC_NOMATCH                       (-1765328238L)
27597c478bd9Sstevel@tonic-gate #define KRB5_KDCREP_MODIFIED                     (-1765328237L)
27607c478bd9Sstevel@tonic-gate #define KRB5_KDCREP_SKEW                         (-1765328236L)
27617c478bd9Sstevel@tonic-gate #define KRB5_IN_TKT_REALM_MISMATCH               (-1765328235L)
27627c478bd9Sstevel@tonic-gate #define KRB5_PROG_ETYPE_NOSUPP                   (-1765328234L)
27637c478bd9Sstevel@tonic-gate #define KRB5_PROG_KEYTYPE_NOSUPP                 (-1765328233L)
27647c478bd9Sstevel@tonic-gate #define KRB5_WRONG_ETYPE                         (-1765328232L)
27657c478bd9Sstevel@tonic-gate #define KRB5_PROG_SUMTYPE_NOSUPP                 (-1765328231L)
27667c478bd9Sstevel@tonic-gate #define KRB5_REALM_UNKNOWN                       (-1765328230L)
27677c478bd9Sstevel@tonic-gate #define KRB5_SERVICE_UNKNOWN                     (-1765328229L)
27687c478bd9Sstevel@tonic-gate #define KRB5_KDC_UNREACH                         (-1765328228L)
27697c478bd9Sstevel@tonic-gate #define KRB5_NO_LOCALNAME                        (-1765328227L)
27707c478bd9Sstevel@tonic-gate #define KRB5_MUTUAL_FAILED                       (-1765328226L)
27717c478bd9Sstevel@tonic-gate #define KRB5_RC_TYPE_EXISTS                      (-1765328225L)
27727c478bd9Sstevel@tonic-gate #define KRB5_RC_MALLOC                           (-1765328224L)
27737c478bd9Sstevel@tonic-gate #define KRB5_RC_TYPE_NOTFOUND                    (-1765328223L)
27747c478bd9Sstevel@tonic-gate #define KRB5_RC_UNKNOWN                          (-1765328222L)
27757c478bd9Sstevel@tonic-gate #define KRB5_RC_REPLAY                           (-1765328221L)
27767c478bd9Sstevel@tonic-gate #define KRB5_RC_IO                               (-1765328220L)
27777c478bd9Sstevel@tonic-gate #define KRB5_RC_NOIO                             (-1765328219L)
27787c478bd9Sstevel@tonic-gate #define KRB5_RC_PARSE                            (-1765328218L)
27797c478bd9Sstevel@tonic-gate #define KRB5_RC_IO_EOF                           (-1765328217L)
27807c478bd9Sstevel@tonic-gate #define KRB5_RC_IO_MALLOC                        (-1765328216L)
27817c478bd9Sstevel@tonic-gate #define KRB5_RC_IO_PERM                          (-1765328215L)
27827c478bd9Sstevel@tonic-gate #define KRB5_RC_IO_IO                            (-1765328214L)
27837c478bd9Sstevel@tonic-gate #define KRB5_RC_IO_UNKNOWN                       (-1765328213L)
27847c478bd9Sstevel@tonic-gate #define KRB5_RC_IO_SPACE                         (-1765328212L)
27857c478bd9Sstevel@tonic-gate #define KRB5_TRANS_CANTOPEN                      (-1765328211L)
27867c478bd9Sstevel@tonic-gate #define KRB5_TRANS_BADFORMAT                     (-1765328210L)
27877c478bd9Sstevel@tonic-gate #define KRB5_LNAME_CANTOPEN                      (-1765328209L)
27887c478bd9Sstevel@tonic-gate #define KRB5_LNAME_NOTRANS                       (-1765328208L)
27897c478bd9Sstevel@tonic-gate #define KRB5_LNAME_BADFORMAT                     (-1765328207L)
27907c478bd9Sstevel@tonic-gate #define KRB5_CRYPTO_INTERNAL                     (-1765328206L)
27917c478bd9Sstevel@tonic-gate #define KRB5_KT_BADNAME                          (-1765328205L)
27927c478bd9Sstevel@tonic-gate #define KRB5_KT_UNKNOWN_TYPE                     (-1765328204L)
27937c478bd9Sstevel@tonic-gate #define KRB5_KT_NOTFOUND                         (-1765328203L)
27947c478bd9Sstevel@tonic-gate #define KRB5_KT_END                              (-1765328202L)
27957c478bd9Sstevel@tonic-gate #define KRB5_KT_NOWRITE                          (-1765328201L)
27967c478bd9Sstevel@tonic-gate #define KRB5_KT_IOERR                            (-1765328200L)
27977c478bd9Sstevel@tonic-gate #define KRB5_NO_TKT_IN_RLM                       (-1765328199L)
27987c478bd9Sstevel@tonic-gate #define KRB5DES_BAD_KEYPAR                       (-1765328198L)
27997c478bd9Sstevel@tonic-gate #define KRB5DES_WEAK_KEY                         (-1765328197L)
28007c478bd9Sstevel@tonic-gate #define KRB5_BAD_ENCTYPE                         (-1765328196L)
28017c478bd9Sstevel@tonic-gate #define KRB5_BAD_KEYSIZE                         (-1765328195L)
28027c478bd9Sstevel@tonic-gate #define KRB5_BAD_MSIZE                           (-1765328194L)
28037c478bd9Sstevel@tonic-gate #define KRB5_CC_TYPE_EXISTS                      (-1765328193L)
28047c478bd9Sstevel@tonic-gate #define KRB5_KT_TYPE_EXISTS                      (-1765328192L)
28057c478bd9Sstevel@tonic-gate #define KRB5_CC_IO                               (-1765328191L)
28067c478bd9Sstevel@tonic-gate #define KRB5_FCC_PERM                            (-1765328190L)
28077c478bd9Sstevel@tonic-gate #define KRB5_FCC_NOFILE                          (-1765328189L)
28087c478bd9Sstevel@tonic-gate #define KRB5_FCC_INTERNAL                        (-1765328188L)
28097c478bd9Sstevel@tonic-gate #define KRB5_CC_WRITE                            (-1765328187L)
28107c478bd9Sstevel@tonic-gate #define KRB5_CC_NOMEM                            (-1765328186L)
28117c478bd9Sstevel@tonic-gate #define KRB5_CC_FORMAT                           (-1765328185L)
28127c478bd9Sstevel@tonic-gate #define KRB5_CC_NOT_KTYPE                        (-1765328184L)
28137c478bd9Sstevel@tonic-gate #define KRB5_INVALID_FLAGS                       (-1765328183L)
28147c478bd9Sstevel@tonic-gate #define KRB5_NO_2ND_TKT                          (-1765328182L)
28157c478bd9Sstevel@tonic-gate #define KRB5_NOCREDS_SUPPLIED                    (-1765328181L)
28167c478bd9Sstevel@tonic-gate #define KRB5_SENDAUTH_BADAUTHVERS                (-1765328180L)
28177c478bd9Sstevel@tonic-gate #define KRB5_SENDAUTH_BADAPPLVERS                (-1765328179L)
28187c478bd9Sstevel@tonic-gate #define KRB5_SENDAUTH_BADRESPONSE                (-1765328178L)
28197c478bd9Sstevel@tonic-gate #define KRB5_SENDAUTH_REJECTED                   (-1765328177L)
28207c478bd9Sstevel@tonic-gate #define KRB5_PREAUTH_BAD_TYPE                    (-1765328176L)
28217c478bd9Sstevel@tonic-gate #define KRB5_PREAUTH_NO_KEY                      (-1765328175L)
28227c478bd9Sstevel@tonic-gate #define KRB5_PREAUTH_FAILED                      (-1765328174L)
28237c478bd9Sstevel@tonic-gate #define KRB5_RCACHE_BADVNO                       (-1765328173L)
28247c478bd9Sstevel@tonic-gate #define KRB5_CCACHE_BADVNO                       (-1765328172L)
28257c478bd9Sstevel@tonic-gate #define KRB5_KEYTAB_BADVNO                       (-1765328171L)
28267c478bd9Sstevel@tonic-gate #define KRB5_PROG_ATYPE_NOSUPP                   (-1765328170L)
28277c478bd9Sstevel@tonic-gate #define KRB5_RC_REQUIRED                         (-1765328169L)
28287c478bd9Sstevel@tonic-gate #define KRB5_ERR_BAD_HOSTNAME                    (-1765328168L)
28297c478bd9Sstevel@tonic-gate #define KRB5_ERR_HOST_REALM_UNKNOWN              (-1765328167L)
28307c478bd9Sstevel@tonic-gate #define KRB5_SNAME_UNSUPP_NAMETYPE               (-1765328166L)
28317c478bd9Sstevel@tonic-gate #define KRB5KRB_AP_ERR_V4_REPLY                  (-1765328165L)
28327c478bd9Sstevel@tonic-gate #define KRB5_REALM_CANT_RESOLVE                  (-1765328164L)
28337c478bd9Sstevel@tonic-gate #define KRB5_TKT_NOT_FORWARDABLE                 (-1765328163L)
28347c478bd9Sstevel@tonic-gate #define KRB5_FWD_BAD_PRINCIPAL                   (-1765328162L)
28357c478bd9Sstevel@tonic-gate #define KRB5_GET_IN_TKT_LOOP                     (-1765328161L)
28367c478bd9Sstevel@tonic-gate #define KRB5_CONFIG_NODEFREALM                   (-1765328160L)
28377c478bd9Sstevel@tonic-gate #define KRB5_SAM_UNSUPPORTED                     (-1765328159L)
28387c478bd9Sstevel@tonic-gate #define KRB5_SAM_INVALID_ETYPE			 (-1765328158L)
28397c478bd9Sstevel@tonic-gate #define KRB5_SAM_NO_CHECKSUM			 (-1765328157L)
28407c478bd9Sstevel@tonic-gate #define KRB5_SAM_BAD_CHECKSUM			 (-1765328156L)
28417c478bd9Sstevel@tonic-gate #define KRB5_KT_NAME_TOOLONG			 (-1765328155L)
28427c478bd9Sstevel@tonic-gate #define KRB5_KT_KVNONOTFOUND			 (-1765328154L)
28437c478bd9Sstevel@tonic-gate #define KRB5_APPL_EXPIRED			 (-1765328153L)
28447c478bd9Sstevel@tonic-gate #define KRB5_LIB_EXPIRED			 (-1765328152L)
28457c478bd9Sstevel@tonic-gate #define KRB5_CHPW_PWDNULL			 (-1765328151L)
28467c478bd9Sstevel@tonic-gate #define KRB5_CHPW_FAIL				 (-1765328150L)
28477c478bd9Sstevel@tonic-gate #define KRB5_KT_FORMAT				 (-1765328149L)
28487c478bd9Sstevel@tonic-gate #define KRB5_NOPERM_ETYPE			 (-1765328148L)
28497c478bd9Sstevel@tonic-gate #define KRB5_CONFIG_ETYPE_NOSUPP		 (-1765328147L)
28507c478bd9Sstevel@tonic-gate #define KRB5_OBSOLETE_FN			 (-1765328146L)
28517c478bd9Sstevel@tonic-gate #define KRB5_EAI_FAIL				 (-1765328145L)
28527c478bd9Sstevel@tonic-gate #define KRB5_EAI_NODATA				 (-1765328144L)
28537c478bd9Sstevel@tonic-gate #define KRB5_EAI_NONAME				 (-1765328143L)
28547c478bd9Sstevel@tonic-gate #define KRB5_EAI_SERVICE			 (-1765328142L)
28557c478bd9Sstevel@tonic-gate #define KRB5_ERR_NUMERIC_REALM			 (-1765328141L)
28567c478bd9Sstevel@tonic-gate #define KRB5_ERR_BAD_S2K_PARAMS			 (-1765328140L)
28577c478bd9Sstevel@tonic-gate #define KRB5_ERR_NO_SERVICE			 (-1765328139L)
28587c478bd9Sstevel@tonic-gate #define KRB5_CC_READONLY			 (-1765328138L)
28597c478bd9Sstevel@tonic-gate #define KRB5_CC_NOSUPP				 (-1765328137L)
28607c478bd9Sstevel@tonic-gate 
28617c478bd9Sstevel@tonic-gate /* NOTE! error values should not collide */
28627c478bd9Sstevel@tonic-gate /* XXX Note KRB5_RC_BADNAME and KRB5_CONF_NOT_CONFIGURED are Solaris specific */
28637c478bd9Sstevel@tonic-gate #define	KRB5_RC_BADNAME				(-1765328136L)
28647c478bd9Sstevel@tonic-gate #define	KRB5_CONF_NOT_CONFIGURED	 	 (-1765328135L)
28657c478bd9Sstevel@tonic-gate #ifdef _KERNEL
28667c478bd9Sstevel@tonic-gate /* XXX Note KRB5_KEF_ERROR and PKCS_ERR are Solaris specific */
28677c478bd9Sstevel@tonic-gate #define KRB5_KEF_ERROR                           (-1765328134L)
28687c478bd9Sstevel@tonic-gate #else
28697c478bd9Sstevel@tonic-gate #define PKCS_ERR				 (-1765328134L)
28707c478bd9Sstevel@tonic-gate #endif /* _KERNEL */
2871*505d05c7Sgtb 
2872*505d05c7Sgtb #define KRB5_DELTAT_BADFORMAT			(-1765328133L)
2873*505d05c7Sgtb 
28747c478bd9Sstevel@tonic-gate #define ERROR_TABLE_BASE_krb5 (-1765328384L)
28757c478bd9Sstevel@tonic-gate 
28767c478bd9Sstevel@tonic-gate /* for compatibility with older versions... */
28777c478bd9Sstevel@tonic-gate #define krb5_err_base ERROR_TABLE_BASE_krb5
28787c478bd9Sstevel@tonic-gate /*
28797c478bd9Sstevel@tonic-gate  * kdb5_err.h:
28807c478bd9Sstevel@tonic-gate  * This file is automatically generated; please do not edit it.
28817c478bd9Sstevel@tonic-gate  */
28827c478bd9Sstevel@tonic-gate #define KRB5_KDB_RCSID                           (-1780008448L)
28837c478bd9Sstevel@tonic-gate #define KRB5_KDB_INUSE                           (-1780008447L)
28847c478bd9Sstevel@tonic-gate #define KRB5_KDB_UK_SERROR                       (-1780008446L)
28857c478bd9Sstevel@tonic-gate #define KRB5_KDB_UK_RERROR                       (-1780008445L)
28867c478bd9Sstevel@tonic-gate #define KRB5_KDB_UNAUTH                          (-1780008444L)
28877c478bd9Sstevel@tonic-gate #define KRB5_KDB_NOENTRY                         (-1780008443L)
28887c478bd9Sstevel@tonic-gate #define KRB5_KDB_ILL_WILDCARD                    (-1780008442L)
28897c478bd9Sstevel@tonic-gate #define KRB5_KDB_DB_INUSE                        (-1780008441L)
28907c478bd9Sstevel@tonic-gate #define KRB5_KDB_DB_CHANGED                      (-1780008440L)
28917c478bd9Sstevel@tonic-gate #define KRB5_KDB_TRUNCATED_RECORD                (-1780008439L)
28927c478bd9Sstevel@tonic-gate #define KRB5_KDB_RECURSIVELOCK                   (-1780008438L)
28937c478bd9Sstevel@tonic-gate #define KRB5_KDB_NOTLOCKED                       (-1780008437L)
28947c478bd9Sstevel@tonic-gate #define KRB5_KDB_BADLOCKMODE                     (-1780008436L)
28957c478bd9Sstevel@tonic-gate #define KRB5_KDB_DBNOTINITED                     (-1780008435L)
28967c478bd9Sstevel@tonic-gate #define KRB5_KDB_DBINITED                        (-1780008434L)
28977c478bd9Sstevel@tonic-gate #define KRB5_KDB_ILLDIRECTION                    (-1780008433L)
28987c478bd9Sstevel@tonic-gate #define KRB5_KDB_NOMASTERKEY                     (-1780008432L)
28997c478bd9Sstevel@tonic-gate #define KRB5_KDB_BADMASTERKEY                    (-1780008431L)
29007c478bd9Sstevel@tonic-gate #define KRB5_KDB_INVALIDKEYSIZE                  (-1780008430L)
29017c478bd9Sstevel@tonic-gate #define KRB5_KDB_CANTREAD_STORED                 (-1780008429L)
29027c478bd9Sstevel@tonic-gate #define KRB5_KDB_BADSTORED_MKEY                  (-1780008428L)
29037c478bd9Sstevel@tonic-gate #define KRB5_KDB_CANTLOCK_DB                     (-1780008427L)
29047c478bd9Sstevel@tonic-gate #define KRB5_KDB_DB_CORRUPT                      (-1780008426L)
29057c478bd9Sstevel@tonic-gate #define KRB5_KDB_BAD_VERSION                     (-1780008425L)
29067c478bd9Sstevel@tonic-gate #define KRB5_KDB_BAD_SALTTYPE                    (-1780008424L)
29077c478bd9Sstevel@tonic-gate #define KRB5_KDB_BAD_ENCTYPE                     (-1780008423L)
29087c478bd9Sstevel@tonic-gate #define KRB5_KDB_BAD_CREATEFLAGS                 (-1780008422L)
29097c478bd9Sstevel@tonic-gate #define KRB5_KDB_NO_PERMITTED_KEY                (-1780008421L)
29107c478bd9Sstevel@tonic-gate #define KRB5_KDB_NO_MATCHING_KEY                 (-1780008420L)
29117c478bd9Sstevel@tonic-gate /*
29127c478bd9Sstevel@tonic-gate  * Incremental propagation error codes
29137c478bd9Sstevel@tonic-gate  */
29147c478bd9Sstevel@tonic-gate #define	KRB5_LOG_CONV				(-1780008419L)
29157c478bd9Sstevel@tonic-gate #define	KRB5_LOG_UNSTABLE			(-1780008418L)
29167c478bd9Sstevel@tonic-gate #define	KRB5_LOG_CORRUPT			(-1780008417L)
29177c478bd9Sstevel@tonic-gate #define	KRB5_LOG_ERROR				(-1780008416L)
29187c478bd9Sstevel@tonic-gate #define ERROR_TABLE_BASE_kdb5 (-1780008448L)
29197c478bd9Sstevel@tonic-gate 
29207c478bd9Sstevel@tonic-gate /* for compatibility with older versions... */
29217c478bd9Sstevel@tonic-gate #define kdb5_err_base ERROR_TABLE_BASE_kdb5
29227c478bd9Sstevel@tonic-gate /*
29237c478bd9Sstevel@tonic-gate  * kv5m_err.h:
29247c478bd9Sstevel@tonic-gate  * This file is automatically generated; please do not edit it.
29257c478bd9Sstevel@tonic-gate  */
29267c478bd9Sstevel@tonic-gate #define KV5M_NONE                                (-1760647424L)
29277c478bd9Sstevel@tonic-gate #define KV5M_PRINCIPAL                           (-1760647423L)
29287c478bd9Sstevel@tonic-gate #define KV5M_DATA                                (-1760647422L)
29297c478bd9Sstevel@tonic-gate #define KV5M_KEYBLOCK                            (-1760647421L)
29307c478bd9Sstevel@tonic-gate #define KV5M_CHECKSUM                            (-1760647420L)
29317c478bd9Sstevel@tonic-gate #define KV5M_ENCRYPT_BLOCK                       (-1760647419L)
29327c478bd9Sstevel@tonic-gate #define KV5M_ENC_DATA                            (-1760647418L)
29337c478bd9Sstevel@tonic-gate #define KV5M_CRYPTOSYSTEM_ENTRY                  (-1760647417L)
29347c478bd9Sstevel@tonic-gate #define KV5M_CS_TABLE_ENTRY                      (-1760647416L)
29357c478bd9Sstevel@tonic-gate #define KV5M_CHECKSUM_ENTRY                      (-1760647415L)
29367c478bd9Sstevel@tonic-gate #define KV5M_AUTHDATA                            (-1760647414L)
29377c478bd9Sstevel@tonic-gate #define KV5M_TRANSITED                           (-1760647413L)
29387c478bd9Sstevel@tonic-gate #define KV5M_ENC_TKT_PART                        (-1760647412L)
29397c478bd9Sstevel@tonic-gate #define KV5M_TICKET                              (-1760647411L)
29407c478bd9Sstevel@tonic-gate #define KV5M_AUTHENTICATOR                       (-1760647410L)
29417c478bd9Sstevel@tonic-gate #define KV5M_TKT_AUTHENT                         (-1760647409L)
29427c478bd9Sstevel@tonic-gate #define KV5M_CREDS                               (-1760647408L)
29437c478bd9Sstevel@tonic-gate #define KV5M_LAST_REQ_ENTRY                      (-1760647407L)
29447c478bd9Sstevel@tonic-gate #define KV5M_PA_DATA                             (-1760647406L)
29457c478bd9Sstevel@tonic-gate #define KV5M_KDC_REQ                             (-1760647405L)
29467c478bd9Sstevel@tonic-gate #define KV5M_ENC_KDC_REP_PART                    (-1760647404L)
29477c478bd9Sstevel@tonic-gate #define KV5M_KDC_REP                             (-1760647403L)
29487c478bd9Sstevel@tonic-gate #define KV5M_ERROR                               (-1760647402L)
29497c478bd9Sstevel@tonic-gate #define KV5M_AP_REQ                              (-1760647401L)
29507c478bd9Sstevel@tonic-gate #define KV5M_AP_REP                              (-1760647400L)
29517c478bd9Sstevel@tonic-gate #define KV5M_AP_REP_ENC_PART                     (-1760647399L)
29527c478bd9Sstevel@tonic-gate #define KV5M_RESPONSE                            (-1760647398L)
29537c478bd9Sstevel@tonic-gate #define KV5M_SAFE                                (-1760647397L)
29547c478bd9Sstevel@tonic-gate #define KV5M_PRIV                                (-1760647396L)
29557c478bd9Sstevel@tonic-gate #define KV5M_PRIV_ENC_PART                       (-1760647395L)
29567c478bd9Sstevel@tonic-gate #define KV5M_CRED                                (-1760647394L)
29577c478bd9Sstevel@tonic-gate #define KV5M_CRED_INFO                           (-1760647393L)
29587c478bd9Sstevel@tonic-gate #define KV5M_CRED_ENC_PART                       (-1760647392L)
29597c478bd9Sstevel@tonic-gate #define KV5M_PWD_DATA                            (-1760647391L)
29607c478bd9Sstevel@tonic-gate #define KV5M_ADDRESS                             (-1760647390L)
29617c478bd9Sstevel@tonic-gate #define KV5M_KEYTAB_ENTRY                        (-1760647389L)
29627c478bd9Sstevel@tonic-gate #define KV5M_CONTEXT                             (-1760647388L)
29637c478bd9Sstevel@tonic-gate #define KV5M_OS_CONTEXT                          (-1760647387L)
29647c478bd9Sstevel@tonic-gate #define KV5M_ALT_METHOD                          (-1760647386L)
29657c478bd9Sstevel@tonic-gate #define KV5M_ETYPE_INFO_ENTRY                    (-1760647385L)
29667c478bd9Sstevel@tonic-gate #define KV5M_DB_CONTEXT                          (-1760647384L)
29677c478bd9Sstevel@tonic-gate #define KV5M_AUTH_CONTEXT                        (-1760647383L)
29687c478bd9Sstevel@tonic-gate #define KV5M_KEYTAB                              (-1760647382L)
29697c478bd9Sstevel@tonic-gate #define KV5M_RCACHE                              (-1760647381L)
29707c478bd9Sstevel@tonic-gate #define KV5M_CCACHE                              (-1760647380L)
29717c478bd9Sstevel@tonic-gate #define KV5M_PREAUTH_OPS                         (-1760647379L)
29727c478bd9Sstevel@tonic-gate #define KV5M_SAM_CHALLENGE                       (-1760647378L)
29737c478bd9Sstevel@tonic-gate #define KV5M_SAM_KEY                             (-1760647377L)
29747c478bd9Sstevel@tonic-gate #define KV5M_ENC_SAM_RESPONSE_ENC                (-1760647376L)
29757c478bd9Sstevel@tonic-gate #define KV5M_ENC_SAM_RESPONSE_ENC_2		 (-1760647374L)
29767c478bd9Sstevel@tonic-gate #define KV5M_SAM_RESPONSE			 (-1760647373L)
29777c478bd9Sstevel@tonic-gate #define KV5M_SAM_RESPONSE_2			 (-1760647372L)
29787c478bd9Sstevel@tonic-gate #define KV5M_PREDICTED_SAM_RESPONSE		 (-1760647371L)
29797c478bd9Sstevel@tonic-gate #define KV5M_PASSWD_PHRASE_ELEMENT		 (-1760647370L)
29807c478bd9Sstevel@tonic-gate #define KV5M_GSS_OID				 (-1760647369L)
29817c478bd9Sstevel@tonic-gate #define KV5M_GSS_QUEUE				 (-1760647368L)
29827c478bd9Sstevel@tonic-gate #define ERROR_TABLE_BASE_kv5m (-1760647424L)
29837c478bd9Sstevel@tonic-gate 
29847c478bd9Sstevel@tonic-gate /* for compatibility with older versions... */
29857c478bd9Sstevel@tonic-gate #define kv5m_err_base ERROR_TABLE_BASE_kv5m
29867c478bd9Sstevel@tonic-gate /*
29877c478bd9Sstevel@tonic-gate  * asn1_err.h:
29887c478bd9Sstevel@tonic-gate  * This file is automatically generated; please do not edit it.
29897c478bd9Sstevel@tonic-gate  */
29907c478bd9Sstevel@tonic-gate #define ASN1_BAD_TIMEFORMAT                      (1859794432L)
29917c478bd9Sstevel@tonic-gate #define ASN1_MISSING_FIELD                       (1859794433L)
29927c478bd9Sstevel@tonic-gate #define ASN1_MISPLACED_FIELD                     (1859794434L)
29937c478bd9Sstevel@tonic-gate #define ASN1_TYPE_MISMATCH                       (1859794435L)
29947c478bd9Sstevel@tonic-gate #define ASN1_OVERFLOW                            (1859794436L)
29957c478bd9Sstevel@tonic-gate #define ASN1_OVERRUN                             (1859794437L)
29967c478bd9Sstevel@tonic-gate #define ASN1_BAD_ID                              (1859794438L)
29977c478bd9Sstevel@tonic-gate #define ASN1_BAD_LENGTH                          (1859794439L)
29987c478bd9Sstevel@tonic-gate #define ASN1_BAD_FORMAT                          (1859794440L)
29997c478bd9Sstevel@tonic-gate #define ASN1_PARSE_ERROR                         (1859794441L)
30007c478bd9Sstevel@tonic-gate #define ASN1_BAD_GMTIME                          (1859794442L)
30017c478bd9Sstevel@tonic-gate #define ASN1_MISMATCH_INDEF			 (1859794443L)
30027c478bd9Sstevel@tonic-gate #define ASN1_MISSING_EOC			 (1859794444L)
30037c478bd9Sstevel@tonic-gate #define ERROR_TABLE_BASE_asn1 (1859794432L)
30047c478bd9Sstevel@tonic-gate 
30057c478bd9Sstevel@tonic-gate /* for compatibility with older versions... */
30067c478bd9Sstevel@tonic-gate #define asn1_err_base ERROR_TABLE_BASE_asn1
30077c478bd9Sstevel@tonic-gate 
30087c478bd9Sstevel@tonic-gate #ifdef __cplusplus
30097c478bd9Sstevel@tonic-gate }
30107c478bd9Sstevel@tonic-gate #endif
30117c478bd9Sstevel@tonic-gate 
30127c478bd9Sstevel@tonic-gate #endif		/* _KRB5_H */
3013