.TH "krb5_keytab" 3 "Tue Jul 11 2017" "Version 7.4.0" "HeimdalKerberos5library" \" -*- nroff -*- .ad l .nh .SH NAME krb5_keytab \- Heimdal Kerberos 5 keytab handling functions .SS "Functions" .in +1c .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_register\fP (krb5_context context, const krb5_kt_ops *ops)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_resolve\fP (krb5_context context, const char *name, krb5_keytab *id)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_default_name\fP (krb5_context context, char *name, size_t namesize)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_default_modify_name\fP (krb5_context context, char *name, size_t namesize)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_default\fP (krb5_context context, krb5_keytab *id)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_read_service_key\fP (krb5_context context, krb5_pointer keyprocarg, krb5_principal principal, krb5_kvno vno, krb5_enctype enctype, krb5_keyblock **key)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_get_type\fP (krb5_context context, krb5_keytab keytab, char *prefix, size_t prefixsize)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_get_name\fP (krb5_context context, krb5_keytab keytab, char *name, size_t namesize)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_get_full_name\fP (krb5_context context, krb5_keytab keytab, char **str)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_close\fP (krb5_context context, krb5_keytab id)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_destroy\fP (krb5_context context, krb5_keytab id)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL \fBkrb5_kt_compare\fP (krb5_context context, krb5_keytab_entry *entry, krb5_const_principal principal, krb5_kvno vno, krb5_enctype enctype)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_get_entry\fP (krb5_context context, krb5_keytab id, krb5_const_principal principal, krb5_kvno kvno, krb5_enctype enctype, krb5_keytab_entry *entry)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_copy_entry_contents\fP (krb5_context context, const krb5_keytab_entry *in, krb5_keytab_entry *out)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_free_entry\fP (krb5_context context, krb5_keytab_entry *entry)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_start_seq_get\fP (krb5_context context, krb5_keytab id, krb5_kt_cursor *cursor)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_next_entry\fP (krb5_context context, krb5_keytab id, krb5_keytab_entry *entry, krb5_kt_cursor *cursor)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_end_seq_get\fP (krb5_context context, krb5_keytab id, krb5_kt_cursor *cursor)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_add_entry\fP (krb5_context context, krb5_keytab id, krb5_keytab_entry *entry)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_remove_entry\fP (krb5_context context, krb5_keytab id, krb5_keytab_entry *entry)" .br .ti -1c .RI "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL \fBkrb5_kt_have_content\fP (krb5_context context, krb5_keytab id)" .br .in -1c .SH "Detailed Description" .PP .SH "Function Documentation" .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_add_entry (krb5_context context, krb5_keytab id, krb5_keytab_entry * entry)" Add the entry in `entry' to the keytab `id'\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIid\fP a keytab\&. .br \fIentry\fP the entry to add .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_close (krb5_context context, krb5_keytab id)" Finish using the keytab in `id'\&. All resources will be released, even on errors\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIid\fP keytab to close\&. .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_kt_compare (krb5_context context, krb5_keytab_entry * entry, krb5_const_principal principal, krb5_kvno vno, krb5_enctype enctype)" Compare `entry' against `principal, vno, enctype'\&. Any of `principal, vno, enctype' might be 0 which acts as a wildcard\&. Return TRUE if they compare the same, FALSE otherwise\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIentry\fP an entry to match with\&. .br \fIprincipal\fP principal to match, NULL matches all principals\&. .br \fIvno\fP key version to match, 0 matches all key version numbers\&. .br \fIenctype\fP encryption type to match, 0 matches all encryption types\&. .RE .PP \fBReturns:\fP .RS 4 Return TRUE or match, FALSE if not matched\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_copy_entry_contents (krb5_context context, const krb5_keytab_entry * in, krb5_keytab_entry * out)" Copy the contents of `in' into `out'\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIin\fP the keytab entry to copy\&. .br \fIout\fP the copy of the keytab entry, free with \fBkrb5_kt_free_entry()\fP\&. .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default (krb5_context context, krb5_keytab * id)" Set `id' to the default keytab\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIid\fP the new default keytab\&. .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default_modify_name (krb5_context context, char * name, size_t namesize)" Copy the name of the default modify keytab into `name'\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIname\fP buffer where the name will be written .br \fInamesize\fP length of name .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default_name (krb5_context context, char * name, size_t namesize)" copy the name of the default keytab into `name'\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIname\fP buffer where the name will be written .br \fInamesize\fP length of name .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_destroy (krb5_context context, krb5_keytab id)" Destroy (remove) the keytab in `id'\&. All resources will be released, even on errors, does the equvalment of \fBkrb5_kt_close()\fP on the resources\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIid\fP keytab to destroy\&. .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_end_seq_get (krb5_context context, krb5_keytab id, krb5_kt_cursor * cursor)" Release all resources associated with `cursor'\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIid\fP a keytab\&. .br \fIcursor\fP the cursor to free\&. .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_free_entry (krb5_context context, krb5_keytab_entry * entry)" Free the contents of `entry'\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIentry\fP the entry to free .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_entry (krb5_context context, krb5_keytab id, krb5_const_principal principal, krb5_kvno kvno, krb5_enctype enctype, krb5_keytab_entry * entry)" Retrieve the keytab entry for `principal, kvno, enctype' into `entry' from the keytab `id'\&. Matching is done like \fBkrb5_kt_compare()\fP\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIid\fP a keytab\&. .br \fIprincipal\fP principal to match, NULL matches all principals\&. .br \fIkvno\fP key version to match, 0 matches all key version numbers\&. .br \fIenctype\fP encryption type to match, 0 matches all encryption types\&. .br \fIentry\fP the returned entry, free with \fBkrb5_kt_free_entry()\fP\&. .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_full_name (krb5_context context, krb5_keytab keytab, char ** str)" Retrieve the full name of the keytab `keytab' and store the name in `str'\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIkeytab\fP keytab to get name for\&. .br \fIstr\fP the name of the keytab name, usee krb5_xfree() to free the string\&. On error, *str is set to NULL\&. .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_name (krb5_context context, krb5_keytab keytab, char * name, size_t namesize)" Retrieve the name of the keytab `keytab' into `name', `namesize' .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIkeytab\fP the keytab to get the name for\&. .br \fIname\fP name buffer\&. .br \fInamesize\fP size of name buffer\&. .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_type (krb5_context context, krb5_keytab keytab, char * prefix, size_t prefixsize)" Return the type of the `keytab' in the string \fCprefix of length \fPprefixsize'\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIkeytab\fP the keytab to get the prefix for .br \fIprefix\fP prefix buffer .br \fIprefixsize\fP length of prefix buffer .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_have_content (krb5_context context, krb5_keytab id)" Return true if the keytab exists and have entries .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIid\fP a keytab\&. .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_next_entry (krb5_context context, krb5_keytab id, krb5_keytab_entry * entry, krb5_kt_cursor * cursor)" Get the next entry from keytab, advance the cursor\&. On last entry the function will return KRB5_KT_END\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIid\fP a keytab\&. .br \fIentry\fP the returned entry, free with \fBkrb5_kt_free_entry()\fP\&. .br \fIcursor\fP the cursor of the iteration\&. .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_read_service_key (krb5_context context, krb5_pointer keyprocarg, krb5_principal principal, krb5_kvno vno, krb5_enctype enctype, krb5_keyblock ** key)" Read the key identified by `(principal, vno, enctype)' from the keytab in `keyprocarg' (the default if == NULL) into `*key'\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIkeyprocarg\fP .br \fIprincipal\fP .br \fIvno\fP .br \fIenctype\fP .br \fIkey\fP .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_register (krb5_context context, const krb5_kt_ops * ops)" Register a new keytab backend\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIops\fP a backend to register\&. .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_remove_entry (krb5_context context, krb5_keytab id, krb5_keytab_entry * entry)" Remove an entry from the keytab, matching is done using \fBkrb5_kt_compare()\fP\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIid\fP a keytab\&. .br \fIentry\fP the entry to remove .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_resolve (krb5_context context, const char * name, krb5_keytab * id)" Resolve the keytab name (of the form `type:residual') in `name' into a keytab in `id'\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIname\fP name to resolve .br \fIid\fP resulting keytab, free with \fBkrb5_kt_close()\fP\&. .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_start_seq_get (krb5_context context, krb5_keytab id, krb5_kt_cursor * cursor)" Set `cursor' to point at the beginning of `id'\&. .PP \fBParameters:\fP .RS 4 \fIcontext\fP a Keberos context\&. .br \fIid\fP a keytab\&. .br \fIcursor\fP a newly allocated cursor, free with \fBkrb5_kt_end_seq_get()\fP\&. .RE .PP \fBReturns:\fP .RS 4 Return an error code or 0, see \fBkrb5_get_error_message()\fP\&. .RE .PP .SH "Author" .PP Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.