#include <krb5/krb5.h>
krb5_principal;
void
krb5_free_principal(krb5_context context, krb5_principal principal);
krb5_error_code
krb5_parse_name(krb5_context context, const char *name, krb5_principal *principal);
krb5_error_code
krb5_parse_name_flags(krb5_context context, const char *name, int flags, krb5_principal *principal);
krb5_error_code
krb5_unparse_name(krb5_context context, krb5_const_principal principal, char **name);
krb5_error_code
krb5_unparse_name_flags(krb5_context context, krb5_const_principal principal, int flags, char **name);
krb5_error_code
krb5_unparse_name_fixed(krb5_context context, krb5_const_principal principal, char *name, size_t len);
krb5_error_code
krb5_unparse_name_fixed_flags(krb5_context context, krb5_const_principal principal, int flags, char *name, size_t len);
krb5_error_code
krb5_unparse_name_short(krb5_context context, krb5_const_principal principal, char **name);
krb5_error_code
krb5_unparse_name_fixed_short(krb5_context context, krb5_const_principal principal, char *name, size_t len);
krb5_realm *
krb5_princ_realm(krb5_context context, krb5_principal principal);
void
krb5_princ_set_realm(krb5_context context, krb5_principal principal, krb5_realm *realm);
krb5_error_code
krb5_build_principal(krb5_context context, krb5_principal *principal, int rlen, krb5_const_realm realm, ...);
krb5_error_code
krb5_build_principal_va(krb5_context context, krb5_principal *principal, int rlen, krb5_const_realm realm, va_list ap);
krb5_error_code
krb5_build_principal_ext(krb5_context context, krb5_principal *principal, int rlen, krb5_const_realm realm, ...);
krb5_error_code
krb5_build_principal_va_ext(krb5_context context, krb5_principal *principal, int rlen, krb5_const_realm realm, va_list ap);
krb5_error_code
krb5_make_principal(krb5_context context, krb5_principal *principal, krb5_const_realm realm, ...);
krb5_error_code
krb5_copy_principal(krb5_context context, krb5_const_principal inprinc, krb5_principal *outprinc);
krb5_boolean
krb5_principal_compare(krb5_context context, krb5_const_principal princ1, krb5_const_principal princ2);
krb5_boolean
krb5_principal_compare_any_realm(krb5_context context, krb5_const_principal princ1, krb5_const_principal princ2);
const char *
krb5_principal_get_comp_string(krb5_context context, krb5_const_principal principal, unsigned int component);
const char *
krb5_principal_get_realm(krb5_context context, krb5_const_principal principal);
int
krb5_principal_get_type(krb5_context context, krb5_const_principal principal);
krb5_boolean
krb5_principal_match(krb5_context context, krb5_const_principal principal, krb5_const_principal pattern);
void
krb5_principal_set_type(krb5_context context, krb5_principal principal, int type);
krb5_boolean
krb5_realm_compare(krb5_context context, krb5_const_principal princ1, krb5_const_principal princ2);
krb5_error_code
krb5_sname_to_principal(krb5_context context, const char *hostname, const char *sname, int32_t type, krb5_principal *ret_princ);
krb5_error_code
krb5_sock_to_principal(krb5_context context, int socket, const char *sname, int32_t type, krb5_principal *principal);
krb5_error_code
krb5_get_default_principal(krb5_context context, krb5_principal *princ);
krb5_error_code
krb5_parse_nametype(krb5_context context, const char *str, int32_t *type);