kerberos 0.2

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