1 /* This is a generated file */ 2 #ifndef __hdb_protos_h__ 3 #define __hdb_protos_h__ 4 #ifndef DOXY 5 6 #include <stdarg.h> 7 8 #ifdef __cplusplus 9 extern "C" { 10 #endif 11 12 krb5_error_code 13 entry2mit_string_int ( 14 krb5_context /*context*/, 15 krb5_storage */*sp*/, 16 hdb_entry */*ent*/); 17 18 /** 19 * This function adds an HDB entry's current keyset to the entry's key 20 * history. The current keyset is left alone; the caller is responsible 21 * for freeing it. 22 * 23 * @param context Context 24 * @param entry HDB entry 25 */ 26 27 krb5_error_code 28 hdb_add_current_keys_to_history ( 29 krb5_context /*context*/, 30 hdb_entry */*entry*/); 31 32 /** 33 * This function adds a key to an HDB entry's key history. 34 * 35 * @param context Context 36 * @param entry HDB entry 37 * @param kvno Key version number of the key to add to the history 38 * @param key The Key to add 39 */ 40 41 krb5_error_code 42 hdb_add_history_key ( 43 krb5_context /*context*/, 44 hdb_entry */*entry*/, 45 krb5_kvno /*kvno*/, 46 Key */*key*/); 47 48 krb5_error_code 49 hdb_add_master_key ( 50 krb5_context /*context*/, 51 krb5_keyblock */*key*/, 52 hdb_master_key */*inout*/); 53 54 /** 55 * This function changes an hdb_entry's kvno, swapping the current key 56 * set with a historical keyset. If no historical keys are found then 57 * an error is returned (the caller can still set entry->kvno directly). 58 * 59 * @param context krb5_context 60 * @param new_kvno New kvno for the entry 61 * @param entry hdb_entry to modify 62 */ 63 64 krb5_error_code 65 hdb_change_kvno ( 66 krb5_context /*context*/, 67 krb5_kvno /*new_kvno*/, 68 hdb_entry */*entry*/); 69 70 krb5_error_code 71 hdb_check_db_format ( 72 krb5_context /*context*/, 73 HDB */*db*/); 74 75 krb5_error_code 76 hdb_clear_extension ( 77 krb5_context /*context*/, 78 hdb_entry */*entry*/, 79 int /*type*/); 80 81 krb5_error_code 82 hdb_clear_master_key ( 83 krb5_context /*context*/, 84 HDB */*db*/); 85 86 /** 87 * Create a handle for a Kerberos database 88 * 89 * Create a handle for a Kerberos database backend specified by a 90 * filename. Doesn't create a file if its doesn't exists, you have to 91 * use O_CREAT to tell the backend to create the file. 92 */ 93 94 krb5_error_code 95 hdb_create ( 96 krb5_context /*context*/, 97 HDB **/*db*/, 98 const char */*filename*/); 99 100 krb5_error_code 101 hdb_db1_create ( 102 krb5_context /*context*/, 103 HDB **/*db*/, 104 const char */*filename*/); 105 106 krb5_error_code 107 hdb_db3_create ( 108 krb5_context /*context*/, 109 HDB **/*db*/, 110 const char */*filename*/); 111 112 /** 113 * Return the directory where the hdb database resides. 114 * 115 * @param context Kerberos 5 context. 116 * 117 * @return string pointing to directory. 118 */ 119 120 const char * 121 hdb_db_dir (krb5_context /*context*/); 122 123 const char * 124 hdb_dbinfo_get_acl_file ( 125 krb5_context /*context*/, 126 struct hdb_dbinfo */*dbp*/); 127 128 const krb5_config_binding * 129 hdb_dbinfo_get_binding ( 130 krb5_context /*context*/, 131 struct hdb_dbinfo */*dbp*/); 132 133 const char * 134 hdb_dbinfo_get_dbname ( 135 krb5_context /*context*/, 136 struct hdb_dbinfo */*dbp*/); 137 138 const char * 139 hdb_dbinfo_get_label ( 140 krb5_context /*context*/, 141 struct hdb_dbinfo */*dbp*/); 142 143 const char * 144 hdb_dbinfo_get_log_file ( 145 krb5_context /*context*/, 146 struct hdb_dbinfo */*dbp*/); 147 148 const char * 149 hdb_dbinfo_get_mkey_file ( 150 krb5_context /*context*/, 151 struct hdb_dbinfo */*dbp*/); 152 153 struct hdb_dbinfo * 154 hdb_dbinfo_get_next ( 155 struct hdb_dbinfo */*dbp*/, 156 struct hdb_dbinfo */*dbprevp*/); 157 158 const char * 159 hdb_dbinfo_get_realm ( 160 krb5_context /*context*/, 161 struct hdb_dbinfo */*dbp*/); 162 163 /** 164 * Return the default hdb database resides. 165 * 166 * @param context Kerberos 5 context. 167 * 168 * @return string pointing to directory. 169 */ 170 171 const char * 172 hdb_default_db (krb5_context /*context*/); 173 174 krb5_error_code 175 hdb_enctype2key ( 176 krb5_context /*context*/, 177 hdb_entry */*e*/, 178 const Keys */*keyset*/, 179 krb5_enctype /*enctype*/, 180 Key **/*key*/); 181 182 krb5_error_code 183 hdb_entry2string ( 184 krb5_context /*context*/, 185 hdb_entry */*ent*/, 186 char **/*str*/); 187 188 int 189 hdb_entry2value ( 190 krb5_context /*context*/, 191 const hdb_entry */*ent*/, 192 krb5_data */*value*/); 193 194 int 195 hdb_entry_alias2value ( 196 krb5_context /*context*/, 197 const hdb_entry_alias */*alias*/, 198 krb5_data */*value*/); 199 200 krb5_error_code 201 hdb_entry_check_mandatory ( 202 krb5_context /*context*/, 203 const hdb_entry */*ent*/); 204 205 krb5_error_code 206 hdb_entry_clear_kvno_diff_clnt ( 207 krb5_context /*context*/, 208 hdb_entry */*entry*/); 209 210 krb5_error_code 211 hdb_entry_clear_kvno_diff_svc ( 212 krb5_context /*context*/, 213 hdb_entry */*entry*/); 214 215 int 216 hdb_entry_clear_password ( 217 krb5_context /*context*/, 218 hdb_entry */*entry*/); 219 220 krb5_error_code 221 hdb_entry_get_ConstrainedDelegACL ( 222 const hdb_entry */*entry*/, 223 const HDB_Ext_Constrained_delegation_acl **/*a*/); 224 225 krb5_error_code 226 hdb_entry_get_aliases ( 227 const hdb_entry */*entry*/, 228 const HDB_Ext_Aliases **/*a*/); 229 230 unsigned int 231 hdb_entry_get_kvno_diff_clnt (const hdb_entry */*entry*/); 232 233 unsigned int 234 hdb_entry_get_kvno_diff_svc (const hdb_entry */*entry*/); 235 236 int 237 hdb_entry_get_password ( 238 krb5_context /*context*/, 239 HDB */*db*/, 240 const hdb_entry */*entry*/, 241 char **/*p*/); 242 243 krb5_error_code 244 hdb_entry_get_pkinit_acl ( 245 const hdb_entry */*entry*/, 246 const HDB_Ext_PKINIT_acl **/*a*/); 247 248 krb5_error_code 249 hdb_entry_get_pkinit_cert ( 250 const hdb_entry */*entry*/, 251 const HDB_Ext_PKINIT_cert **/*a*/); 252 253 krb5_error_code 254 hdb_entry_get_pkinit_hash ( 255 const hdb_entry */*entry*/, 256 const HDB_Ext_PKINIT_hash **/*a*/); 257 258 krb5_error_code 259 hdb_entry_get_pw_change_time ( 260 const hdb_entry */*entry*/, 261 time_t */*t*/); 262 263 krb5_error_code 264 hdb_entry_set_kvno_diff_clnt ( 265 krb5_context /*context*/, 266 hdb_entry */*entry*/, 267 unsigned int /*diff*/); 268 269 krb5_error_code 270 hdb_entry_set_kvno_diff_svc ( 271 krb5_context /*context*/, 272 hdb_entry */*entry*/, 273 unsigned int /*diff*/); 274 275 int 276 hdb_entry_set_password ( 277 krb5_context /*context*/, 278 HDB */*db*/, 279 hdb_entry */*entry*/, 280 const char */*p*/); 281 282 krb5_error_code 283 hdb_entry_set_pw_change_time ( 284 krb5_context /*context*/, 285 hdb_entry */*entry*/, 286 time_t /*t*/); 287 288 HDB_extension * 289 hdb_find_extension ( 290 const hdb_entry */*entry*/, 291 int /*type*/); 292 293 krb5_error_code 294 hdb_foreach ( 295 krb5_context /*context*/, 296 HDB */*db*/, 297 unsigned /*flags*/, 298 hdb_foreach_func_t /*func*/, 299 void */*data*/); 300 301 void 302 hdb_free_dbinfo ( 303 krb5_context /*context*/, 304 struct hdb_dbinfo **/*dbp*/); 305 306 void 307 hdb_free_entry ( 308 krb5_context /*context*/, 309 hdb_entry_ex */*ent*/); 310 311 void 312 hdb_free_key (Key */*key*/); 313 314 void 315 hdb_free_keys ( 316 krb5_context /*context*/, 317 int /*len*/, 318 Key */*keys*/); 319 320 void 321 hdb_free_master_key ( 322 krb5_context /*context*/, 323 hdb_master_key /*mkey*/); 324 325 krb5_error_code 326 hdb_generate_key_set ( 327 krb5_context /*context*/, 328 krb5_principal /*principal*/, 329 krb5_key_salt_tuple */*ks_tuple*/, 330 int /*n_ks_tuple*/, 331 Key **/*ret_key_set*/, 332 size_t */*nkeyset*/, 333 int /*no_salt*/); 334 335 krb5_error_code 336 hdb_generate_key_set_password ( 337 krb5_context /*context*/, 338 krb5_principal /*principal*/, 339 const char */*password*/, 340 krb5_key_salt_tuple */*ks_tuple*/, 341 int /*n_ks_tuple*/, 342 Key **/*keys*/, 343 size_t */*num_keys*/); 344 345 int 346 hdb_get_dbinfo ( 347 krb5_context /*context*/, 348 struct hdb_dbinfo **/*dbp*/); 349 350 krb5_error_code 351 hdb_init_db ( 352 krb5_context /*context*/, 353 HDB */*db*/); 354 355 int 356 hdb_key2principal ( 357 krb5_context /*context*/, 358 krb5_data */*key*/, 359 krb5_principal /*p*/); 360 361 krb5_error_code 362 hdb_keytab_create ( 363 krb5_context /*context*/, 364 HDB ** /*db*/, 365 const char */*arg*/); 366 367 const Keys * 368 hdb_kvno2keys ( 369 krb5_context /*context*/, 370 const hdb_entry */*e*/, 371 krb5_kvno /*kvno*/); 372 373 krb5_error_code 374 hdb_ldap_create ( 375 krb5_context /*context*/, 376 HDB ** /*db*/, 377 const char */*arg*/); 378 379 krb5_error_code 380 hdb_ldapi_create ( 381 krb5_context /*context*/, 382 HDB ** /*db*/, 383 const char */*arg*/); 384 385 krb5_error_code 386 hdb_list_builtin ( 387 krb5_context /*context*/, 388 char **/*list*/); 389 390 krb5_error_code 391 hdb_lock ( 392 int /*fd*/, 393 int /*operation*/); 394 395 krb5_error_code 396 hdb_mdb_create ( 397 krb5_context /*context*/, 398 HDB **/*db*/, 399 const char */*filename*/); 400 401 krb5_error_code 402 hdb_mitdb_create ( 403 krb5_context /*context*/, 404 HDB **/*db*/, 405 const char */*filename*/); 406 407 krb5_error_code 408 hdb_ndbm_create ( 409 krb5_context /*context*/, 410 HDB **/*db*/, 411 const char */*filename*/); 412 413 krb5_error_code 414 hdb_next_enctype2key ( 415 krb5_context /*context*/, 416 const hdb_entry */*e*/, 417 const Keys */*keyset*/, 418 krb5_enctype /*enctype*/, 419 Key **/*key*/); 420 421 int 422 hdb_principal2key ( 423 krb5_context /*context*/, 424 krb5_const_principal /*p*/, 425 krb5_data */*key*/); 426 427 krb5_error_code 428 hdb_print_entry ( 429 krb5_context /*context*/, 430 HDB */*db*/, 431 hdb_entry_ex */*entry*/, 432 void */*data*/); 433 434 krb5_error_code 435 hdb_process_master_key ( 436 krb5_context /*context*/, 437 int /*kvno*/, 438 krb5_keyblock */*key*/, 439 krb5_enctype /*etype*/, 440 hdb_master_key */*mkey*/); 441 442 /** 443 * This function prunes an HDB entry's keys that are too old to have been used 444 * to mint still valid tickets (based on the entry's maximum ticket lifetime). 445 * 446 * @param context Context 447 * @param entry HDB entry 448 */ 449 450 krb5_error_code 451 hdb_prune_keys ( 452 krb5_context /*context*/, 453 hdb_entry */*entry*/); 454 455 krb5_error_code 456 hdb_read_master_key ( 457 krb5_context /*context*/, 458 const char */*filename*/, 459 hdb_master_key */*mkey*/); 460 461 krb5_error_code 462 hdb_replace_extension ( 463 krb5_context /*context*/, 464 hdb_entry */*entry*/, 465 const HDB_extension */*ext*/); 466 467 krb5_error_code 468 hdb_seal_key ( 469 krb5_context /*context*/, 470 HDB */*db*/, 471 Key */*k*/); 472 473 krb5_error_code 474 hdb_seal_key_mkey ( 475 krb5_context /*context*/, 476 Key */*k*/, 477 hdb_master_key /*mkey*/); 478 479 krb5_error_code 480 hdb_seal_keys ( 481 krb5_context /*context*/, 482 HDB */*db*/, 483 hdb_entry */*ent*/); 484 485 krb5_error_code 486 hdb_seal_keys_mkey ( 487 krb5_context /*context*/, 488 hdb_entry */*ent*/, 489 hdb_master_key /*mkey*/); 490 491 krb5_error_code 492 hdb_set_last_modified_by ( 493 krb5_context /*context*/, 494 hdb_entry */*entry*/, 495 krb5_principal /*modby*/, 496 time_t /*modtime*/); 497 498 krb5_error_code 499 hdb_set_master_key ( 500 krb5_context /*context*/, 501 HDB */*db*/, 502 krb5_keyblock */*key*/); 503 504 krb5_error_code 505 hdb_set_master_keyfile ( 506 krb5_context /*context*/, 507 HDB */*db*/, 508 const char */*keyfile*/); 509 510 /** 511 * Create SQLITE object, and creates the on disk database if its doesn't exists. 512 * 513 * @param context A Kerberos 5 context. 514 * @param db a returned database handle. 515 * @param filename filename 516 * 517 * @return 0 on success, an error code if not 518 */ 519 520 krb5_error_code 521 hdb_sqlite_create ( 522 krb5_context /*context*/, 523 HDB **/*db*/, 524 const char */*filename*/); 525 526 krb5_error_code 527 hdb_unlock (int /*fd*/); 528 529 krb5_error_code 530 hdb_unseal_key ( 531 krb5_context /*context*/, 532 HDB */*db*/, 533 Key */*k*/); 534 535 krb5_error_code 536 hdb_unseal_key_mkey ( 537 krb5_context /*context*/, 538 Key */*k*/, 539 hdb_master_key /*mkey*/); 540 541 krb5_error_code 542 hdb_unseal_keys ( 543 krb5_context /*context*/, 544 HDB */*db*/, 545 hdb_entry */*ent*/); 546 547 krb5_error_code 548 hdb_unseal_keys_kvno ( 549 krb5_context /*context*/, 550 HDB */*db*/, 551 krb5_kvno /*kvno*/, 552 unsigned /*flags*/, 553 hdb_entry */*ent*/); 554 555 krb5_error_code 556 hdb_unseal_keys_mkey ( 557 krb5_context /*context*/, 558 hdb_entry */*ent*/, 559 hdb_master_key /*mkey*/); 560 561 int 562 hdb_value2entry ( 563 krb5_context /*context*/, 564 krb5_data */*value*/, 565 hdb_entry */*ent*/); 566 567 int 568 hdb_value2entry_alias ( 569 krb5_context /*context*/, 570 krb5_data */*value*/, 571 hdb_entry_alias */*ent*/); 572 573 krb5_error_code 574 hdb_write_master_key ( 575 krb5_context /*context*/, 576 const char */*filename*/, 577 hdb_master_key /*mkey*/); 578 579 #ifdef __cplusplus 580 } 581 #endif 582 583 #endif /* DOXY */ 584 #endif /* __hdb_protos_h__ */ 585