aboutsummaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/ChangeLog165
-rw-r--r--src/include/k5-int.h101
-rw-r--r--src/include/kerberosIV/ChangeLog15
-rw-r--r--src/include/kerberosIV/krb.h6
-rw-r--r--src/include/krb5.hin376
-rw-r--r--src/include/krb5/ChangeLog25
-rw-r--r--src/include/krb5/adm.h5
-rw-r--r--src/include/krb5/kdb.h2
-rw-r--r--src/include/krb5/macsock.h8
-rw-r--r--src/include/krb5/stock/ChangeLog4
-rw-r--r--src/include/krb5/stock/osconf.h4
-rw-r--r--src/include/win-mac.h173
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