canonprinc
struct canonprinc iter = { client, .subst_defrealm = TRUE };
krb5_const_principal canonprinc = NULL;
while ((ret = k5_canonprinc(context, &iter, &canonprinc)) == 0 &&
canonprinc != NULL) {
ret = match_caches(context, canonprinc, &cache);
if (ret == 0 && canonprinc == NULL) {
struct canonprinc iter = { mprinc, .no_hostrealm = TRUE };
krb5_const_principal canonprinc = NULL;
while ((ret = k5_canonprinc(context, &iter, &canonprinc)) == 0 &&
canonprinc != NULL) {
ret = match_entries(context, keytab, canonprinc);
return (ret == 0 && canonprinc == NULL) ? KRB5_KT_NOTFOUND : ret;
krb5_const_principal canonprinc;
code = k5_canonprinc(context, &ctx->iter, &canonprinc);
if (code == 0 && canonprinc == NULL)
code = krb5_copy_principal(context, canonprinc, &ctx->in_creds->server);
krb5_const_principal canonprinc;
code = k5_canonprinc(context, &ctx->iter, &canonprinc);
if (canonprinc == NULL)
code = krb5_copy_principal(context, canonprinc, &ctx->in_creds->server);
struct canonprinc iter; /* Iterator over canonicalized server princs */
struct canonprinc iter = { ctx->request->client, .subst_defrealm = TRUE };
krb5_const_principal canonprinc;
while ((ret = k5_canonprinc(context, &iter, &canonprinc)) == 0 &&
canonprinc != NULL) {
ret = lookup_etypes_for_keytab(context, keytab, canonprinc,
if (!ret && canonprinc != NULL) {
ret = krb5_copy_principal(context, canonprinc, ©);
struct canonprinc iter = { server, .no_hostrealm = TRUE };
krb5_const_principal canonprinc;
while ((ret = k5_canonprinc(context, &iter, &canonprinc)) == 0 &&
canonprinc != NULL) {
dret = decrypt_try_server(context, req, canonprinc, keytab,
krb5_const_principal canonprinc;
struct canonprinc iter = { in_creds->server, .no_hostrealm = TRUE };
while ((code = k5_canonprinc(context, &iter, &canonprinc)) == 0 &&
canonprinc != NULL) {
copy.server = (krb5_principal)canonprinc;
if (!code && canonprinc == NULL)
krb5_error_code k5_canonprinc(krb5_context context, struct canonprinc *iter,
free_canonprinc(struct canonprinc *iter)
canonicalize_princ(krb5_context context, struct canonprinc *iter,
k5_canonprinc(krb5_context context, struct canonprinc *iter,
struct canonprinc iter = { sname, .subst_defrealm = TRUE };
krb5_const_principal canonprinc = NULL;
while ((ret = k5_canonprinc(context, &iter, &canonprinc)) == 0 &&
canonprinc != NULL) {
if (krb5_principal_compare(context, canonprinc, princ)) {
struct canonprinc iter = { NULL };