blob: 2d8090adbf62921dc1fe34893efeaad342f185bf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
|
/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
/*
* 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.
*/
#ifndef _KRB5_WIN_MAC_H
#define _KRB5_WIN_MAC_H
#ifdef _WIN32
#define ID_READ_PWD_DIALOG 10000
#define ID_READ_PWD_PROMPT 10001
#define ID_READ_PWD_PROMPT2 10002
#define ID_READ_PWD_PWD 10003
#ifdef RES_ONLY
#define APSTUDIO_HIDDEN_SYMBOLS
#include <windows.h>
#else /* ! RES_ONLY */
#include <stdlib.h>
#ifdef DEBUG
#include <crtdbg.h>
#endif
/* To ensure backward compatibility of the ABI use 32-bit time_t on
* 32-bit Windows.
*/
#ifdef _KRB5_INT_H
#ifdef KRB5_GENERAL__
#error krb5.h included before k5-int.h
#endif /* KRB5_GENERAL__ */
#if _INTEGRAL_MAX_BITS >= 64 && _MSC_VER >= 1400 && !defined(_WIN64) && !defined(_USE_32BIT_TIME_T)
#if defined(_TIME_T_DEFINED) || defined(_INC_IO) || defined(_INC_TIME) || defined(_INC_WCHAR)
#error time_t has been defined as a 64-bit integer which is incompatible with Kerberos on this platform.
#endif /* _TIME_T_DEFINED */
#define _USE_32BIT_TIME_T
#endif
#endif
#define SIZEOF_INT 4
#define SIZEOF_SHORT 2
#define SIZEOF_LONG 4
#include <windows.h>
#include <limits.h>
#ifndef SIZE_MAX /* in case Microsoft defines max size of size_t */
#ifdef MAX_SIZE /* Microsoft defines MAX_SIZE as max size of size_t */
#define SIZE_MAX MAX_SIZE
#else
#define SIZE_MAX UINT_MAX
#endif
#endif
#ifndef KRB5_CALLCONV
# 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
#endif /* !KRB5_CALLCONV */
#ifndef KRB5_SYSTYPES__
#define KRB5_SYSTYPES__
#include <sys/types.h>
typedef unsigned long u_long; /* Not part of sys/types.h on the pc */
typedef unsigned int u_int;
typedef unsigned short u_short;
typedef unsigned char u_char;
typedef unsigned short uint16_t;
typedef short int16_t;
typedef unsigned int uint32_t;
typedef int int32_t;
#if _INTEGRAL_MAX_BITS >= 64
typedef unsigned __int64 uint64_t;
typedef __int64 int64_t;
#endif
#ifndef SSIZE_T_DEFINED
#ifdef ssize_t
#undef ssize_t
#endif
#ifdef _WIN64
typedef __int64 ssize_t;
#else
typedef _W64 int ssize_t;
#endif
#define SSIZE_T_DEFINED
#endif
#endif /* KRB5_SYSTYPES__ */
#define MAXHOSTNAMELEN 512
#ifndef MAXPATHLEN
#define MAXPATHLEN 256 /* Also for Windows temp files */
#endif
#ifdef KRB5_PRIVATE
#define HAVE_NETINET_IN_H
#define MSDOS_FILESYSTEM
#define HAVE_STRING_H
#define HAVE_SRAND
#define HAVE_ERRNO
#define HAVE_STRDUP
#define HAVE_GETADDRINFO
#define HAVE_GETNAMEINFO
#define NO_USERID
#define NO_PASSWORD
#define HAVE_STRERROR
#define SYS_ERRLIST_DECLARED
/* Visual Studio 2012 errors out when we macroize keywords in C++ mode */
#ifndef __cplusplus
#define inline __inline
#endif
#define NEED_INSIXADDR_ANY
#define ENABLE_THREADS
#endif
#define WM_KERBEROS5_CHANGED "Kerberos5 Changed"
#ifdef KRB4
#define WM_KERBEROS_CHANGED "Kerberos Changed"
#endif
/* Kerberos Windows initialization file */
#define KERBEROS_INI "kerberos.ini"
#ifdef CYGNUS
#define KERBEROS_HLP "kerbnet.hlp"
#else
#define KERBEROS_HLP "krb5clnt.hlp"
#endif
#define INI_DEFAULTS "Defaults"
#define INI_USER "User" /* Default user */
#define INI_INSTANCE "Instance" /* Default instance */
#define INI_REALM "Realm" /* Default realm */
#define INI_POSITION "Position"
#define INI_OPTIONS "Options"
#define INI_DURATION "Duration" /* Ticket duration in minutes */
#define INI_EXPIRATION "Expiration" /* Action on expiration (alert or beep) */
#define INI_ALERT "Alert"
#define INI_BEEP "Beep"
#define INI_FILES "Files"
#ifdef KRB4
#define INI_KRB_CONF "krb.conf" /* Location of krb.conf file */
#define DEF_KRB_CONF "krb.conf" /* Default name for krb.conf file */
#else
#define INI_KRB5_CONF "krb5.ini" /* From k5-config.h */
#define INI_KRB_CONF INI_KRB5_CONF /* Location of krb.conf file */
#define DEF_KRB_CONF INI_KRB5_CONF /* Default name for krb.conf file */
#define INI_TICKETOPTS "TicketOptions" /* Ticket options */
#define INI_FORWARDABLE "Forwardable" /* get forwardable tickets */
#define INI_KRB_CCACHE "krb5cc" /* From k5-config.h */
#endif
#define INI_KRB_REALMS "krb.realms" /* Location of krb.realms file */
#define DEF_KRB_REALMS "krb.realms" /* Default name for krb.realms file */
#define INI_RECENT_LOGINS "Recent Logins"
#define INI_LOGIN "Login"
#ifdef KRB5_PRIVATE
#define HAS_VOID_TYPE
#define HAVE_STDARG_H
#define HAVE_SYS_TYPES_H
#define HAVE_STDLIB_H
#endif
/* This controls which encryption routines libcrypto will provide */
#define PROVIDE_DES_CBC_MD5
#define PROVIDE_DES_CBC_CRC
#define PROVIDE_DES_CBC_RAW
#define PROVIDE_DES_CBC_CKSUM
#define PROVIDE_CRC32
#define PROVIDE_RSA_MD4
#define PROVIDE_RSA_MD5
/* #define PROVIDE_DES3_CBC_SHA */
/* #define PROVIDE_DES3_CBC_RAW */
/* #define PROVIDE_NIST_SHA */
/* Ugly. Microsoft, in stdc mode, doesn't support the low-level i/o
* routines directly. Rather, they only export the _<function> version.
* The following defines works around this problem.
*/
#include <sys\types.h>
#include <sys\stat.h>
#include <fcntl.h>
#include <io.h>
#include <process.h>
#include <wincrypt.h>
#ifdef NEED_SYSERROR
/* Only needed by util/et/error_message.c but let's keep the source clean */
#define sys_nerr _sys_nerr
#define sys_errlist _sys_errlist
#endif
/*
* Functions with slightly different names on the PC
*/
#ifndef strcasecmp
#define strcasecmp _stricmp
#endif
#ifndef strncasecmp
#define strncasecmp _strnicmp
#endif
/* VS2005 has deprecated strdup */
#ifndef strdup
#define strdup _strdup
#endif
/* Windows has its own name for reentrant strtok. */
#define strtok_r strtok_s
HINSTANCE get_lib_instance(void);
#define GETSOCKNAME_ARG2_TYPE struct sockaddr
#define GETSOCKNAME_ARG3_TYPE size_t
#define GETPEERNAME_ARG2_TYPE GETSOCKNAME_ARG2_TYPE
#define GETPEERNAME_ARG3_TYPE GETSOCKNAME_ARG3_TYPE
#endif /* !RES_ONLY */
#endif /* _WIN32 */
#define THREEPARAMOPEN(x,y,z) open(x,y,z)
#define DEFKTNAME "FILE:%{WINDOWS}\\krb5kt"
#define DEFCKTNAME "FILE:%{WINDOWS}\\krb5clientkt"
#ifndef KRB5_CALLCONV
#define KRB5_CALLCONV
#endif
#ifndef KRB5_CALLCONV_C
#define KRB5_CALLCONV_C
#endif
#endif /* _KRB5_WIN_MAC_H */
|