krb5: don't require krbtgt otherName match for Win2K
Merged from Apple branch: when the Win2K PKINIT compatibility option is set, do not require krbtgt otherName to match when validating KDC certificate.
This commit is contained in:

committed by
Jeffrey Altman

parent
c634146b14
commit
8350f34a05
@@ -366,9 +366,11 @@ krb5_get_init_creds_opt_set_win2k(krb5_context context,
|
|||||||
if (req) {
|
if (req) {
|
||||||
opt->opt_private->flags |= KRB5_INIT_CREDS_NO_C_CANON_CHECK;
|
opt->opt_private->flags |= KRB5_INIT_CREDS_NO_C_CANON_CHECK;
|
||||||
opt->opt_private->flags |= KRB5_INIT_CREDS_NO_C_NO_EKU_CHECK;
|
opt->opt_private->flags |= KRB5_INIT_CREDS_NO_C_NO_EKU_CHECK;
|
||||||
|
opt->opt_private->flags |= KRB5_INIT_CREDS_PKINIT_NO_KRBTGT_OTHERNAME_CHECK;
|
||||||
} else {
|
} else {
|
||||||
opt->opt_private->flags &= ~KRB5_INIT_CREDS_NO_C_CANON_CHECK;
|
opt->opt_private->flags &= ~KRB5_INIT_CREDS_NO_C_CANON_CHECK;
|
||||||
opt->opt_private->flags &= ~KRB5_INIT_CREDS_NO_C_NO_EKU_CHECK;
|
opt->opt_private->flags &= ~KRB5_INIT_CREDS_NO_C_NO_EKU_CHECK;
|
||||||
|
opt->opt_private->flags &= ~KRB5_INIT_CREDS_PKINIT_NO_KRBTGT_OTHERNAME_CHECK;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -214,6 +214,7 @@ struct _krb5_get_init_creds_opt_private {
|
|||||||
#define KRB5_INIT_CREDS_NO_C_CANON_CHECK 2
|
#define KRB5_INIT_CREDS_NO_C_CANON_CHECK 2
|
||||||
#define KRB5_INIT_CREDS_NO_C_NO_EKU_CHECK 4
|
#define KRB5_INIT_CREDS_NO_C_NO_EKU_CHECK 4
|
||||||
#define KRB5_INIT_CREDS_PKINIT_KX_VALID 32
|
#define KRB5_INIT_CREDS_PKINIT_KX_VALID 32
|
||||||
|
#define KRB5_INIT_CREDS_PKINIT_NO_KRBTGT_OTHERNAME_CHECK 64
|
||||||
struct {
|
struct {
|
||||||
krb5_gic_process_last_req func;
|
krb5_gic_process_last_req func;
|
||||||
void *ctx;
|
void *ctx;
|
||||||
|
@@ -784,6 +784,8 @@ _krb5_pk_mk_padata(krb5_context context,
|
|||||||
req_body->realm,
|
req_body->realm,
|
||||||
"pkinit_require_krbtgt_otherName",
|
"pkinit_require_krbtgt_otherName",
|
||||||
NULL);
|
NULL);
|
||||||
|
if (ic_flags & KRB5_INIT_CREDS_PKINIT_NO_KRBTGT_OTHERNAME_CHECK)
|
||||||
|
ctx->require_krbtgt_otherName = FALSE;
|
||||||
|
|
||||||
ctx->require_hostname_match =
|
ctx->require_hostname_match =
|
||||||
krb5_config_get_bool_default(context, NULL,
|
krb5_config_get_bool_default(context, NULL,
|
||||||
|
Reference in New Issue
Block a user