kerberos 0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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