]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
tests/krb5: Generate AP-REQ for TGS request in _generic_kdc_exchange()
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Tue, 27 Jul 2021 01:59:36 +0000 (13:59 +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 e15fc44a962008128befecc064255d31215045bb..4f399467cfe65a03f33bdfecd7f0e0c9532ce220 100644 (file)
@@ -1484,13 +1484,34 @@ class RawKerberosTest(TestCaseInTempDir):
             EncAuthorizationData=EncAuthorizationData,
             EncAuthorizationData_key=EncAuthorizationData_key,
             EncAuthorizationData_usage=EncAuthorizationData_usage)
+
+        if req_msg_type == KRB_AS_REQ:
+            tgs_req = None
+            tgs_req_padata = None
+        else:
+            self.assertEqual(KRB_TGS_REQ, req_msg_type)
+
+            tgs_req = self.generate_ap_req(kdc_exchange_dict,
+                                           callback_dict,
+                                           req_body)
+            tgs_req_padata = self.PA_DATA_create(PADATA_KDC_REQ, tgs_req)
+
         if generate_padata_fn is not None:
             # This can alter req_body...
             padata, req_body = generate_padata_fn(kdc_exchange_dict,
                                                   callback_dict,
                                                   req_body)
             self.assertIsNotNone(padata)
+            self.assertNotIn(PADATA_KDC_REQ,
+                             [pa['padata-type'] for pa in padata],
+                             'Don\'t create TGS-REQ manually')
         else:
+            padata = []
+
+        if tgs_req_padata is not None:
+            padata.insert(0, tgs_req_padata)
+
+        if not padata:
             padata = None
 
         kdc_exchange_dict['req_padata'] = padata