krb5 commit: Interop with Heimdal KDC for S4U2Self requests
Greg Hudson
ghudson at mit.edu
Tue Jun 23 13:27:57 EDT 2020
https://github.com/krb5/krb5/commit/8e80ddbfdb479800c8e6ef7b287d400476578f8a
commit 8e80ddbfdb479800c8e6ef7b287d400476578f8a
Author: Isaac Boukris <iboukris at gmail.com>
Date: Wed Jun 10 01:32:56 2020 +0300
Interop with Heimdal KDC for S4U2Self requests
[MS-SFU] 3.1.5.1.1.1 says the KDC SHOULD send PA_S4U_X509_USER pa-data
if the TGT session key is of a newer enctype. Our S4U2Self client
code has enforced this clause as if it were a MUST. For consistency
with Microsoft and interoperability with Heimdal (which does not
implement PA_S4U_X509_USER), stop enforcing this constraint.
[ghudson at mit.edu: compressed code slightly; wrote commit message]
ticket: 8919 (new)
src/lib/krb5/krb/s4u_creds.c | 9 ++-------
1 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/src/lib/krb5/krb/s4u_creds.c b/src/lib/krb5/krb/s4u_creds.c
index 1f0ab85..5c2b6ff 100644
--- a/src/lib/krb5/krb/s4u_creds.c
+++ b/src/lib/krb5/krb/s4u_creds.c
@@ -302,16 +302,11 @@ verify_s4u2self_reply(krb5_context context,
enc_padata,
KRB5_PADATA_S4U_X509_USER);
- /* XXX this will break newer enctypes with a MIT 1.7 KDC */
rep_s4u_padata = krb5int_find_pa_data(context,
rep_padata,
KRB5_PADATA_S4U_X509_USER);
- if (rep_s4u_padata == NULL) {
- if (not_newer == FALSE || enc_s4u_padata != NULL)
- return KRB5_KDCREP_MODIFIED;
- else
- return 0;
- }
+ if (rep_s4u_padata == NULL)
+ return (enc_s4u_padata != NULL) ? KRB5_KDCREP_MODIFIED : 0;
data.length = rep_s4u_padata->length;
data.data = (char *)rep_s4u_padata->contents;
More information about the cvs-krb5
mailing list