Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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_entry_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_entry_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_entry_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
       related 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_entry_ex *, int)
       Auth feedback

       This is a feedback call that allows backends that provides lockout
       functionality to	register failure and/or	successes.

       In case the entry is locked out,	the backend should set the
       hdb_entry.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
       userPrinicpalName 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
       resources. 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
       support.	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
       syncroning 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_create(). 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_entry_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
       database. 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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=hdb_check_constrained_delegation&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help