]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
In KDC, assume all services support aes256-sha1
authorGreg Hudson <ghudson@mit.edu>
Wed, 14 Dec 2022 18:20:46 +0000 (13:20 -0500)
committerGreg Hudson <ghudson@mit.edu>
Mon, 23 Jan 2023 23:41:09 +0000 (18:41 -0500)
To facilitate negotiating session keys with acceptable security,
assume that services support aes256-cts-hmac-sha1 unless a
session_enctypes string attribute says otherwise.

ticket: 9075

src/kdc/kdc_util.c
src/tests/t_keyrollover.py

index f5cb2abf863157043736f0775849b65eea4bdc8e..0c846c1a8e9a204b1fa1da81546e25edac9880bd 100644 (file)
@@ -1006,6 +1006,10 @@ dbentry_supports_enctype(krb5_context context, krb5_db_entry *server,
     free(etypes_str);
     free(etypes);
 
+    /* Assume every server without a session_enctypes attribute supports
+     * aes256-cts-hmac-sha1-96. */
+    if (enctype == ENCTYPE_AES256_CTS_HMAC_SHA1_96)
+        return TRUE;
     /* Assume the server supports any enctype it has a long-term key for. */
     return !krb5_dbe_find_enctype(context, server, enctype, -1, 0, &datap);
 }
index 2c825a6922eb2ea1bd2fcb067afa1b59118735d0..e9840dfae83dfc83b0edff5534b7b24872d5cbd8 100755 (executable)
@@ -22,9 +22,9 @@ realm.run([kvno, princ1])
 realm.run([kadminl, 'purgekeys', realm.krbtgt_princ])
 # Make sure an old TGT fails after purging old TGS key.
 realm.run([kvno, princ2], expected_code=1)
-et = "aes128-cts-hmac-sha256-128"
-msg = 'krbtgt/%s@%s\n\tEtype (skey, tkt): %s, %s' % \
-    (realm.realm, realm.realm, et, et)
+msg = 'krbtgt/%s@%s\n\tEtype (skey, tkt): ' \
+    'aes256-cts-hmac-sha1-96, aes128-cts-hmac-sha256-128' % \
+    (realm.realm, realm.realm)
 realm.run([klist, '-e'], expected_msg=msg)
 
 # Check that new key actually works.