diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/ChangeLog | 165 | ||||
-rw-r--r-- | src/include/k5-int.h | 101 | ||||
-rw-r--r-- | src/include/kerberosIV/ChangeLog | 15 | ||||
-rw-r--r-- | src/include/kerberosIV/krb.h | 6 | ||||
-rw-r--r-- | src/include/krb5.hin | 376 | ||||
-rw-r--r-- | src/include/krb5/ChangeLog | 25 | ||||
-rw-r--r-- | src/include/krb5/adm.h | 5 | ||||
-rw-r--r-- | src/include/krb5/kdb.h | 2 | ||||
-rw-r--r-- | src/include/krb5/macsock.h | 8 | ||||
-rw-r--r-- | src/include/krb5/stock/ChangeLog | 4 | ||||
-rw-r--r-- | src/include/krb5/stock/osconf.h | 4 | ||||
-rw-r--r-- | src/include/win-mac.h | 173 |
12 files changed, 655 insertions, 229 deletions
diff --git a/src/include/ChangeLog b/src/include/ChangeLog index 928ecb1..6cb6e7b 100644 --- a/src/include/ChangeLog +++ b/src/include/ChangeLog @@ -1,3 +1,168 @@ +2002-04-16 Danilo Almeida <dalmeida@mit.edu> + + * krb5.hin: Make krb5_get_host_realm() and krb5_free_host_realm() + public. + + * win-mac.h: Since this file is now only Win32, remove non-Win32 + stuff to make it easier to read. Never used __declspec(dllexport) + so that we do not accidentally export symbols. + +2002-04-05 Alexandra Ellwood <lxs@mit.edu> + * krb5.hin: Conditionalize KRB5_CALLCONV_WRONG separately + because gssapi.h defines KRB5_CALLCONV but doesn't need + KRB5_CALLCONV_WRONG + +2002-04-05 Danilo Almeida <dalmeida@mit.edu> + + * win-mac.h: Add KRB5_CALLCONV_WRONG. + + * krb5.hin: Rename krb5_kt_free_entry_contents as + krb5_free_keytab_entry_contents to make it consistent with rest of + API. Add KRB5_CALLCONV_WRONG. Fix up various calling + conventions. For Win32, add KT an CC accessors and default to not + PRIVATE. + +2002-04-03 Danilo Almeida <dalmeida@mit.edu> + + * krb5.hin: Make krb5_build_principal_va() KRB5_CALLCONV. + +2002-04-03 Alexandra Ellwood <lxs@mit.edu> + * krb5.hin: When KRB5_KEYTAB_ACCESSOR_FUNCTIONS is defined, + we still need actual definitions for krb5_kt_ops, etc defined + because krb5_kt_register uses it as a type. + Updated macros to define krb5_kt_ops when KRB5_PRIVATE is 1. + Also added a call to KRB5INT_BEGIN_DECLS so there isn't + a dangling }; in krb5.h when compiling C++ + * k5-int.h: Added krb5_kt_dfl_ops for KRB5_KEYTAB_ACCESSOR_FUNCTIONS + +2002-04-02 Ken Raeburn <raeburn@mit.edu> + + * krb5.hin (krb5_c_valid_enctype, krb5_c_valid_cksumtype, + krb5_c_is_coll_proof_cksum, krb5_c_is_keyed_cksum, + krb5_kt_free_entry_contents): New decls. + (valid_enctype, valid_cksumtype, is_coll_proof_cksum, + is_keyed_cksum, krb5_kt_free_entry): Conditionalize on + KRB5_PRIVATE. + +2002-04-02 Tom Yu <tlyu@mit.edu> + + * krb5.hin: Allow override of KRB5_PRIVATE and KRB5_DEPRECATED on + compiler command line. Make KRB5INT_BEGIN_DECLS and + KRB5INT_END_DECLS macros for C++ to keep indentation happy. Make + krb5_{enc_priv_part,priv,safe} private. Make most of rcache + functions and structs private. Hide keytab structs if + KRB5_KEYTAB_ACCESSOR_FUNCTIONS is true. + (krb5_auth_con_getcksumtype): Remove declaration for unimplemented + function. + +2002-04-02 Sam Hartman <hartmans@mit.edu> + + * krb5.hin: Merge krb5_init_keyblock from mainline + +2002-04-01 Tom Yu <tlyu@mit.edu> + + * krb5.hin: Move a whole bunch of stuff under KRB5_DEPRECATED or + KRB5_PRIVATE as a first pass for cleaning up the API. [merge from + trunk] Note that KRB5_DEPRECATED=1 by default, and KRB5_PRIVATE=1 + on all but MacOS X. + +2000-04-01 Miro Jurisic <meeroh@mit.edu> + * krb5.hin: Conditionalized krb5_kt_* macros vs. functions with + KRB5_KEYTAB_ACCESSOR_FUNCTIONS + +2002-03-28 Alexandra Ellwood <lxs@mit.edu> + * krb5.hin: Conditionalized pragmas for Metrowerks + +2002-03-07 Alexandra Ellwood <lxs@mit.edu> + * krb5.hin: Added check for CFM compiles. Removed dependency on + PRAGMA_* macros. + +2002-02-28 Alexandra Ellwood <lxs@mit.edu> + * krb5.hin: Updated Mac OS X headers to new framework layout + * k5-int.h: Removed conditionals now defined in prefix files + and updated header paths + +2001-12-19 Miro Jurisic <meeroh@mit.edu> + * win-mac.h: Fixed EFBIG #define + +2001-10-29 Miro Jurisic <meeroh@mit.edu> + * pullup from krb5-1-2 branch after krb5-1-2-2-bp + * krb5.hin, k5-int.h: Condintionally use cc_* macros or functions + * krb5.hin: Changed KerberosConditionalMacros.h to + KerberosSupport.h + * k5-int.h: Rearranged the #ifdef macintosh section to + work on Mac OS 9 and X + * win-mac.h, k5-int.h, krb5.hin: Updated Mac OS #defines + and #includes for new header layout and Mac OS X frameworks + +2001-09-25 Ken Raeburn <raeburn@mit.edu> + + * krb5.hin (TKT_FLG_TRANSIT_POLICY_CHECKED, + TKT_FLG_OK_AS_DELEGATE, TKT_FLG_ANONYMOUS): New macros. + (KDC_OPT_REQUEST_ANONYMOUS, KDC_OPT_DISABLE_TRANSITED_CHECK): + Likewise. + (krb5_check_transited_list): Pointed-to krb5_data structures are + now all const. + +2000-10-16 Miro Jurisic <meeroh@mit.edu> + + * win-mac.h: #include <KerberosConditionalMacros.h> on Mac OS + +2000-10-02 Alexandra Ellwood <lxs@mit.edu> + + * krb5-int.h: Added warning comment about #define macintosh + +2000-09-19 Miro Jurisic <meeroh@mit.edu> + + * win-mac.h: Put #include <fcntl.h> back in + +2000-06-02 Danilo Almeida <dalmeida@mit.edu> + + * krb5.hin (krb5_get_tgs_ktypes, krb5_free_ktypes): Fix linkage to + be KRB5_CALLCONV. + + * k5-int.h (krb5int_cc_default): Fix linkage to be consistent with + code. (Note: We should dump KRB5_DLLIMP.) + +2000-05-31 Ken Raeburn <raeburn@mit.edu> + + * krb5.hin (krb5_recvauth_version): Declare. + +2000-5-19 Alexandra Ellwood <lxs@mit.edu> + + * krb5-int.h: Added krb5int_cc_default. This function supports the + Kerberos Login Library and pops up a dialog if the cache does not + contain valid tickets. This is used to automatically get a tgt before + obtaining service tickets. Note that this should be an internal function + because callers don't expect krb5_cc_default to pop up a dialog! + (We found this out the hard way :-) + +2000-05-15 Jeffrey Altman <jaltman@columbia.edu> + + * krb5.hin -- Added prototypes for new public functions + + krb5_appdefault_string + krb5_appdefault_boolean + +2000-04-18 Ken Raeburn <raeburn@mit.edu> + + * krb5.hin: Declare krb5_free_ktypes. + +2000-4-13 Alexandra Ellwood <lxs@mit.edu> + + * krb5-int.h: Added support to store a krb5_principal in the os_context + along with the default ccache name (if known, this principal is the same + as the last time we looked at the ccache. + * win-mac.h: Set up the macintosh build to use KerberosLogin. + +2000-03-25 Miro Jurisic <meeroh@mit.edu> + + * k5-int.h: Fixed protos for krb5_locate_srv_* (naddrs is int*) + +2000-03-20 Miro Jurisic <meeroh@mit.edu> + + * krb5.hin: Add krb5_free_default_realm + 2000-03-15 Danilo Almeida <dalmeida@mit.edu> * krb5.hin: Add krb5_get_prompt_types() and related defs.. diff --git a/src/include/k5-int.h b/src/include/k5-int.h index 1c48809..64c2667 100644 --- a/src/include/k5-int.h +++ b/src/include/k5-int.h @@ -92,14 +92,9 @@ * Machine-type definitions: PC Clone 386 running Microloss Windows */ -#if defined(_MSDOS) || defined(_WIN32) || defined(macintosh) +#if defined(_MSDOS) || defined(_WIN32) #include "win-mac.h" -#if defined(macintosh) && defined(__CFM68K__) && !defined(__USING_STATIC_LIBS__) -#pragma import on -#endif -#endif -#if defined(_MSDOS) || defined(_WIN32) /* Kerberos Windows initialization file */ #define KERBEROS_INI "kerberos.ini" #define INI_FILES "Files" @@ -109,10 +104,12 @@ #define ANSI_STDIO #endif - -#ifndef macintosh -#if defined(__MWERKS__) || defined(applec) || defined(THINK_C) +/* Note, this may shoot us in the foot if we switch to CW compilers for Mach-o builds */ +#if !defined(macintosh) && (defined(__MWERKS__) || defined(applec) || defined(THINK_C)) #define macintosh +#endif + +#ifdef macintosh #define SIZEOF_INT 4 #define SIZEOF_SHORT 2 #define HAVE_SRAND @@ -120,15 +117,11 @@ #define HAVE_LABS /*#define ENOMEM -1*/ #define ANSI_STDIO -#ifndef _SIZET -typedef unsigned int size_t; -#define _SIZET -#endif +#include <size_t.h> #include <unix.h> #include <ctype.h> +#include <fcntl.h> #endif -#endif - #ifndef KRB5_AUTOCONF__ #define KRB5_AUTOCONF__ @@ -511,7 +504,7 @@ krb5_error_code krb5_sendto_kdc const krb5_data *, const krb5_data *, krb5_data *, - int *)); + int)); krb5_error_code krb5_get_krbhst KRB5_PROTOTYPE((krb5_context, const krb5_data *, @@ -555,9 +548,8 @@ krb5_error_code krb5_locate_srv_conf const krb5_data *, const char *, struct sockaddr **, - int *, - int *, - int *)); + int*, + int)); /* no context? */ krb5_error_code krb5_locate_srv_dns @@ -565,7 +557,7 @@ krb5_error_code krb5_locate_srv_dns const char *, const char *, struct sockaddr **, - int *)); + int*)); #endif /* KRB5_LIBOS_PROTO__ */ @@ -788,11 +780,12 @@ KRB5_PROTOTYPE((krb5_context context, krb5_const krb5_keyblock *key, #define KRB5_LIBOS__ typedef struct _krb5_os_context { - krb5_magic magic; - krb5_int32 time_offset; - krb5_int32 usec_offset; - krb5_int32 os_flags; - char * default_ccname; + krb5_magic magic; + krb5_int32 time_offset; + krb5_int32 usec_offset; + krb5_int32 os_flags; + char * default_ccname; + krb5_principal default_ccprincipal; } *krb5_os_context; /* @@ -965,7 +958,7 @@ KRB5_PROTOTYPE((krb5_context context, krb5_get_init_creds_opt *options, krb5_gic_get_as_key_fct gak, void *gak_data, - int *master, + int master, krb5_kdc_rep **as_reply)); @@ -998,7 +991,12 @@ KRB5_DLLIMP void KRB5_CALLCONV krb5_free_pa_enc_ts KRB5_PROTOTYPE((krb5_context, krb5_pa_enc_ts FAR *)); /* #include "krb5/wordsize.h" -- comes in through base-defs.h. */ +#if TARGET_OS_MAC +#include <Kerberos/profile.h> +#include <Kerberos/com_err.h> /* Not included by Kerberos/profile.h */ +#else #include "profile.h" +#endif struct _krb5_context { krb5_magic magic; @@ -1506,6 +1504,8 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_ser_unpack_bytes krb5_octet FAR * FAR *, size_t FAR *)); +KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5int_cc_default + KRB5_PROTOTYPE((krb5_context, krb5_ccache FAR *)); krb5_error_code KRB5_CALLCONV krb5_cc_retrieve_cred_default KRB5_PROTOTYPE((krb5_context, krb5_ccache, krb5_flags, @@ -1529,4 +1529,53 @@ int krb5_seteuid KRB5_PROTOTYPE((int)); /* to keep lint happy */ #define krb5_xfree(val) free((char FAR *)(val)) +#if KRB5_CCACHE_ACCESSOR_FUNCTIONS +/* temporary -- this should be under lib/krb5/ccache somewhere */ + +struct _krb5_ccache { + krb5_magic magic; + struct _krb5_cc_ops FAR *ops; + krb5_pointer data; +}; + +struct _krb5_cc_ops { + krb5_magic magic; + char FAR *prefix; + char FAR * (KRB5_CALLCONV *get_name) KRB5_NPROTOTYPE((krb5_context, krb5_ccache)); + krb5_error_code (KRB5_CALLCONV *resolve) KRB5_NPROTOTYPE((krb5_context, krb5_ccache FAR *, + const char FAR *)); + krb5_error_code (KRB5_CALLCONV *gen_new) KRB5_NPROTOTYPE((krb5_context, krb5_ccache FAR *)); + krb5_error_code (KRB5_CALLCONV *init) KRB5_NPROTOTYPE((krb5_context, krb5_ccache, + krb5_principal)); + krb5_error_code (KRB5_CALLCONV *destroy) KRB5_NPROTOTYPE((krb5_context, krb5_ccache)); + krb5_error_code (KRB5_CALLCONV *close) KRB5_NPROTOTYPE((krb5_context, krb5_ccache)); + krb5_error_code (KRB5_CALLCONV *store) KRB5_NPROTOTYPE((krb5_context, krb5_ccache, + krb5_creds FAR *)); + krb5_error_code (KRB5_CALLCONV *retrieve) KRB5_NPROTOTYPE((krb5_context, krb5_ccache, + krb5_flags, krb5_creds FAR *, + krb5_creds FAR *)); + krb5_error_code (KRB5_CALLCONV *get_princ) KRB5_NPROTOTYPE((krb5_context, krb5_ccache, + krb5_principal FAR *)); + krb5_error_code (KRB5_CALLCONV *get_first) KRB5_NPROTOTYPE((krb5_context, krb5_ccache, + krb5_cc_cursor FAR *)); + krb5_error_code (KRB5_CALLCONV *get_next) KRB5_NPROTOTYPE((krb5_context, krb5_ccache, + krb5_cc_cursor FAR *, krb5_creds FAR *)); + krb5_error_code (KRB5_CALLCONV *end_get) KRB5_NPROTOTYPE((krb5_context, krb5_ccache, + krb5_cc_cursor FAR *)); + krb5_error_code (KRB5_CALLCONV *remove_cred) KRB5_NPROTOTYPE((krb5_context, krb5_ccache, + krb5_flags, krb5_creds FAR *)); + krb5_error_code (KRB5_CALLCONV *set_flags) KRB5_NPROTOTYPE((krb5_context, krb5_ccache, + krb5_flags)); +}; + +extern krb5_cc_ops *krb5_cc_dfl_ops; +#endif /* KRB5_CCACHE_ACCESSOR_FUNCTIONS */ + +#if KRB5_KEYTAB_ACCESSOR_FUNCTIONS +/* temporary -- this should be under lib/krb5/keytab somewhere */ +/* structures defined in krb5.h when KRB5_PRIVATE is 1 */ +extern krb5_kt_ops krb5_kt_dfl_ops; +#endif /* KRB5_KEYTAB_ACCESSOR_FUNCTIONS */ + + #endif /* _KRB5_INT_H */ diff --git a/src/include/kerberosIV/ChangeLog b/src/include/kerberosIV/ChangeLog index 767d835..9954dca 100644 --- a/src/include/kerberosIV/ChangeLog +++ b/src/include/kerberosIV/ChangeLog @@ -1,3 +1,18 @@ +2000-06-02 Ken Raeburn <raeburn@mit.edu> + + * krb.h (krb4_swab16): Mask upper byte of input after shifting, in + case the input value is a signed short. + +2000-05-18 Ken Raeburn <raeburn@mit.edu> + + * krb.h (krb4_swab32): Mask high byte of input value after + shifting, to avoid "time out of bounds" error when byte orders are + different and low byte of timestamp has its high bit set and the + timestamp is stored as a signed value. + + * krb.h (krb_get_err_text): Don't use "errno" as an argument + name. + Mon Mar 15 15:58:34 1999 Tom Yu <tlyu@mit.edu> * des.h: Fix GSS_DLLIMP. diff --git a/src/include/kerberosIV/krb.h b/src/include/kerberosIV/krb.h index fe8830b..4e2b675 100644 --- a/src/include/kerberosIV/krb.h +++ b/src/include/kerberosIV/krb.h @@ -340,8 +340,8 @@ typedef struct msg_dat MSG_DAT; /* * New byte swapping routines, much cleaner */ -#define krb4_swab16(val) (((val) >> 8) | ((val) << 8)) -#define krb4_swab32(val) (((val)>>24) | (((val)>>8)&0xFF00) | \ +#define krb4_swab16(val) ((((val) >> 8)&0xFF) | ((val) << 8)) +#define krb4_swab32(val) ((((val)>>24)&0xFF) | (((val)>>8)&0xFF00) | \ (((val)<<8)&0xFF0000) | ((val)<<24)) /* Kerberos ticket flag field bit definitions */ @@ -466,7 +466,7 @@ KRB5_DLLIMP int KRB5_CALLCONV dest_tkt PROTOTYPE((void)); /* err_txt.c */ KRB5_DLLIMP const char FAR * KRB5_CALLCONV krb_get_err_text - PROTOTYPE((int errno)); + PROTOTYPE((int errnum)); /* g_ad_tkt.c */ int get_ad_tkt PROTOTYPE((char *service, char *sinst, char *realm, int lifetime)); diff --git a/src/include/krb5.hin b/src/include/krb5.hin index ea8f93e..7caf42c 100644 --- a/src/include/krb5.hin +++ b/src/include/krb5.hin @@ -1,7 +1,7 @@ /* * include/krb5.h * - * Copyright 1989,1990,1995 by the Massachusetts Institute of Technology. + * Copyright 1989,1990,1995,2001 by the Massachusetts Institute of Technology. * All Rights Reserved. * * Export of this software from the United States of America may @@ -56,15 +56,40 @@ #ifndef KRB5_GENERAL__ #define KRB5_GENERAL__ -#if defined(_MSDOS) || defined(_WIN32) || defined(macintosh) -#include <win-mac.h> -/* Macintoh CFM-68K magic incantation */ -#if defined(macintosh) && defined(__CFM68K__) && !defined(__USING_STATIC_LIBS__) -#pragma import on +#ifndef KRB5_DEPRECATED +#define KRB5_DEPRECATED 1 /* Expose deprecated things for now. */ +#endif + +#if defined(macintosh) || (defined(__MACH__) && defined(__APPLE__)) + #include <TargetConditionals.h> + #if TARGET_RT_MAC_CFM + #error "Use KfM 4.0 SDK headers for CFM compilation." + #endif + + /* This is an API divergence in 1.2.3 needed for proper functioning + on Mac OS X. This will be reconciled in 1.3 */ + #define KRB5_CCACHE_ACCESSOR_FUNCTIONS 1 + #define KRB5_KEYTAB_ACCESSOR_FUNCTIONS 1 + #ifndef KRB5_PRIVATE /* Allow e.g. build system to override */ + #define KRB5_PRIVATE 0 + #endif +#else +#if defined(_WIN32) + #ifndef KRB5_PRIVATE + #define KRB5_PRIVATE 0 + #endif + #define KRB5_CCACHE_ACCESSOR_FUNCTIONS 1 + #define KRB5_KEYTAB_ACCESSOR_FUNCTIONS 1 +#else + #ifndef KRB5_PRIVATE + #define KRB5_PRIVATE 1 + #endif + #define KRB5_CCACHE_ACCESSOR_FUNCTIONS 0 + #define KRB5_KEYTAB_ACCESSOR_FUNCTIONS 0 #endif #endif -#if defined(_MSDOS) || defined(_WIN32) || defined(macintosh) +#if defined(_MSDOS) || defined(_WIN32) #include <win-mac.h> #endif @@ -80,6 +105,10 @@ #endif /* !KRB5_CALLCONV */ #endif /* !KRB5_CONFIG__ */ +#ifndef KRB5_CALLCONV_WRONG +#define KRB5_CALLCONV_WRONG +#endif + #ifndef THREEPARAMOPEN #define THREEPARAMOPEN(x,y,z) open(x,y,z) #endif @@ -95,15 +124,34 @@ * begin "error_def.h" */ -#include <profile.h> +#if TARGET_OS_MAC + #include <Kerberos/profile.h> +#else + #include <profile.h> +#endif + #include <errno.h> /* * end "error_def.h" */ -#ifdef __cplusplus -extern "C" { +#if defined(__cplusplus) && !defined(KRB5INT_BEGIN_DECLS) +#define KRB5INT_BEGIN_DECLS extern "C" { +#define KRB5INT_END_DECLS } +#else +#define KRB5INT_BEGIN_DECLS +#define KRB5INT_END_DECLS +#endif + +KRB5INT_BEGIN_DECLS + +#if TARGET_OS_MAC + #if defined(__MWERKS__) + #pragma import on + #pragma enumsalwaysint on + #endif + #pragma options align=mac68k #endif /* @@ -498,7 +546,17 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV #define KRB5_KEYUSAGE_GSS_TOK_WRAP_INTEG 23 #define KRB5_KEYUSAGE_GSS_TOK_WRAP_PRIV 24 +KRB5_DLLIMP krb5_boolean KRB5_CALLCONV krb5_c_valid_enctype + KRB5_PROTOTYPE((krb5_const krb5_enctype ktype)); +KRB5_DLLIMP krb5_boolean KRB5_CALLCONV krb5_c_valid_cksumtype + KRB5_PROTOTYPE((krb5_const krb5_cksumtype ctype)); +KRB5_DLLIMP krb5_boolean KRB5_CALLCONV krb5_c_is_coll_proof_cksum + KRB5_PROTOTYPE((krb5_const krb5_cksumtype ctype)); +KRB5_DLLIMP krb5_boolean KRB5_CALLCONV krb5_c_is_keyed_cksum + KRB5_PROTOTYPE((krb5_const krb5_cksumtype ctype)); +#if KRB5_PRIVATE +/* use the above four instead */ KRB5_DLLIMP krb5_boolean KRB5_CALLCONV valid_enctype KRB5_PROTOTYPE((krb5_const krb5_enctype ktype)); KRB5_DLLIMP krb5_boolean KRB5_CALLCONV valid_cksumtype @@ -507,6 +565,7 @@ KRB5_DLLIMP krb5_boolean KRB5_CALLCONV is_coll_proof_cksum KRB5_PROTOTYPE((krb5_const krb5_cksumtype ctype)); KRB5_DLLIMP krb5_boolean KRB5_CALLCONV is_keyed_cksum KRB5_PROTOTYPE((krb5_const krb5_cksumtype ctype)); +#endif #ifdef KRB5_OLD_CRYPTO /* @@ -580,6 +639,7 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_verify_checksum krb5_const krb5_pointer in, krb5_const size_t in_length, krb5_const krb5_pointer seed, krb5_const size_t seed_length)); +#if KRB5_PRIVATE KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_random_confounder KRB5_PROTOTYPE((size_t, krb5_pointer)); @@ -592,6 +652,7 @@ krb5_error_code krb5_decrypt_data KRB5_PROTOTYPE((krb5_context context, krb5_keyblock *key, krb5_pointer ivec, krb5_enc_data *data, krb5_data *enc_data)); +#endif #endif /* KRB5_OLD_CRYPTO */ @@ -620,7 +681,7 @@ krb5_error_code krb5_decrypt_data /* #define KDC_OPT_RESERVED 0x00100000 */ /* #define KDC_OPT_RESERVED 0x00080000 */ /* #define KDC_OPT_RESERVED 0x00040000 */ -/* #define KDC_OPT_RESERVED 0x00020000 */ +#define KDC_OPT_REQUEST_ANONYMOUS 0x00020000 /* #define KDC_OPT_RESERVED 0x00010000 */ /* #define KDC_OPT_RESERVED 0x00008000 */ /* #define KDC_OPT_RESERVED 0x00004000 */ @@ -632,7 +693,7 @@ krb5_error_code krb5_decrypt_data /* #define KDC_OPT_RESERVED 0x00000100 */ /* #define KDC_OPT_RESERVED 0x00000080 */ /* #define KDC_OPT_RESERVED 0x00000040 */ -/* #define KDC_OPT_RESERVED 0x00000020 */ +#define KDC_OPT_DISABLE_TRANSITED_CHECK 0x00000020 #define KDC_OPT_RENEWABLE_OK 0x00000010 #define KDC_OPT_ENC_TKT_IN_SKEY 0x00000008 /* #define KDC_OPT_UNUSED 0x00000004 */ @@ -708,9 +769,9 @@ krb5_error_code krb5_decrypt_data #define TKT_FLG_INITIAL 0x00400000 #define TKT_FLG_PRE_AUTH 0x00200000 #define TKT_FLG_HW_AUTH 0x00100000 -/* #define TKT_FLG_RESERVED 0x00080000 */ -/* #define TKT_FLG_RESERVED 0x00040000 */ -/* #define TKT_FLG_RESERVED 0x00020000 */ +#define TKT_FLG_TRANSIT_POLICY_CHECKED 0x00080000 +#define TKT_FLG_OK_AS_DELEGATE 0x00040000 +#define TKT_FLG_ANONYMOUS 0x00020000 /* #define TKT_FLG_RESERVED 0x00010000 */ /* #define TKT_FLG_RESERVED 0x00008000 */ /* #define TKT_FLG_RESERVED 0x00004000 */ @@ -1022,6 +1083,7 @@ typedef struct _krb5_response { krb5_timestamp request_time; /* When we made the request */ } krb5_response; +#if KRB5_PRIVATE typedef struct _krb5_safe { krb5_magic magic; krb5_data user_data; /* user data */ @@ -1048,6 +1110,7 @@ typedef struct _krb5_priv_enc_part { krb5_address FAR *s_address; /* sender address */ krb5_address FAR *r_address; /* recipient address, optional */ } krb5_priv_enc_part; +#endif typedef struct _krb5_cred_info { krb5_magic magic; @@ -1126,6 +1189,12 @@ typedef struct krb5_replay_data { typedef krb5_pointer krb5_cc_cursor; /* cursor for sequential lookup */ +#if KRB5_CCACHE_ACCESSOR_FUNCTIONS +struct _krb5_ccache; +typedef struct _krb5_ccache FAR *krb5_ccache; +struct _krb5_cc_ops; +typedef struct _krb5_cc_ops krb5_cc_ops; +#else typedef struct _krb5_ccache { krb5_magic magic; struct _krb5_cc_ops FAR *ops; @@ -1161,6 +1230,7 @@ typedef struct _krb5_cc_ops { krb5_error_code (KRB5_CALLCONV *set_flags) KRB5_NPROTOTYPE((krb5_context, krb5_ccache, krb5_flags)); } krb5_cc_ops; +#endif /* KRB5_CCACHE_ACCESSOR_FUNCTIONS */ /* for retrieve_cred */ #define KRB5_TC_MATCH_TIMES 0x00000001 @@ -1177,6 +1247,58 @@ typedef struct _krb5_cc_ops { /* for set_flags and other functions */ #define KRB5_TC_OPENCLOSE 0x00000001 +#if KRB5_CCACHE_ACCESSOR_FUNCTIONS +KRB5_DLLIMP const char FAR * KRB5_CALLCONV +krb5_cc_get_name (krb5_context context, krb5_ccache cache); + +KRB5_DLLIMP krb5_error_code KRB5_CALLCONV +krb5_cc_gen_new (krb5_context context, krb5_ccache FAR *cache); + +KRB5_DLLIMP krb5_error_code KRB5_CALLCONV +krb5_cc_initialize(krb5_context context, krb5_ccache cache, + krb5_principal principal); + +KRB5_DLLIMP krb5_error_code KRB5_CALLCONV +krb5_cc_destroy (krb5_context context, krb5_ccache cache); + +KRB5_DLLIMP krb5_error_code KRB5_CALLCONV +krb5_cc_close (krb5_context context, krb5_ccache cache); + +KRB5_DLLIMP krb5_error_code KRB5_CALLCONV +krb5_cc_store_cred (krb5_context context, krb5_ccache cache, + krb5_creds FAR *creds); + +KRB5_DLLIMP krb5_error_code KRB5_CALLCONV +krb5_cc_retrieve_cred (krb5_context context, krb5_ccache cache, + krb5_flags flags, krb5_creds FAR *mcreds, + krb5_creds FAR *creds); + +KRB5_DLLIMP krb5_error_code KRB5_CALLCONV +krb5_cc_get_principal (krb5_context context, krb5_ccache cache, + krb5_principal FAR *principal); + +KRB5_DLLIMP krb5_error_code KRB5_CALLCONV +krb5_cc_start_seq_get (krb5_context context, krb5_ccache cache, + krb5_cc_cursor FAR *cursor); + +KRB5_DLLIMP krb5_error_code KRB5_CALLCONV +krb5_cc_next_cred (krb5_context context, krb5_ccache cache, + krb5_cc_cursor FAR *cursor, krb5_creds FAR *creds); + +KRB5_DLLIMP krb5_error_code KRB5_CALLCONV +krb5_cc_end_seq_get (krb5_context context, krb5_ccache cache, + krb5_cc_cursor FAR *cursor); + +KRB5_DLLIMP krb5_error_code KRB5_CALLCONV +krb5_cc_remove_cred (krb5_context context, krb5_ccache cache, krb5_flags flags, + krb5_creds FAR *creds); + +KRB5_DLLIMP krb5_error_code KRB5_CALLCONV +krb5_cc_set_flags (krb5_context context, krb5_ccache cache, krb5_flags flags); + +KRB5_DLLIMP const char * KRB5_CALLCONV +krb5_cc_get_type (krb5_context context, krb5_ccache cache); +#else #define krb5_cc_initialize(context, cache, principal) krb5_x ((cache)->ops->init,(context, cache, principal)) #define krb5_cc_gen_new(context, cache) krb5_x ((*cache)->ops->gen_new,(context, cache)) #define krb5_cc_destroy(context, cache) krb5_x ((cache)->ops->destroy,(context, cache)) @@ -1193,6 +1315,7 @@ typedef struct _krb5_cc_ops { #define krb5_cc_get_type(context, cache) ((cache)->ops->prefix) extern krb5_cc_ops *krb5_cc_dfl_ops; +#endif /* KRB5_CCACHE_ACCESSOR_FUNCTIONS */ /* * end "ccache.h" @@ -1202,12 +1325,18 @@ extern krb5_cc_ops *krb5_cc_dfl_ops; * begin "rcache.h" */ +#if KRB5_PRIVATE typedef struct krb5_rc_st { krb5_magic magic; struct _krb5_rc_ops FAR *ops; krb5_pointer data; } FAR *krb5_rcache; +#else +struct krb5_rc_st; +typedef struct krb5_rc_st FAR *krb5_rcache; +#endif +#if KRB5_PRIVATE typedef struct _krb5_donot_replay { krb5_magic magic; char FAR *server; /* null-terminated */ @@ -1275,6 +1404,7 @@ krb5_error_code krb5_auth_to_rep #define krb5_rc_resolve(context, id, name) krb5_x((id)->ops->resolve,(context, id, name)) extern krb5_rc_ops krb5_rc_dfl_ops; +#endif /* * end "rcache.h" @@ -1298,14 +1428,18 @@ typedef struct krb5_keytab_entry_st { krb5_keyblock key; /* the secret key */ } krb5_keytab_entry; - +#if KRB5_KEYTAB_ACCESSOR_FUNCTIONS && !KRB5_PRIVATE +/* Opaque definitions for krb5_kt_* functions */ +struct _krb5_kt; +typedef struct _krb5_kt FAR *krb5_keytab; +#else +struct _krb5_kt_ops; typedef struct _krb5_kt { krb5_magic magic; struct _krb5_kt_ops FAR *ops; krb5_pointer data; } FAR *krb5_keytab; - typedef struct _krb5_kt_ops { krb5_magic magic; char FAR *prefix; @@ -1355,7 +1489,30 @@ typedef struct _krb5_kt_ops { /* Handle for serializer */ void * serializer; } krb5_kt_ops; - +#endif /* !KRB5_KEYTAB_ACCESSOR_FUNCTIONS || KRB5_PRIVATE */ + +#if KRB5_KEYTAB_ACCESSOR_FUNCTIONS +char * KRB5_CALLCONV +krb5_kt_get_type (krb5_context, krb5_keytab keytab); +krb5_error_code KRB5_CALLCONV +krb5_kt_get_name(krb5_context context, krb5_keytab keytab, char *name, + unsigned int namelen); +krb5_error_code KRB5_CALLCONV +krb5_kt_close(krb5_context context, krb5_keytab keytab); +krb5_error_code KRB5_CALLCONV +krb5_kt_get_entry(krb5_context context, krb5_keytab keytab, + krb5_const_principal principal, krb5_kvno vno, + krb5_enctype enctype, krb5_keytab_entry *entry); +krb5_error_code KRB5_CALLCONV +krb5_kt_start_seq_get(krb5_context context, krb5_keytab keytab, + krb5_kt_cursor *cursor); +krb5_error_code KRB5_CALLCONV +krb5_kt_next_entry(krb5_context context, krb5_keytab keytab, + krb5_keytab_entry *entry, krb5_kt_cursor *cursor); +krb5_error_code KRB5_CALLCONV +krb5_kt_end_seq_get(krb5_context context, krb5_keytab keytab, + krb5_kt_cursor *cursor); +#else #define krb5_kt_get_type(context, keytab) ((keytab)->ops->prefix) #define krb5_kt_get_name(context, keytab, name, namelen) krb5_x((keytab)->ops->get_name,(context, keytab,name,namelen)) #define krb5_kt_close(context, keytab) krb5_x((keytab)->ops->close,(context, keytab)) @@ -1363,11 +1520,12 @@ typedef struct _krb5_kt_ops { #define krb5_kt_start_seq_get(context, keytab, cursor) krb5_x((keytab)->ops->start_seq_get,(context, keytab, cursor)) #define krb5_kt_next_entry(context, keytab, entry, cursor) krb5_x((keytab)->ops->get_next,(context, keytab, entry, cursor)) #define krb5_kt_end_seq_get(context, keytab, cursor) krb5_x((keytab)->ops->end_get,(context, keytab, cursor)) -/* remove and add are functions, so that they can return NOWRITE - if not a writable keytab */ - extern krb5_kt_ops krb5_kt_dfl_ops; +#endif + +/* remove and add are functions, so that they can return NOWRITE + if not a writable keytab */ /* * end "keytab.h" @@ -1384,6 +1542,7 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_init_secure_context KRB5_DLLIMP void KRB5_CALLCONV krb5_free_context KRB5_PROTOTYPE((krb5_context)); +#if KRB5_PRIVATE krb5_error_code krb5_set_default_in_tkt_ktypes KRB5_PROTOTYPE((krb5_context, krb5_const krb5_enctype *)); @@ -1394,18 +1553,29 @@ krb5_error_code krb5_get_default_in_tkt_ktypes krb5_error_code krb5_set_default_tgs_ktypes KRB5_PROTOTYPE((krb5_context, krb5_const krb5_enctype *)); -krb5_error_code krb5_get_tgs_ktypes +#endif + +krb5_error_code KRB5_CALLCONV krb5_set_default_tgs_enctypes + KRB5_PROTOTYPE((krb5_context, + krb5_const krb5_enctype *)); + +#if KRB5_PRIVATE +krb5_error_code KRB5_CALLCONV krb5_get_tgs_ktypes KRB5_PROTOTYPE((krb5_context, krb5_const_principal, krb5_enctype **)); krb5_error_code krb5_get_permitted_enctypes KRB5_PROTOTYPE((krb5_context, krb5_enctype **)); +void KRB5_CALLCONV krb5_free_ktypes + KRB5_PROTOTYPE ((krb5_context, krb5_enctype *)); krb5_boolean krb5_is_permitted_enctype KRB5_PROTOTYPE((krb5_context, krb5_enctype)); +#endif /* libkrb.spec */ +#if KRB5_PRIVATE krb5_error_code krb5_kdc_rep_decrypt_proc KRB5_PROTOTYPE((krb5_context, krb5_const krb5_keyblock *, @@ -1436,6 +1606,7 @@ krb5_error_code krb5_get_cred_from_kdc_renew krb5_creds *, krb5_creds **, krb5_creds *** )); +#endif KRB5_DLLIMP void KRB5_CALLCONV krb5_free_tgt_creds KRB5_PROTOTYPE((krb5_context, krb5_creds FAR * FAR* )); /* XXX too hard to do with const */ @@ -1461,6 +1632,7 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_get_credentials_renew krb5_ccache, krb5_creds FAR *, krb5_creds FAR * FAR *)); +#if KRB5_PRIVATE krb5_error_code krb5_get_cred_via_tkt KRB5_PROTOTYPE((krb5_context, krb5_creds *, @@ -1468,6 +1640,7 @@ krb5_error_code krb5_get_cred_via_tkt krb5_address * krb5_const *, krb5_creds *, krb5_creds **)); +#endif KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_mk_req KRB5_PROTOTYPE((krb5_context, krb5_auth_context FAR *, @@ -1530,19 +1703,19 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_unparse_name_ext KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_set_principal_realm KRB5_PROTOTYPE((krb5_context, krb5_principal, const char FAR *)); -krb5_boolean krb5_address_search +krb5_boolean KRB5_CALLCONV_WRONG krb5_address_search KRB5_PROTOTYPE((krb5_context, krb5_const krb5_address *, krb5_address * krb5_const *)); -krb5_boolean krb5_address_compare +krb5_boolean KRB5_CALLCONV krb5_address_compare KRB5_PROTOTYPE((krb5_context, krb5_const krb5_address *, krb5_const krb5_address *)); -int krb5_address_order +int KRB5_CALLCONV krb5_address_order KRB5_PROTOTYPE((krb5_context, krb5_const krb5_address *, krb5_const krb5_address *)); -krb5_boolean krb5_realm_compare +krb5_boolean KRB5_CALLCONV krb5_realm_compare KRB5_PROTOTYPE((krb5_context, krb5_const_principal, krb5_const_principal)); @@ -1550,6 +1723,15 @@ KRB5_DLLIMP krb5_boolean KRB5_CALLCONV krb5_principal_compare KRB5_PROTOTYPE((krb5_context, krb5_const_principal, krb5_const_principal)); +krb5_error_code KRB5_CALLCONV krb5_init_keyblock + (krb5_context, krb5_enctype enctype, + size_t length, krb5_keyblock **out); + /* Initialize a new keyblock and allocate storage + * for the contents of the key, which will be freed along + * with the keyblock when krb5_free_keyblock is called. + * It is legal to pass in a length of 0, in which + * case contents are left unallocated. + */ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_copy_keyblock KRB5_PROTOTYPE((krb5_context, krb5_const krb5_keyblock FAR *, @@ -1570,10 +1752,12 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_copy_principal KRB5_PROTOTYPE((krb5_context, krb5_const_principal, krb5_principal FAR *)); +#if KRB5_PRIVATE KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_copy_addr KRB5_PROTOTYPE((krb5_context, const krb5_address FAR *, krb5_address FAR * FAR *)); +#endif KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_copy_addresses KRB5_PROTOTYPE((krb5_context, krb5_address FAR * krb5_const FAR *, @@ -1594,6 +1778,7 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_copy_checksum KRB5_PROTOTYPE((krb5_context, krb5_const krb5_checksum FAR *, krb5_checksum FAR * FAR *)); +#if KRB5_PRIVATE void krb5_init_ets KRB5_PROTOTYPE((krb5_context)); void krb5_free_ets @@ -1604,6 +1789,7 @@ krb5_error_code krb5_generate_subkey krb5_error_code krb5_generate_seq_number KRB5_PROTOTYPE((krb5_context, krb5_const krb5_keyblock *, krb5_int32 *)); +#endif KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_get_server_rcache KRB5_PROTOTYPE((krb5_context, krb5_const krb5_data *, krb5_rcache *)); @@ -1613,7 +1799,7 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV_C krb5_build_principal KRB5_STDARG_P((krb5_context, krb5_principal FAR *, int, krb5_const char FAR *, ...)); #ifdef va_start /* XXX depending on varargs include file defining va_start... */ -krb5_error_code krb5_build_principal_va +krb5_error_code KRB5_CALLCONV krb5_build_principal_va KRB5_PROTOTYPE((krb5_context, krb5_principal, int, krb5_const char *, va_list)); #endif @@ -1628,6 +1814,7 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_524_conv_principal KRB5_PROTOTYPE((krb5_context context, krb5_const krb5_principal princ, char FAR *name, char FAR *inst, char FAR *realm)); +#if KRB5_PRIVATE KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_mk_chpw_req KRB5_PROTOTYPE((krb5_context context, krb5_auth_context auth_context, krb5_data *ap_req, char *passwd, krb5_data *packet)); @@ -1638,11 +1825,14 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_rd_chpw_rep KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_chpw_result_code_string KRB5_PROTOTYPE((krb5_context context, int result_code, char **result_codestr)); +#endif /* libkt.spec */ +#if KRB5_PRIVATE KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_kt_register KRB5_PROTOTYPE((krb5_context, krb5_kt_ops FAR * )); +#endif KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_kt_resolve KRB5_PROTOTYPE((krb5_context, krb5_const char FAR *, @@ -1654,9 +1844,15 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_kt_default_name KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_kt_default KRB5_PROTOTYPE((krb5_context, krb5_keytab FAR * )); +KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_free_keytab_entry_contents + KRB5_PROTOTYPE((krb5_context, + krb5_keytab_entry FAR * )); +#if KRB5_PRIVATE +/* use krb5_kt_free_entry_contents instead */ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_kt_free_entry KRB5_PROTOTYPE((krb5_context, krb5_keytab_entry FAR * )); +#endif /* remove and add are functions, so that they can return NOWRITE if not a writable keytab */ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_kt_remove_entry @@ -1667,13 +1863,14 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_kt_add_entry KRB5_PROTOTYPE((krb5_context, krb5_keytab, krb5_keytab_entry FAR * )); +#if KRB5_PRIVATE krb5_error_code krb5_principal2salt KRB5_PROTOTYPE((krb5_context, krb5_const_principal, krb5_data *)); krb5_error_code krb5_principal2salt_norealm KRB5_PROTOTYPE((krb5_context, krb5_const_principal, krb5_data *)); - +#endif /* librc.spec--see rcache.h */ /* libcc.spec */ @@ -1688,8 +1885,10 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_cc_set_default_name KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_cc_default KRB5_PROTOTYPE((krb5_context, krb5_ccache FAR *)); +#if KRB5_PRIVATE KRB5_DLLIMP unsigned int KRB5_CALLCONV krb5_get_notification_message KRB5_PROTOTYPE((void)); +#endif KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_cc_copy_creds KRB5_PROTOTYPE((krb5_context context, @@ -1698,32 +1897,43 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_cc_copy_creds /* chk_trans.c */ +#if KRB5_PRIVATE krb5_error_code krb5_check_transited_list - KRB5_PROTOTYPE((krb5_context, - krb5_data *trans, krb5_data *realm1, krb5_data *realm2)); + (krb5_context, const krb5_data *trans, + const krb5_data *realm1, const krb5_data *realm2); +#endif /* free_rtree.c */ +#if KRB5_PRIVATE void krb5_free_realm_tree KRB5_PROTOTYPE((krb5_context, krb5_principal *)); +#endif /* krb5_free.c */ KRB5_DLLIMP void KRB5_CALLCONV krb5_free_principal KRB5_PROTOTYPE((krb5_context, krb5_principal )); KRB5_DLLIMP void KRB5_CALLCONV krb5_free_authenticator KRB5_PROTOTYPE((krb5_context, krb5_authenticator FAR * )); +#if KRB5_PRIVATE KRB5_DLLIMP void KRB5_CALLCONV krb5_free_authenticator_contents KRB5_PROTOTYPE((krb5_context, krb5_authenticator FAR * )); +#endif KRB5_DLLIMP void KRB5_CALLCONV krb5_free_addresses KRB5_PROTOTYPE((krb5_context, krb5_address FAR * FAR * )); +#if KRB5_PRIVATE KRB5_DLLIMP void KRB5_CALLCONV krb5_free_address KRB5_PROTOTYPE((krb5_context, krb5_address FAR * )); +#endif KRB5_DLLIMP void KRB5_CALLCONV krb5_free_authdata KRB5_PROTOTYPE((krb5_context, krb5_authdata FAR * FAR * )); +#if KRB5_PRIVATE KRB5_DLLIMP void KRB5_CALLCONV krb5_free_enc_tkt_part KRB5_PROTOTYPE((krb5_context, krb5_enc_tkt_part FAR * )); +#endif KRB5_DLLIMP void KRB5_CALLCONV krb5_free_ticket KRB5_PROTOTYPE((krb5_context, krb5_ticket FAR * )); +#if KRB5_PRIVATE KRB5_DLLIMP void KRB5_CALLCONV krb5_free_tickets KRB5_PROTOTYPE((krb5_context, krb5_ticket FAR * FAR * )); KRB5_DLLIMP void KRB5_CALLCONV krb5_free_kdc_req @@ -1734,12 +1944,18 @@ KRB5_DLLIMP void KRB5_CALLCONV krb5_free_last_req KRB5_PROTOTYPE((krb5_context, krb5_last_req_entry FAR * FAR * )); KRB5_DLLIMP void KRB5_CALLCONV krb5_free_enc_kdc_rep_part KRB5_PROTOTYPE((krb5_context, krb5_enc_kdc_rep_part FAR * )); +#endif KRB5_DLLIMP void KRB5_CALLCONV krb5_free_error KRB5_PROTOTYPE((krb5_context, krb5_error FAR * )); +#if KRB5_PRIVATE KRB5_DLLIMP void KRB5_CALLCONV krb5_free_ap_req KRB5_PROTOTYPE((krb5_context, krb5_ap_req FAR * )); KRB5_DLLIMP void KRB5_CALLCONV krb5_free_ap_rep KRB5_PROTOTYPE((krb5_context, krb5_ap_rep FAR * )); +/* + * The following 3 fns were moved to k5-int.h on trunk, so are marked + * private here. + */ KRB5_DLLIMP void KRB5_CALLCONV krb5_free_safe KRB5_PROTOTYPE((krb5_context, krb5_safe FAR * )); KRB5_DLLIMP void KRB5_CALLCONV krb5_free_priv @@ -1748,12 +1964,15 @@ KRB5_DLLIMP void KRB5_CALLCONV krb5_free_priv_enc_part KRB5_PROTOTYPE((krb5_context, krb5_priv_enc_part FAR * )); KRB5_DLLIMP void KRB5_CALLCONV krb5_free_cred KRB5_PROTOTYPE((krb5_context, krb5_cred FAR *)); +#endif KRB5_DLLIMP void KRB5_CALLCONV krb5_free_creds KRB5_PROTOTYPE((krb5_context, krb5_creds FAR *)); KRB5_DLLIMP void KRB5_CALLCONV krb5_free_cred_contents KRB5_PROTOTYPE((krb5_context, krb5_creds FAR *)); +#if KRB5_PRIVATE KRB5_DLLIMP void KRB5_CALLCONV krb5_free_cred_enc_part KRB5_PROTOTYPE((krb5_context, krb5_cred_enc_part FAR *)); +#endif KRB5_DLLIMP void KRB5_CALLCONV krb5_free_checksum KRB5_PROTOTYPE((krb5_context, krb5_checksum FAR *)); KRB5_DLLIMP void KRB5_CALLCONV krb5_free_checksum_contents @@ -1762,16 +1981,20 @@ KRB5_DLLIMP void KRB5_CALLCONV krb5_free_keyblock KRB5_PROTOTYPE((krb5_context, krb5_keyblock FAR *)); KRB5_DLLIMP void KRB5_CALLCONV krb5_free_keyblock_contents KRB5_PROTOTYPE((krb5_context, krb5_keyblock FAR *)); +#if KRB5_PRIVATE KRB5_DLLIMP void KRB5_CALLCONV krb5_free_pa_data KRB5_PROTOTYPE((krb5_context, krb5_pa_data FAR * FAR *)); +#endif KRB5_DLLIMP void KRB5_CALLCONV krb5_free_ap_rep_enc_part KRB5_PROTOTYPE((krb5_context, krb5_ap_rep_enc_part FAR *)); +#if KRB5_PRIVATE KRB5_DLLIMP void KRB5_CALLCONV krb5_free_tkt_authent KRB5_PROTOTYPE((krb5_context, krb5_tkt_authent FAR *)); KRB5_DLLIMP void KRB5_CALLCONV krb5_free_pwd_data KRB5_PROTOTYPE((krb5_context, krb5_pwd_data FAR *)); KRB5_DLLIMP void KRB5_CALLCONV krb5_free_pwd_sequences KRB5_PROTOTYPE((krb5_context, passwd_phrase_element FAR * FAR *)); +#endif KRB5_DLLIMP void KRB5_CALLCONV krb5_free_data KRB5_PROTOTYPE((krb5_context, krb5_data FAR *)); KRB5_DLLIMP void KRB5_CALLCONV krb5_free_data_contents @@ -1799,6 +2022,9 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_get_default_realm KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_set_default_realm KRB5_PROTOTYPE((krb5_context, krb5_const char FAR * )); +KRB5_DLLIMP void KRB5_CALLCONV krb5_free_default_realm + KRB5_PROTOTYPE((krb5_context, + char FAR * )); KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_sname_to_principal KRB5_PROTOTYPE((krb5_context, krb5_const char FAR *, @@ -1811,6 +2037,7 @@ krb5_change_password int *result_code, krb5_data *result_code_string, krb5_data *result_string)); +#if KRB5_PRIVATE #ifndef macintosh krb5_error_code krb5_set_config_files KRB5_PROTOTYPE ((krb5_context, krb5_const char FAR * FAR *)); @@ -1822,11 +2049,13 @@ KRB5_DLLIMP void KRB5_CALLCONV krb5_free_config_files KRB5_PROTOTYPE((char **filenames)); #endif +#endif KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_get_profile KRB5_PROTOTYPE((krb5_context, profile_t *)); +#if KRB5_PRIVATE krb5_error_code krb5_send_tgs KRB5_PROTOTYPE((krb5_context, krb5_const krb5_flags, @@ -1839,7 +2068,9 @@ krb5_error_code krb5_send_tgs krb5_const krb5_data *, krb5_creds *, krb5_response * )); +#endif +#if KRB5_DEPRECATED KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_get_in_tkt KRB5_PROTOTYPE((krb5_context, krb5_const krb5_flags, @@ -1893,13 +2124,15 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_get_in_tkt_with_keytab krb5_ccache, krb5_creds FAR *, krb5_kdc_rep FAR * FAR * )); +#endif /* KRB5_DEPRECATED */ - +#if KRB5_PRIVATE krb5_error_code krb5_decode_kdc_rep KRB5_PROTOTYPE((krb5_context, krb5_data *, krb5_const krb5_keyblock *, krb5_kdc_rep ** )); +#endif KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_rd_req KRB5_PROTOTYPE((krb5_context, @@ -1910,6 +2143,7 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_rd_req krb5_flags FAR *, krb5_ticket FAR * FAR *)); +#if KRB5_PRIVATE krb5_error_code krb5_rd_req_decoded KRB5_PROTOTYPE((krb5_context, krb5_auth_context *, @@ -1927,6 +2161,7 @@ krb5_error_code krb5_rd_req_decoded_anyflag krb5_keytab, krb5_flags *, krb5_ticket **)); +#endif KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_kt_read_service_key KRB5_PROTOTYPE((krb5_context, @@ -1947,10 +2182,12 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_mk_priv krb5_const krb5_data FAR *, krb5_data FAR *, krb5_replay_data FAR *)); +#if KRB5_PRIVATE KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_cc_register KRB5_PROTOTYPE((krb5_context, krb5_cc_ops FAR *, krb5_boolean )); +#endif KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_sendauth KRB5_PROTOTYPE((krb5_context, @@ -1976,13 +2213,24 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_recvauth krb5_int32, krb5_keytab, krb5_ticket FAR * FAR *)); +KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_recvauth_version + KRB5_PROTOTYPE((krb5_context, + krb5_auth_context FAR *, + krb5_pointer, + krb5_principal, + krb5_int32, + krb5_keytab, + krb5_ticket FAR * FAR *, + krb5_data FAR *)); +#if KRB5_PRIVATE krb5_error_code krb5_walk_realm_tree KRB5_PROTOTYPE((krb5_context, krb5_const krb5_data *, krb5_const krb5_data *, krb5_principal **, int)); +#endif KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_mk_ncred KRB5_PROTOTYPE((krb5_context, @@ -2033,19 +2281,19 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_auth_con_getflags krb5_auth_context, krb5_int32 FAR *)); -krb5_error_code krb5_auth_con_setaddrs +krb5_error_code KRB5_CALLCONV_WRONG krb5_auth_con_setaddrs KRB5_PROTOTYPE((krb5_context, krb5_auth_context, krb5_address *, krb5_address *)); -krb5_error_code krb5_auth_con_getaddrs +krb5_error_code KRB5_CALLCONV krb5_auth_con_getaddrs KRB5_PROTOTYPE((krb5_context, krb5_auth_context, krb5_address **, krb5_address **)); -krb5_error_code krb5_auth_con_setports +krb5_error_code KRB5_CALLCONV krb5_auth_con_setports KRB5_PROTOTYPE((krb5_context, krb5_auth_context, krb5_address *, @@ -2066,6 +2314,7 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_auth_con_getlocalsubkey krb5_auth_context, krb5_keyblock FAR * FAR *)); +#if KRB5_PRIVATE KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_auth_con_set_req_cksumtype KRB5_PROTOTYPE((krb5_context, krb5_auth_context, @@ -2075,11 +2324,7 @@ krb5_error_code krb5_auth_con_set_safe_cksumtype KRB5_PROTOTYPE((krb5_context, krb5_auth_context, krb5_cksumtype)); - -krb5_error_code krb5_auth_con_getcksumtype - KRB5_PROTOTYPE((krb5_context, - krb5_auth_context, - krb5_cksumtype *)); +#endif KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_auth_con_getlocalseqnumber KRB5_PROTOTYPE((krb5_context, @@ -2091,10 +2336,13 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_auth_con_getremoteseqnumber krb5_auth_context, krb5_int32 FAR *)); -krb5_error_code krb5_auth_con_initivector +#if KRB5_DEPRECATED +krb5_error_code KRB5_CALLCONV krb5_auth_con_initivector KRB5_PROTOTYPE((krb5_context, krb5_auth_context)); +#endif +#if KRB5_PRIVATE krb5_error_code krb5_auth_con_setivector KRB5_PROTOTYPE((krb5_context, krb5_auth_context, @@ -2104,13 +2352,14 @@ krb5_error_code krb5_auth_con_getivector KRB5_PROTOTYPE((krb5_context, krb5_auth_context, krb5_pointer *)); +#endif KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_auth_con_setrcache KRB5_PROTOTYPE((krb5_context, krb5_auth_context, krb5_rcache)); -krb5_error_code krb5_auth_con_getrcache +krb5_error_code KRB5_CALLCONV_WRONG krb5_auth_con_getrcache KRB5_PROTOTYPE((krb5_context, krb5_auth_context, krb5_rcache *)); @@ -2141,7 +2390,7 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_read_password const char FAR *, char FAR *, int FAR * )); -krb5_error_code krb5_aname_to_localname +krb5_error_code KRB5_CALLCONV krb5_aname_to_localname KRB5_PROTOTYPE((krb5_context, krb5_const_principal, const int, @@ -2153,10 +2402,12 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_get_host_realm KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_free_host_realm KRB5_PROTOTYPE((krb5_context, char FAR * const FAR * )); +#if KRB5_PRIVATE KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_get_realm_domain KRB5_PROTOTYPE((krb5_context, const char *, char ** )); +#endif KRB5_DLLIMP krb5_boolean KRB5_CALLCONV krb5_kuserok KRB5_PROTOTYPE((krb5_context, krb5_principal, const char *)); @@ -2164,6 +2415,7 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_auth_con_genaddrs KRB5_PROTOTYPE((krb5_context, krb5_auth_context, int, int)); +#if KRB5_PRIVATE krb5_error_code krb5_gen_portaddr KRB5_PROTOTYPE((krb5_context, const krb5_address *, @@ -2175,8 +2427,10 @@ krb5_error_code krb5_make_fulladdr krb5_address *, krb5_address *)); +#if KRB5_PRIVATE /* In k5-int.h on trunk */ krb5_error_code krb5_os_hostaddr KRB5_PROTOTYPE((krb5_context, const char *, krb5_address ***)); +#endif krb5_error_code krb5_set_real_time KRB5_PROTOTYPE((krb5_context, krb5_int32, krb5_int32)); @@ -2184,10 +2438,13 @@ krb5_error_code krb5_set_debugging_time KRB5_PROTOTYPE((krb5_context, krb5_int32, krb5_int32)); krb5_error_code krb5_use_natural_time KRB5_PROTOTYPE((krb5_context)); -krb5_error_code krb5_get_time_offsets +#endif +krb5_error_code KRB5_CALLCONV krb5_get_time_offsets KRB5_PROTOTYPE((krb5_context, krb5_int32 *, krb5_int32 *)); +#if KRB5_PRIVATE krb5_error_code krb5_set_time_offsets KRB5_PROTOTYPE((krb5_context, krb5_int32, krb5_int32)); +#endif /* str_conv.c */ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_string_to_enctype @@ -2384,6 +2641,25 @@ krb5_decode_ticket KRB5_PROTOTYPE((const krb5_data *code, krb5_ticket **rep)); +KRB5_DLLIMP void KRB5_CALLCONV +krb5_appdefault_string +KRB5_PROTOTYPE((krb5_context context, + const char *appname, + const krb5_data *realm, + const char *option, + const char *default_value, + char ** ret_value)); + +KRB5_DLLIMP void KRB5_CALLCONV +krb5_appdefault_boolean +KRB5_PROTOTYPE((krb5_context context, + const char *appname, + const krb5_data *realm, + const char *option, + int default_value, + int *ret_value)); + +#if KRB5_PRIVATE /* * The realm iterator functions */ @@ -2399,6 +2675,7 @@ KRB5_DLLIMP void KRB5_CALLCONV krb5_realm_iterator_free KRB5_DLLIMP void KRB5_CALLCONV krb5_free_realm_string KRB5_PROTOTYPE((krb5_context context, char *str)); +#endif /* * Prompter enhancements @@ -2414,14 +2691,15 @@ typedef krb5_int32 krb5_prompt_type; KRB5_DLLIMP krb5_prompt_type* KRB5_CALLCONV krb5_get_prompt_types KRB5_PROTOTYPE((krb5_context context)); -#ifdef __cplusplus -} +#if TARGET_OS_MAC + #if defined(__MWERKS__) + #pragma enumsalwaysint reset + #pragma import reset + #endif + #pragma options align=reset #endif -/* Macintoh CFM-68K magic incantation */ -#if defined(macintosh) && defined(__CFM68K__) && !defined(__USING_STATIC_LIBS__) -#pragma import reset -#endif +KRB5INT_END_DECLS #endif /* KRB5_GENERAL__ */ diff --git a/src/include/krb5/ChangeLog b/src/include/krb5/ChangeLog index 6fc5cc3..e0bd30e 100644 --- a/src/include/krb5/ChangeLog +++ b/src/include/krb5/ChangeLog @@ -1,3 +1,28 @@ +2001-10-29 Miro Jurisic <meeroh@mit.edu> + * pullup from krb5-1-2 branch after krb5-1-2-2-bp + * macsock.h: Updated location of Utilities.h and Sockets headers + * macsock.h: #include <KerberosSupport/ErrorLib.h> + +2001-09-25 Ken Raeburn <raeburn@mit.edu> + + * adm.h (struct __krb5_realm_params): Added fields + realm_reject_bad_transit, realm_reject_bad_transit_valid; deleted + field realm_filler. + +2000-10-02 Alexandra Ellwood <lxs@mit.edu> + + * kdb.h: added Mac OS X #define (__MACH__) -- we're still a kerberos client + +2000-5-18 Alexandra Ellwood <lxs@mit.edu> + + * macsock.h: local_addr_fallback_kludge defined to 0 again... fixed gethostname + +2000-5-9 Alexandra Ellwood <lxs@mit.edu> + + * macsock.h: local_addr_fallback_kludge now defined to magic gethostaddr function + in the Sockets Library, which does exactly what we want if the search domain is not + specified. + 1998-11-22 Miro Jurisic <meeroh@.mit.edu> * macsock.h: MacOS: only #define MACHOSTNAMELEN when not diff --git a/src/include/krb5/adm.h b/src/include/krb5/adm.h index b3a2b6a..820f652 100644 --- a/src/include/krb5/adm.h +++ b/src/include/krb5/adm.h @@ -1,7 +1,7 @@ /* * include/krb5/adm.h * - * Copyright 1995 by the Massachusetts Institute of Technology. + * Copyright 1995,2001 by the Massachusetts Institute of Technology. * All Rights Reserved. * * Export of this software from the United States of America may @@ -208,13 +208,14 @@ typedef struct __krb5_realm_params { krb5_timestamp realm_expiration; krb5_flags realm_flags; krb5_key_salt_tuple *realm_keysalts; + unsigned int realm_reject_bad_transit:1; unsigned int realm_kadmind_port_valid:1; unsigned int realm_enctype_valid:1; unsigned int realm_max_life_valid:1; unsigned int realm_max_rlife_valid:1; unsigned int realm_expiration_valid:1; unsigned int realm_flags_valid:1; - unsigned int realm_filler:7; + unsigned int realm_reject_bad_transit_valid:1; krb5_int32 realm_num_keysalts; } krb5_realm_params; #endif /* KRB5_ADM_H__ */ diff --git a/src/include/krb5/kdb.h b/src/include/krb5/kdb.h index 8316efe..60a08f4 100644 --- a/src/include/krb5/kdb.h +++ b/src/include/krb5/kdb.h @@ -84,7 +84,7 @@ #define KRB5_KDB_CREATE_BTREE 0x00000001 #define KRB5_KDB_CREATE_HASH 0x00000002 -#if !defined(macintosh) && !defined(_MSDOS) && !defined(_WIN32) +#if !defined(macintosh) && !defined(_MSDOS) && !defined(_WIN32) && !defined(__MACH__) /* * Note --- these structures cannot be modified without changing the diff --git a/src/include/krb5/macsock.h b/src/include/krb5/macsock.h index 06b103a..ecc2375 100644 --- a/src/include/krb5/macsock.h +++ b/src/include/krb5/macsock.h @@ -22,9 +22,9 @@ #ifndef macsock_h #define macsock_h -#include <Sockets.h> -#include <ErrorLib.h> -#include <netdb.h> +#include <KerberosSupport/Sockets.h> +#include <KerberosSupport/ErrorLib.h> +#include <KerberosSupport/netdb.h> /* Handle ANSI C versus traditional C */ #ifndef __STDC__ @@ -93,7 +93,7 @@ typedef int SOCKET; #define SOCKET_ERRNO (GetMITLibError()) #define SOCKET_SET_ERRNO(x) (SetMITLibError(x)) -#define local_addr_fallback_kludge() (0) +#define local_addr_fallback_kludge() 0 #endif /* macsock_h */ diff --git a/src/include/krb5/stock/ChangeLog b/src/include/krb5/stock/ChangeLog index 60e3d30..b2db75f 100644 --- a/src/include/krb5/stock/ChangeLog +++ b/src/include/krb5/stock/ChangeLog @@ -1,3 +1,7 @@ +2002-05-16 Alexandra Ellwood <lxs@mit.edu> + * osconf.h (DEFAULT_PROFILE_PATH): Conditionalized for Mac OS X + to look in Mac OS X Preferences file locations. + 1999-09-20 Ken Raeburn <raeburn@mit.edu> * osconf.h (KPASSWD_PORTNAME): Define. diff --git a/src/include/krb5/stock/osconf.h b/src/include/krb5/stock/osconf.h index 452d9c6..bfe39c3 100644 --- a/src/include/krb5/stock/osconf.h +++ b/src/include/krb5/stock/osconf.h @@ -43,7 +43,11 @@ #define DEFAULT_LNAME_FILENAME "/aname" #define DEFAULT_KEYTAB_NAME "FILE:%s\\krb5kt" #else /* !_WINDOWS */ +#if TARGET_OS_MAC +#define DEFAULT_PROFILE_PATH "/Library/Preferences/edu.mit.Kerberos:~/Library/Preferences/edu.mit.Kerberos" +#else #define DEFAULT_PROFILE_PATH "/etc/krb5.conf:@SYSCONFDIR/krb5.conf" +#endif #define DEFAULT_KEYTAB_NAME "FILE:/etc/krb5.keytab" #define DEFAULT_LNAME_FILENAME "@PREFIX/lib/krb5.aname" #endif /* _WINDOWS */ diff --git a/src/include/win-mac.h b/src/include/win-mac.h index e2d37e0..27c5329 100644 --- a/src/include/win-mac.h +++ b/src/include/win-mac.h @@ -1,4 +1,8 @@ /* + * This file is now only used on Windows + */ + +/* * type functions split out of here to make things look nicer in the * various include files which need these definitions, as well as in * the util/ directories. @@ -7,10 +11,7 @@ #ifndef _KRB5_WIN_MAC_H #define _KRB5_WIN_MAC_H -#if (defined(_MSDOS) || defined(_WIN32)) -/* - * Machine-type definitions: PC Clone 386 running Microloss Windows - */ +#ifdef _WIN32 #define ID_READ_PWD_DIALOG 10000 #define ID_READ_PWD_PROMPT 10001 @@ -22,60 +23,27 @@ #define APSTUDIO_HIDDEN_SYMBOLS #include <windows.h> -#else - -#if defined(_MSDOS) - /* Windows 16 specific */ -#define BITS16 -#define SIZEOF_INT 2 -#define SIZEOF_SHORT 2 -#define SIZEOF_LONG 4 - -#ifndef KRB5_CALLCONV -#define KRB5_CALLCONV __far __export __pascal -#define KRB5_CALLCONV_C __far __export __cdecl -#define KRB5_EXPORTVAR __far __export -#define KRB5_DLLIMP -#endif /* !KRB5_CALLCONV */ - -#include <windows.h> - -/* - * The following defines are needed to make <windows.h> work - * in stdc mode (/Za flag). Winsock.h needs <windows.h>. - */ -#ifndef FAR -#define FAR __far -#define NEAR __near -#endif - -#ifndef _far -#define _far __far -#define _near __near -#define _pascal __pascal -#define _cdecl __cdecl -#define _huge __huge -#endif +#else /* ! RES_ONLY */ -#else - /* Windows 32 specific */ +/* Windows 32 specific */ #define SIZEOF_INT 4 #define SIZEOF_SHORT 2 #define SIZEOF_LONG 4 -#include <windows.h> /* always include this here, to get correct FAR and NEAR */ +/* always include this here, to get correct FAR and NEAR */ +#include <windows.h> #define HAVE_LABS #ifndef KRB5_CALLCONV -# ifdef _MSC_VER +# ifdef _MSC_VER # ifdef KRB5_DLL_FILE -# define KRB5_DLLIMP __declspec(dllexport) +# define KRB5_DLLIMP # else # define KRB5_DLLIMP __declspec(dllimport) # endif # ifdef GSS_DLL_FILE -# define GSS_DLLIMP __declspec(dllexport) +# define GSS_DLLIMP # else # define GSS_DLLIMP __declspec(dllimport) # endif @@ -85,11 +53,18 @@ # endif # define KRB5_CALLCONV __stdcall # define KRB5_CALLCONV_C __cdecl + +/* + * Use this to mark an incorrect calling convention that has been + * "immortalized" because it was incorrectly exported in a previous + * release. + */ + +# define KRB5_CALLCONV_WRONG KRB5_CALLCONV_C + # define KRB5_EXPORTVAR #endif /* !KRB5_CALLCONV */ -#endif /* _MSDOS */ - #ifndef KRB5_SYSTYPES__ #define KRB5_SYSTYPES__ #include <sys/types.h> @@ -180,31 +155,6 @@ typedef unsigned char u_char; #include <fcntl.h> #include <io.h> #include <process.h> -#define THREEPARAMOPEN(x,y,z) open(x,y,z) -#ifndef _WIN32 -#define O_RDONLY _O_RDONLY -#define O_WRONLY _O_WRONLY -#define O_RDWR _O_RDWR -#define O_APPEND _O_APPEND -#define O_CREAT _O_CREAT -#define O_TRUNC _O_TRUNC -#define O_EXCL _O_EXCL -#define O_TEXT _O_TEXT -#define O_BINARY _O_BINARY -#define O_NOINHERIT _O_NOINHERIT -#define stat _stat -#define unlink _unlink -#define lseek _lseek -#define write _write -#define open _open -#define close _close -#define read _read -#define fstat _fstat -#define mktemp _mktemp -#define dup _dup - -#define getpid _getpid -#endif #ifdef NEED_SYSERROR /* Only needed by util/et/error_message.c but let's keep the source clean */ @@ -222,91 +172,26 @@ HINSTANCE get_lib_instance(void); #endif /* !RES_ONLY */ -#endif /* _MSDOS || _WIN32 */ +#endif /* _WIN32 */ -#ifdef macintosh +#define THREEPARAMOPEN(x,y,z) open(x,y,z) +#ifndef KRB5_CALLCONV #define KRB5_CALLCONV -#define KRB5_CALLCONV_C -#define KRB5_DLLIMP -#define GSS_DLLIMP -#ifndef FAR -#define FAR -#endif -#ifndef NEAR -#define NEAR -#endif - -#define SIZEOF_INT 4 -#define SIZEOF_SHORT 2 -#define HAVE_SRAND -#define NO_PASSWORD -#define HAVE_LABS -/*#define ENOMEM 12*/ -#include <unix.h> -#include <ctype.h> - -#ifdef NEED_LOWLEVEL_IO -#include <fcntl.h> #endif -/* - * Which encryption routines libcrypto will provide is controlled by - * mac/libraries/KerberosHeaders.h. - */ - -/* there is no <stat.h> for mpw */ -#ifndef __MWERKS__ -typedef unsigned long size_t; -typedef unsigned long mode_t; -typedef unsigned long ino_t; -typedef unsigned long dev_t; -typedef short nlink_t; -typedef unsigned long uid_t; -typedef unsigned long gid_t; -typedef long off_t; - -struct stat -{ - mode_t st_mode; /* File mode; see #define's below */ - ino_t st_ino; /* File serial number */ - dev_t st_dev; /* ID of device containing this file */ - nlink_t st_nlink; /* Number of links */ - uid_t st_uid; /* User ID of the file's owner */ - gid_t st_gid; /* Group ID of the file's group */ - dev_t st_rdev; /* Device type */ - off_t st_size; /* File size in bytes */ - unsigned long st_atime; /* Time of last access */ - unsigned long st_mtime; /* Time of last data modification */ - unsigned long st_ctime; /* Time of last file status change */ - long st_blksize; /* Optimal blocksize */ - long st_blocks; /* blocks allocated for file */ -}; - -int stat(const char *path, struct stat *buf); +#ifndef KRB5_CALLCONV_C +#define KRB5_CALLCONV_C #endif -int fstat(int fildes, struct stat *buf); - -#define EFBIG 1000 - -#define NOFCHMOD 1 -#define NOCHMOD 1 -#define _MACSOCKAPI_ - -#define THREEPARAMOPEN(x,y,z) open(x,y) -#else /* macintosh */ -#define THREEPARAMOPEN(x,y,z) open(x,y,z) -#endif /* macintosh */ - -#ifndef KRB5_CALLCONV -#define KRB5_CALLCONV -#define KRB5_CALLCONV_C +#ifndef KRB5_DLLIMP #define KRB5_DLLIMP #endif + #ifndef FAR #define FAR #endif + #ifndef NEAR #define NEAR #endif |