Allow the PAC to be passed along during cross-realm authentication.
From abartlet git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24021 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1380,7 +1380,6 @@ tgs_build_reply(krb5_context context,
|
|||||||
krb5_keyblock sessionkey;
|
krb5_keyblock sessionkey;
|
||||||
krb5_kvno kvno;
|
krb5_kvno kvno;
|
||||||
krb5_data rspac;
|
krb5_data rspac;
|
||||||
int cross_realm = 0;
|
|
||||||
|
|
||||||
METHOD_DATA enc_pa_data;
|
METHOD_DATA enc_pa_data;
|
||||||
|
|
||||||
@@ -1391,6 +1390,8 @@ tgs_build_reply(krb5_context context,
|
|||||||
char opt_str[128];
|
char opt_str[128];
|
||||||
int signedpath = 0;
|
int signedpath = 0;
|
||||||
|
|
||||||
|
Key *tkey;
|
||||||
|
|
||||||
memset(&sessionkey, 0, sizeof(sessionkey));
|
memset(&sessionkey, 0, sizeof(sessionkey));
|
||||||
memset(&adtkt, 0, sizeof(adtkt));
|
memset(&adtkt, 0, sizeof(adtkt));
|
||||||
krb5_data_zero(&rspac);
|
krb5_data_zero(&rspac);
|
||||||
@@ -1558,8 +1559,6 @@ server_lookup:
|
|||||||
|
|
||||||
kdc_log(context, config, 1, "Client not found in database: %s: %s",
|
kdc_log(context, config, 1, "Client not found in database: %s: %s",
|
||||||
cpn, krb5_get_err_text(context, ret));
|
cpn, krb5_get_err_text(context, ret));
|
||||||
|
|
||||||
cross_realm = 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1602,10 +1601,6 @@ server_lookup:
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Validate authoriation data
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check that service is in the same realm as the krbtgt. If it's
|
* Check that service is in the same realm as the krbtgt. If it's
|
||||||
* not the same, it's someone that is using a uni-directional trust
|
* not the same, it's someone that is using a uni-directional trust
|
||||||
@@ -1627,9 +1622,9 @@ server_lookup:
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check PAC if not cross realm and if there is one */
|
/*
|
||||||
if (!cross_realm) {
|
* Validate authoriation data
|
||||||
Key *tkey;
|
*/
|
||||||
|
|
||||||
ret = hdb_enctype2key(context, &krbtgt->entry,
|
ret = hdb_enctype2key(context, &krbtgt->entry,
|
||||||
krbtgt_etype, &tkey);
|
krbtgt_etype, &tkey);
|
||||||
@@ -1648,7 +1643,6 @@ server_lookup:
|
|||||||
spn, cpn, from, krb5_get_err_text(context, ret));
|
spn, cpn, from, krb5_get_err_text(context, ret));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* also check the krbtgt for signature */
|
/* also check the krbtgt for signature */
|
||||||
ret = check_KRB5SignedPath(context,
|
ret = check_KRB5SignedPath(context,
|
||||||
|
Reference in New Issue
Block a user