FreeBSD Manual Pages
HDB(3) Heimdal hdb library HDB(3) NAME HDB SYNOPSIS #include <hdb.h> Data Fields char * hdb_name krb5_error_code(* hdb_open )(krb5_context, struct HDB *, int, mode_t) krb5_error_code(* hdb_close )(krb5_context, struct HDB *) void(* hdb_free )(krb5_context, struct HDB *, hdb_entry_ex *) krb5_error_code(* hdb_fetch_kvno )(krb5_context, struct HDB *, krb5_const_principal, unsigned, krb5_kvno, hdb_entry_ex *) krb5_error_code(* hdb_store )(krb5_context, struct HDB *, unsigned, hdb_en- try_ex *) krb5_error_code(* hdb_remove )(krb5_context, struct HDB *, unsigned, krb5_const_principal) krb5_error_code(* hdb_firstkey )(krb5_context, struct HDB *, unsigned, hdb_entry_ex *) krb5_error_code(* hdb_nextkey )(krb5_context, struct HDB *, unsigned, hdb_entry_ex *) krb5_error_code(* hdb_lock )(krb5_context, struct HDB *, int) krb5_error_code(* hdb_unlock )(krb5_context, struct HDB *) krb5_error_code(* hdb_rename )(krb5_context, struct HDB *, const char *) krb5_error_code(* hdb__get )(krb5_context, struct HDB *, krb5_data, krb5_data *) krb5_error_code(* hdb__put )(krb5_context, struct HDB *, int, krb5_data, krb5_data) krb5_error_code(* hdb__del )(krb5_context, struct HDB *, krb5_data) krb5_error_code(* hdb_destroy )(krb5_context, struct HDB *) krb5_error_code(* hdb_get_realms )(krb5_context, struct HDB *, krb5_realm **) krb5_error_code(* hdb_password )(krb5_context, struct HDB *, hdb_entry_ex *, const char *, int) krb5_error_code(* hdb_auth_status )(krb5_context, struct HDB *, hdb_en- try_ex *, int) krb5_error_code(* hdb_check_constrained_delegation )(krb5_context, struct HDB *, hdb_entry_ex *, krb5_const_principal) krb5_error_code(* hdb_check_pkinit_ms_upn_match )(krb5_context, struct HDB *, hdb_entry_ex *, krb5_const_principal) krb5_error_code(* hdb_check_s4u2self )(krb5_context, struct HDB *, hdb_en- try_ex *, krb5_const_principal) krb5_error_code(* hdb_set_sync )(krb5_context, struct HDB *, int) Detailed Description HDB backend function pointer structure The HDB structure is what the KDC and kadmind framework uses to query the backend database when talking about principals. Field Documentation krb5_error_code(* HDB::hdb__del) (krb5_context, struct HDB *, krb5_data) Delete and hdb_entry from a classical DB backend This function takes a principal key (krb5_data) naming the record to delete. Same discussion as in HDB::hdb__put krb5_error_code(* HDB::hdb__get) (krb5_context, struct HDB *, krb5_data, krb5_data *) Get an hdb_entry from a classical DB backend This function takes a principal key (krb5_data) and returns all data re- lated to principal in the return krb5_data. The returned encoded entry is of type hdb_entry or hdb_entry_alias. krb5_error_code(* HDB::hdb__put) (krb5_context, struct HDB *, int, krb5_data, krb5_data) Store an hdb_entry from a classical DB backend This function takes a principal key (krb5_data) and encoded hdb_entry or hdb_entry_alias as the data to store. For a file-based DB, this must synchronize to disk when done. This is sub- optimal for kadm5_s_rename_principal(), and for kadm5_s_modify_principal() when using principal aliases; to improve this so that only one fsync() need be done per-transaction will require HDB API extensions. krb5_error_code(* HDB::hdb_auth_status) (krb5_context, struct HDB *, hdb_en- try_ex *, int) Auth feedback This is a feedback call that allows backends that provides lockout func- tionality to register failure and/or successes. In case the entry is locked out, the backend should set the hdb_en- try.flags.locked-out flag. krb5_error_code(* HDB::hdb_check_constrained_delegation) (krb5_context, struct HDB *, hdb_entry_ex *, krb5_const_principal) Check if delegation is allowed. krb5_error_code(* HDB::hdb_check_pkinit_ms_upn_match) (krb5_context, struct HDB *, hdb_entry_ex *, krb5_const_principal) Check if this name is an alias for the supplied client for PKINIT user- PrinicpalName logins krb5_error_code(* HDB::hdb_check_s4u2self) (krb5_context, struct HDB *, hdb_entry_ex *, krb5_const_principal) Check if s4u2self is allowed from this client to this server krb5_error_code(* HDB::hdb_close) (krb5_context, struct HDB *) Close the database for transaction Closes the database for further transactions, wont release any permanant resources. the database can be ->hdb_open-ed again. krb5_error_code(* HDB::hdb_destroy) (krb5_context, struct HDB *) Destroy the handle to the database. Destroy the handle to the database, deallocate all memory and related re- sources. Does not remove any permanent data. Its the logical reverse of hdb_create() function that is the entry point for the module. krb5_error_code(* HDB::hdb_fetch_kvno) (krb5_context, struct HDB *, krb5_const_principal, unsigned, krb5_kvno, hdb_entry_ex *) Fetch an entry from the backend Fetch an entry from the backend, flags are what type of entry should be fetch: client, server, krbtgt. knvo (if specified and flags HDB_F_KVNO_SPECIFIED set) is the kvno to get krb5_error_code(* HDB::hdb_firstkey) (krb5_context, struct HDB *, unsigned, hdb_entry_ex *) As part of iteration, fetch one entry void(* HDB::hdb_free) (krb5_context, struct HDB *, hdb_entry_ex *) Free an entry after use. krb5_error_code(* HDB::hdb_get_realms) (krb5_context, struct HDB *, krb5_realm **) Get the list of realms this backend handles. This call is optional to sup- port. The returned realms are used for announcing the realms over bonjour. Free returned array with krb5_free_host_realm(). krb5_error_code(* HDB::hdb_lock) (krb5_context, struct HDB *, int) Lock database A lock can only be held by one consumers. Transaction can still happen on the database while the lock is held, so the entry is only useful for syn- croning creation of the database and renaming of the database. char* HDB::hdb_name don't use, only for DB3 krb5_error_code(* HDB::hdb_nextkey) (krb5_context, struct HDB *, unsigned, hdb_entry_ex *) As part of iteration, fetch next entry krb5_error_code(* HDB::hdb_open) (krb5_context, struct HDB *, int, mode_t) Open (or create) the a Kerberos database. Open (or create) the a Kerberos database that was resolved with hdb_cre- ate(). The third and fourth flag to the function are the same as open(), thus passing O_CREAT will create the data base if it doesn't exists. Then done the caller should call hdb_close(), and to release all resources hdb_destroy(). krb5_error_code(* HDB::hdb_password) (krb5_context, struct HDB *, hdb_en- try_ex *, const char *, int) Change password. Will update keys for the entry when given password. The new keys must be written into the entry and will then later be ->hdb_store() into the data- base. The backend will still perform all other operations, increasing the kvno, and update modification timestamp. The backend needs to call _kadm5_set_keys() and perform password quality checks. krb5_error_code(* HDB::hdb_remove) (krb5_context, struct HDB *, unsigned, krb5_const_principal) Remove an entry from the database. krb5_error_code(* HDB::hdb_rename) (krb5_context, struct HDB *, const char *) Rename the data base. Assume that the database is not hdb_open'ed and not locked. krb5_error_code(* HDB::hdb_set_sync) (krb5_context, struct HDB *, int) Enable/disable synchronous updates Calling this with 0 disables sync. Calling it with non-zero enables sync and does an fsync(). krb5_error_code(* HDB::hdb_store) (krb5_context, struct HDB *, unsigned, hdb_entry_ex *) Store an entry to database krb5_error_code(* HDB::hdb_unlock) (krb5_context, struct HDB *) Unlock database Author Generated automatically by Doxygen for Heimdal hdb library from the source code. Version 7.8.0 Tue Nov 15 2022 HDB(3)
NAME | SYNOPSIS | Detailed Description | Field Documentation | Author
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=hdb_get_realms&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
