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