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