]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
tests/krb5: Add method to verify ticket checksum for FAST
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Tue, 27 Jul 2021 02:10:13 +0000 (14:10 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 18 Aug 2021 22:28:34 +0000 (22:28 +0000)
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
python/samba/tests/krb5/raw_testcase.py

index dd733aea09b5cc70351495a39a3d649845efbd08..da38a9dfa6228c9725ea5e8da21cbb2bce5b595c 100644 (file)
@@ -52,6 +52,7 @@ from samba.tests.krb5.rfc4120_constants import (
     KRB_TGS_REQ,
     KU_AP_REQ_AUTH,
     KU_AS_REP_ENC_PART,
+    KU_FAST_FINISHED,
     KU_FAST_REP,
     KU_FAST_REQ_CHKSUM,
     KU_NON_KERB_CKSUM_SALT,
@@ -2322,6 +2323,17 @@ class RawKerberosTest(TestCaseInTempDir):
 
         return kdc_challenge_key
 
+    def verify_ticket_checksum(self, ticket, expected_checksum, armor_key):
+        expected_type = expected_checksum['cksumtype']
+        self.assertEqual(armor_key.ctype, expected_type)
+
+        ticket_blob = self.der_encode(ticket,
+                                      asn1Spec=krb5_asn1.Ticket())
+        checksum = self.Checksum_create(armor_key,
+                                        KU_FAST_FINISHED,
+                                        ticket_blob)
+        self.assertEqual(expected_checksum, checksum)
+
     def _test_as_exchange(self,
                           cname,
                           realm,