[SCM] Samba Shared Repository - branch master updated
Joseph Sutton
jsutton at samba.org
Mon Jan 17 20:56:01 UTC 2022
The branch, master has been updated
via 19d9504b1b3 s4:kdc: improve DEBUG messages in samba_wdc_reget_pac2()
via 84b76270ceb s4:auth: debug make_user_info_dc_pac() failures in kerberos_pac_to_user_info_dc()
via 879eba2740a s4:torture: check for pac_blob==NULL in test_generate_session_info_pac() functions
via 12154b981c4 s4:heimdal_build: make version_script optional to HEIMDAL_LIBRARY()
via 6fc5f22978b kdc: Fix leak
via e9caa1edef8 tests/krb5: Update supported enctype checking
via 775bfc72509 tests/krb5: Add AS-REQ PAC tests
via f94bdb41fcc tests/krb5: Check encrypted-pa-data if present
via 48362a706f8 tests/krb5: Add FAST enc-pa-rep tests
via c51805f90c0 tests/krb5: Adjust expected error codes
via a107bb8b0d4 tests/krb5: Generate unique UPNs for AS-REQ enterprise tests
via 492d9f083dc s4:torture: Remove netbios realm and lowercase realm tests
via 3b26c714d42 s4:torture: Make etype list variables static
from 493fe1a4315 build: reduce printf() calls in generated build_options.c
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 19d9504b1b34ec7c52eaaf663d5ecf4f05066b6d
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Dec 23 22:44:10 2021 +0100
s4:kdc: improve DEBUG messages in samba_wdc_reget_pac2()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Joseph Sutton <josephsutton at catalyst.net.nz>
Autobuild-User(master): Joseph Sutton <jsutton at samba.org>
Autobuild-Date(master): Mon Jan 17 20:55:41 UTC 2022 on sn-devel-184
commit 84b76270ceb38cbb0263f415f4089bafa751b3a3
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Dec 23 22:53:13 2021 +0100
s4:auth: debug make_user_info_dc_pac() failures in kerberos_pac_to_user_info_dc()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Joseph Sutton <josephsutton at catalyst.net.nz>
commit 879eba2740ac5e5f456b93a3b47e9a6b70355415
Author: Stefan Metzmacher <metze at samba.org>
Date: Fri Dec 24 15:21:21 2021 +0100
s4:torture: check for pac_blob==NULL in test_generate_session_info_pac() functions
We should return an error instead of crashing for tickets without a PAC.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Joseph Sutton <josephsutton at catalyst.net.nz>
commit 12154b981c40d619e4ddb53aceee9f86368a75fb
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Dec 23 19:29:06 2021 +0100
s4:heimdal_build: make version_script optional to HEIMDAL_LIBRARY()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Joseph Sutton <josephsutton at catalyst.net.nz>
commit 6fc5f22978bd77e4775856359d116492eccc9be6
Author: Joseph Sutton <josephsutton at catalyst.net.nz>
Date: Thu Dec 30 16:20:46 2021 +1300
kdc: Fix leak
Signed-off-by: Joseph Sutton <josephsutton at catalyst.net.nz>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit e9caa1edef846cdea2a719976ee0fd5bd8531048
Author: Joseph Sutton <josephsutton at catalyst.net.nz>
Date: Thu Dec 23 15:59:21 2021 +1300
tests/krb5: Update supported enctype checking
We now do not expect the claims or compound ID bits to be set unless
explicitly specified, nor the DES bits.
Signed-off-by: Joseph Sutton <josephsutton at catalyst.net.nz>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 775bfc72509bf98f3c637ca22cc5edf0e7fae794
Author: Joseph Sutton <josephsutton at catalyst.net.nz>
Date: Wed Dec 29 17:35:09 2021 +1300
tests/krb5: Add AS-REQ PAC tests
Signed-off-by: Joseph Sutton <josephsutton at catalyst.net.nz>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit f94bdb41fccdb085d8f8f5a1a5e4a56581839e8e
Author: Joseph Sutton <josephsutton at catalyst.net.nz>
Date: Tue Nov 30 09:45:13 2021 +1300
tests/krb5: Check encrypted-pa-data if present
Signed-off-by: Joseph Sutton <josephsutton at catalyst.net.nz>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 48362a706f8a6c35a17ecbf625bbf29802143185
Author: Joseph Sutton <josephsutton at catalyst.net.nz>
Date: Tue Nov 30 09:42:10 2021 +1300
tests/krb5: Add FAST enc-pa-rep tests
Signed-off-by: Joseph Sutton <josephsutton at catalyst.net.nz>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit c51805f90c09b40236765c9594693fcb66a55715
Author: Joseph Sutton <josephsutton at catalyst.net.nz>
Date: Thu Dec 16 14:21:18 2021 +1300
tests/krb5: Adjust expected error codes
Signed-off-by: Joseph Sutton <josephsutton at catalyst.net.nz>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit a107bb8b0d424bb1f8ee6df34e8f8e81dd499333
Author: Joseph Sutton <josephsutton at catalyst.net.nz>
Date: Thu Dec 16 10:18:42 2021 +1300
tests/krb5: Generate unique UPNs for AS-REQ enterprise tests
This helps to avoid problems with account creation due to UPN uniqueness
constraints.
Signed-off-by: Joseph Sutton <josephsutton at catalyst.net.nz>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 492d9f083dc23aff2c1fa12e21765861df1c1b38
Author: Joseph Sutton <josephsutton at catalyst.net.nz>
Date: Wed Dec 22 16:08:43 2021 +1300
s4:torture: Remove netbios realm and lowercase realm tests
Tests for these are already present in
samba.tests.krb5.as_canonicalization_tests. These tests cause problems
with an upgraded Heimdal version, and we want to stop supporting
non-canonical realm names, so this commit removes them.
Signed-off-by: Joseph Sutton <josephsutton at catalyst.net.nz>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 3b26c714d42fc5e4ab7d4138db987171edda6463
Author: Joseph Sutton <josephsutton at catalyst.net.nz>
Date: Thu Dec 16 21:06:55 2021 +1300
s4:torture: Make etype list variables static
If they are not made static, these variables end up being used by the
Kerberos libraries after they have gone out of scope.
Signed-off-by: Joseph Sutton <josephsutton at catalyst.net.nz>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
-----------------------------------------------------------------------
Summary of changes:
python/samba/tests/krb5/as_req_tests.py | 24 ++-
python/samba/tests/krb5/fast_tests.py | 227 ++++++++++++++++++++++++++-
python/samba/tests/krb5/kdc_base_test.py | 25 ++-
python/samba/tests/krb5/kdc_tgs_tests.py | 5 +-
python/samba/tests/krb5/raw_testcase.py | 109 ++++++++++---
python/samba/tests/krb5/rfc4120.asn1 | 4 +-
python/samba/tests/krb5/rfc4120_constants.py | 3 +
python/samba/tests/krb5/rfc4120_pyasn1.py | 17 +-
selftest/knownfail_heimdal_kdc | 6 +
selftest/knownfail_mit_kdc | 4 +
source4/auth/kerberos/kerberos_pac.c | 8 +-
source4/heimdal_build/wscript_build | 7 +-
source4/kdc/wdc-samba4.c | 11 +-
source4/torture/krb5/kdc-canon-heimdal.c | 112 ++-----------
source4/torture/krb5/kdc-heimdal.c | 8 +-
source4/torture/rpc/remote_pac.c | 5 +
source4/torture/winbind/winbind.c | 5 +
17 files changed, 419 insertions(+), 161 deletions(-)
Changeset truncated at 500 lines:
diff --git a/python/samba/tests/krb5/as_req_tests.py b/python/samba/tests/krb5/as_req_tests.py
index 263e77d4812..b52937530e6 100755
--- a/python/samba/tests/krb5/as_req_tests.py
+++ b/python/samba/tests/krb5/as_req_tests.py
@@ -345,9 +345,10 @@ class AsReqKerberosTests(AsReqBaseTest):
expect_edata=False)
def test_as_req_enterprise_canon(self):
+ upn = self.get_new_username()
client_creds = self.get_cached_creds(
account_type=self.AccountType.USER,
- opts={'upn': 'krb5_enterprise0'})
+ opts={'upn': upn})
user_name = client_creds.get_username()
realm = client_creds.get_realm()
@@ -365,9 +366,10 @@ class AsReqKerberosTests(AsReqBaseTest):
kdc_options=krb5_asn1.KDCOptions('canonicalize'))
def test_as_req_enterprise_canon_case(self):
+ upn = self.get_new_username()
client_creds = self.get_cached_creds(
account_type=self.AccountType.USER,
- opts={'upn': 'krb5_enterprise1'})
+ opts={'upn': upn})
user_name = client_creds.get_username()
realm = client_creds.get_realm().lower()
@@ -385,9 +387,10 @@ class AsReqKerberosTests(AsReqBaseTest):
kdc_options=krb5_asn1.KDCOptions('canonicalize'))
def test_as_req_enterprise_canon_mac(self):
+ upn = self.get_new_username()
client_creds = self.get_cached_creds(
account_type=self.AccountType.COMPUTER,
- opts={'upn': 'krb5_enterprise2'})
+ opts={'upn': upn})
user_name = client_creds.get_username()
realm = client_creds.get_realm()
@@ -405,9 +408,10 @@ class AsReqKerberosTests(AsReqBaseTest):
kdc_options=krb5_asn1.KDCOptions('canonicalize'))
def test_as_req_enterprise_canon_mac_case(self):
+ upn = self.get_new_username()
client_creds = self.get_cached_creds(
account_type=self.AccountType.COMPUTER,
- opts={'upn': 'krb5_enterprise3'})
+ opts={'upn': upn})
user_name = client_creds.get_username()
realm = client_creds.get_realm().lower()
@@ -425,9 +429,10 @@ class AsReqKerberosTests(AsReqBaseTest):
kdc_options=krb5_asn1.KDCOptions('canonicalize'))
def test_as_req_enterprise_no_canon(self):
+ upn = self.get_new_username()
client_creds = self.get_cached_creds(
account_type=self.AccountType.USER,
- opts={'upn': 'krb5_enterprise4'})
+ opts={'upn': upn})
user_name = client_creds.get_username()
realm = client_creds.get_realm()
@@ -440,9 +445,10 @@ class AsReqKerberosTests(AsReqBaseTest):
kdc_options=0)
def test_as_req_enterprise_no_canon_case(self):
+ upn = self.get_new_username()
client_creds = self.get_cached_creds(
account_type=self.AccountType.USER,
- opts={'upn': 'krb5_enterprise5'})
+ opts={'upn': upn})
user_name = client_creds.get_username()
realm = client_creds.get_realm().lower()
@@ -455,9 +461,10 @@ class AsReqKerberosTests(AsReqBaseTest):
kdc_options=0)
def test_as_req_enterprise_no_canon_mac(self):
+ upn = self.get_new_username()
client_creds = self.get_cached_creds(
account_type=self.AccountType.COMPUTER,
- opts={'upn': 'krb5_enterprise6'})
+ opts={'upn': upn})
user_name = client_creds.get_username()
realm = client_creds.get_realm()
@@ -470,9 +477,10 @@ class AsReqKerberosTests(AsReqBaseTest):
kdc_options=0)
def test_as_req_enterprise_no_canon_mac_case(self):
+ upn = self.get_new_username()
client_creds = self.get_cached_creds(
account_type=self.AccountType.COMPUTER,
- opts={'upn': 'krb5_enterprise7'})
+ opts={'upn': upn})
user_name = client_creds.get_username()
realm = client_creds.get_realm().lower()
diff --git a/python/samba/tests/krb5/fast_tests.py b/python/samba/tests/krb5/fast_tests.py
index 6a6fdfa786e..7e69d6c83df 100755
--- a/python/samba/tests/krb5/fast_tests.py
+++ b/python/samba/tests/krb5/fast_tests.py
@@ -53,6 +53,7 @@ from samba.tests.krb5.rfc4120_constants import (
NT_SRV_INST,
PADATA_FX_COOKIE,
PADATA_FX_FAST,
+ PADATA_REQ_ENC_PA_REP,
)
import samba.tests.krb5.rfc4120_pyasn1 as krb5_asn1
import samba.tests.krb5.kcrypto as kcrypto
@@ -112,6 +113,84 @@ class FAST_Tests(KDCBaseTest):
}
], client_account=self.AccountType.COMPUTER)
+ def test_simple_as_req_self_no_auth_data(self):
+ self._run_test_sequence(
+ [
+ {
+ 'rep_type': KRB_AS_REP,
+ 'expected_error_mode': KDC_ERR_PREAUTH_REQUIRED,
+ 'use_fast': False,
+ 'as_req_self': True
+ },
+ {
+ 'rep_type': KRB_AS_REP,
+ 'expected_error_mode': 0,
+ 'use_fast': False,
+ 'gen_padata_fn': self.generate_enc_timestamp_padata,
+ 'as_req_self': True,
+ 'expect_pac': True
+ }
+ ],
+ client_account=self.AccountType.COMPUTER,
+ client_opts={'no_auth_data_required': True})
+
+ def test_simple_as_req_self_pac_request_false(self):
+ self._run_test_sequence([
+ {
+ 'rep_type': KRB_AS_REP,
+ 'expected_error_mode': KDC_ERR_PREAUTH_REQUIRED,
+ 'use_fast': False,
+ 'as_req_self': True
+ },
+ {
+ 'rep_type': KRB_AS_REP,
+ 'expected_error_mode': 0,
+ 'use_fast': False,
+ 'gen_padata_fn': self.generate_enc_timestamp_padata,
+ 'as_req_self': True,
+ 'pac_request': False,
+ 'expect_pac': False
+ }
+ ], client_account=self.AccountType.COMPUTER)
+
+ def test_simple_as_req_self_pac_request_none(self):
+ self._run_test_sequence([
+ {
+ 'rep_type': KRB_AS_REP,
+ 'expected_error_mode': KDC_ERR_PREAUTH_REQUIRED,
+ 'use_fast': False,
+ 'as_req_self': True
+ },
+ {
+ 'rep_type': KRB_AS_REP,
+ 'expected_error_mode': 0,
+ 'use_fast': False,
+ 'gen_padata_fn': self.generate_enc_timestamp_padata,
+ 'as_req_self': True,
+ 'pac_request': None,
+ 'expect_pac': True
+ }
+ ], client_account=self.AccountType.COMPUTER)
+
+ def test_simple_as_req_self_pac_request_true(self):
+ self._run_test_sequence([
+ {
+ 'rep_type': KRB_AS_REP,
+ 'expected_error_mode': KDC_ERR_PREAUTH_REQUIRED,
+ 'use_fast': False,
+ 'as_req_self': True
+ },
+ {
+ 'rep_type': KRB_AS_REP,
+ 'expected_error_mode': 0,
+ 'use_fast': False,
+ 'gen_padata_fn': self.generate_enc_timestamp_padata,
+ 'as_req_self': True,
+ 'pac_request': True,
+ 'expect_pac': True
+ }
+ ], client_account=self.AccountType.COMPUTER)
+
def test_simple_tgs(self):
self._run_test_sequence([
{
@@ -122,6 +201,35 @@ class FAST_Tests(KDCBaseTest):
}
])
+ def test_simple_enc_pa_rep(self):
+ self._run_test_sequence([
+ {
+ 'rep_type': KRB_AS_REP,
+ 'expected_error_mode': KDC_ERR_PREAUTH_REQUIRED,
+ 'use_fast': False
+ },
+ {
+ 'rep_type': KRB_AS_REP,
+ 'expected_error_mode': 0,
+ 'use_fast': False,
+ 'gen_padata_fn': self.generate_enc_pa_rep_timestamp_padata,
+ 'expected_flags': 'enc-pa-rep'
+ }
+ ])
+
+ # Currently we only send PADATA-REQ-ENC-PA-REP for AS-REQ requests.
+ def test_simple_tgs_enc_pa_rep(self):
+ self._run_test_sequence([
+ {
+ 'rep_type': KRB_TGS_REP,
+ 'expected_error_mode': 0,
+ 'use_fast': False,
+ 'gen_tgt_fn': self.get_user_tgt,
+ 'gen_padata_fn': self.generate_enc_pa_rep_padata,
+ 'expected_flags': 'enc-pa-rep'
+ }
+ ])
+
def test_simple_no_sname(self):
expected_sname = self.get_krbtgt_sname()
@@ -422,6 +530,7 @@ class FAST_Tests(KDCBaseTest):
}
])
+ # Expected to fail against Windows - Windows does not produce an error.
def test_fast_unknown_critical_option(self):
self._run_test_sequence([
{
@@ -572,6 +681,7 @@ class FAST_Tests(KDCBaseTest):
}
])
+ # Expected to fail against Windows - Windows does not produce an error.
def test_fast_encrypted_challenge_clock_skew(self):
# The KDC is supposed to confirm that the timestamp is within its
# current clock skew, and return KRB_APP_ERR_SKEW if it is not (RFC6113
@@ -605,7 +715,8 @@ class FAST_Tests(KDCBaseTest):
self._run_test_sequence([
{
'rep_type': KRB_AS_REP,
- 'expected_error_mode': KDC_ERR_POLICY,
+ 'expected_error_mode': (KDC_ERR_POLICY,
+ KDC_ERR_S_PRINCIPAL_UNKNOWN),
'use_fast': True,
'fast_armor': FX_FAST_ARMOR_AP_REQUEST,
'gen_armor_tgt_fn': self.get_user_service_ticket
@@ -620,7 +731,8 @@ class FAST_Tests(KDCBaseTest):
self._run_test_sequence([
{
'rep_type': KRB_AS_REP,
- 'expected_error_mode': KDC_ERR_POLICY,
+ 'expected_error_mode': (KDC_ERR_POLICY,
+ KDC_ERR_S_PRINCIPAL_UNKNOWN),
'use_fast': True,
'fast_armor': FX_FAST_ARMOR_AP_REQUEST,
'gen_armor_tgt_fn': self.get_mach_service_ticket
@@ -637,7 +749,8 @@ class FAST_Tests(KDCBaseTest):
self._run_test_sequence([
{
'rep_type': KRB_AS_REP,
- 'expected_error_mode': KDC_ERR_POLICY,
+ 'expected_error_mode': (KDC_ERR_POLICY,
+ KDC_ERR_S_PRINCIPAL_UNKNOWN),
'use_fast': True,
'fast_armor': FX_FAST_ARMOR_AP_REQUEST,
'gen_armor_tgt_fn': self.get_service_ticket_invalid_checksum
@@ -657,7 +770,8 @@ class FAST_Tests(KDCBaseTest):
},
{
'rep_type': KRB_AS_REP,
- 'expected_error_mode': KDC_ERR_PREAUTH_REQUIRED,
+ 'expected_error_mode': (KDC_ERR_PREAUTH_REQUIRED,
+ KDC_ERR_POLICY),
'use_fast': True,
'gen_padata_fn': self.generate_enc_timestamp_padata,
'fast_armor': FX_FAST_ARMOR_AP_REQUEST,
@@ -743,6 +857,56 @@ class FAST_Tests(KDCBaseTest):
}
])
+ def test_fast_enc_pa_rep(self):
+ self._run_test_sequence([
+ {
+ 'rep_type': KRB_AS_REP,
+ 'expected_error_mode': KDC_ERR_PREAUTH_REQUIRED,
+ 'use_fast': True,
+ 'fast_armor': FX_FAST_ARMOR_AP_REQUEST,
+ 'gen_armor_tgt_fn': self.get_mach_tgt,
+ 'expected_flags': 'enc-pa-rep'
+ },
+ {
+ 'rep_type': KRB_AS_REP,
+ 'expected_error_mode': 0,
+ 'use_fast': True,
+ 'gen_padata_fn': self.generate_enc_pa_rep_challenge_padata,
+ 'fast_armor': FX_FAST_ARMOR_AP_REQUEST,
+ 'gen_armor_tgt_fn': self.get_mach_tgt,
+ 'expected_flags': 'enc-pa-rep'
+ }
+ ])
+
+ # Currently we only send PADATA-REQ-ENC-PA-REP for AS-REQ requests.
+ def test_fast_tgs_enc_pa_rep(self):
+ self._run_test_sequence([
+ {
+ 'rep_type': KRB_TGS_REP,
+ 'expected_error_mode': 0,
+ 'use_fast': True,
+ 'gen_tgt_fn': self.get_user_tgt,
+ 'fast_armor': None,
+ 'gen_padata_fn': self.generate_enc_pa_rep_padata,
+ 'expected_flags': 'enc-pa-rep'
+ }
+ ])
+
+ # Currently we only send PADATA-REQ-ENC-PA-REP for AS-REQ requests.
+ def test_fast_tgs_armor_enc_pa_rep(self):
+ self._run_test_sequence([
+ {
+ 'rep_type': KRB_TGS_REP,
+ 'expected_error_mode': 0,
+ 'use_fast': True,
+ 'gen_tgt_fn': self.get_user_tgt,
+ 'gen_armor_tgt_fn': self.get_mach_tgt,
+ 'fast_armor': FX_FAST_ARMOR_AP_REQUEST,
+ 'gen_padata_fn': self.generate_enc_pa_rep_padata,
+ 'expected_flags': 'enc-pa-rep'
+ }
+ ])
+
def test_fast_outer_wrong_realm(self):
self._run_test_sequence([
{
@@ -1295,14 +1459,16 @@ class FAST_Tests(KDCBaseTest):
return fast_padata
def _run_test_sequence(self, test_sequence,
- client_account=KDCBaseTest.AccountType.USER):
+ client_account=KDCBaseTest.AccountType.USER,
+ client_opts=None):
if self.strict_checking:
self.check_kdc_fast_support()
kdc_options_default = str(krb5_asn1.KDCOptions('forwardable,'
'canonicalize'))
- client_creds = self.get_cached_creds(account_type=client_account)
+ client_creds = self.get_cached_creds(account_type=client_account,
+ opts=client_opts)
target_creds = self.get_service_creds()
krbtgt_creds = self.get_krbtgt_creds()
@@ -1478,6 +1644,9 @@ class FAST_Tests(KDCBaseTest):
padata):
return list(padata), req_body
+ pac_request = kdc_dict.pop('pac_request', None)
+ expect_pac = kdc_dict.pop('expect_pac', True)
+
pac_options = kdc_dict.pop('pac_options', '1') # claims support
kdc_options = kdc_dict.pop('kdc_options', kdc_options_default)
@@ -1580,7 +1749,8 @@ class FAST_Tests(KDCBaseTest):
kdc_options=kdc_options,
inner_req=inner_req,
outer_req=outer_req,
- pac_request=True,
+ expect_pac=expect_pac,
+ pac_request=pac_request,
pac_options=pac_options,
fast_ap_options=fast_ap_options,
strict_edata_checking=strict_edata_checking,
@@ -1616,7 +1786,8 @@ class FAST_Tests(KDCBaseTest):
kdc_options=kdc_options,
inner_req=inner_req,
outer_req=outer_req,
- pac_request=None,
+ expect_pac=expect_pac,
+ pac_request=pac_request,
pac_options=pac_options,
fast_ap_options=fast_ap_options,
strict_edata_checking=strict_edata_checking,
@@ -1638,6 +1809,14 @@ class FAST_Tests(KDCBaseTest):
fast_cookie = None
preauth_etype_info2 = None
+
+ # Check whether the ticket contains a PAC.
+ ticket = kdc_exchange_dict['rep_ticket_creds']
+ pac = self.get_ticket_pac(ticket, expect_pac=expect_pac)
+ if expect_pac:
+ self.assertIsNotNone(pac)
+ else:
+ self.assertIsNone(pac)
else:
self.check_error_rep(rep, expected_error_mode)
@@ -1656,6 +1835,38 @@ class FAST_Tests(KDCBaseTest):
# Ensure we used all the parameters given to us.
self.assertEqual({}, kdc_dict)
+ def generate_enc_pa_rep_padata(self,
+ kdc_exchange_dict,
+ callback_dict,
+ req_body):
+ padata = self.PA_DATA_create(PADATA_REQ_ENC_PA_REP, b'')
+
+ return [padata], req_body
+
+ def generate_enc_pa_rep_challenge_padata(self,
+ kdc_exchange_dict,
+ callback_dict,
+ req_body):
+ padata, req_body = self.generate_enc_challenge_padata(kdc_exchange_dict,
+ callback_dict,
+ req_body)
+
+ padata.append(self.PA_DATA_create(PADATA_REQ_ENC_PA_REP, b''))
+
+ return padata, req_body
+
+ def generate_enc_pa_rep_timestamp_padata(self,
+ kdc_exchange_dict,
+ callback_dict,
+ req_body):
+ padata, req_body = self.generate_enc_timestamp_padata(kdc_exchange_dict,
+ callback_dict,
+ req_body)
+
+ padata.append(self.PA_DATA_create(PADATA_REQ_ENC_PA_REP, b''))
+
+ return padata, req_body
+
def generate_fast_armor_auth_data(self):
auth_data = self.AuthorizationData_create(AD_FX_FAST_ARMOR, b'')
diff --git a/python/samba/tests/krb5/kdc_base_test.py b/python/samba/tests/krb5/kdc_base_test.py
index d6cbaac60e0..9c79411d487 100644
--- a/python/samba/tests/krb5/kdc_base_test.py
+++ b/python/samba/tests/krb5/kdc_base_test.py
@@ -598,13 +598,21 @@ class KDCBaseTest(RawKerberosTest):
creds.set_tgs_supported_enctypes(supported_enctypes)
creds.set_ap_supported_enctypes(supported_enctypes)
- def creds_set_default_enctypes(self, creds, fast_support=False):
+ def creds_set_default_enctypes(self, creds,
+ fast_support=False,
+ claims_support=False,
+ compound_id_support=False):
default_enctypes = self.get_default_enctypes()
supported_enctypes = KerberosCredentials.etypes_to_bits(
default_enctypes)
if fast_support:
- supported_enctypes |= KerberosCredentials.fast_supported_bits
+ supported_enctypes |= security.KERB_ENCTYPE_FAST_SUPPORTED
+ if claims_support:
+ supported_enctypes |= security.KERB_ENCTYPE_CLAIMS_SUPPORTED
+ if compound_id_support:
+ supported_enctypes |= (
+ security.KERB_ENCTYPE_COMPOUND_IDENTITY_SUPPORTED)
creds.set_as_supported_enctypes(supported_enctypes)
creds.set_tgs_supported_enctypes(supported_enctypes)
@@ -919,7 +927,11 @@ class KDCBaseTest(RawKerberosTest):
# The RODC krbtgt account should support the default enctypes,
# although it might not have the msDS-SupportedEncryptionTypes
# attribute.
- self.creds_set_default_enctypes(creds)
+ self.creds_set_default_enctypes(
+ creds,
+ fast_support=self.kdc_fast_support,
+ claims_support=self.kdc_claims_support,
+ compound_id_support=self.kdc_compound_id_support)
return creds
@@ -1010,8 +1022,11 @@ class KDCBaseTest(RawKerberosTest):
# The krbtgt account should support the default enctypes, although
# it might not (on Samba) have the msDS-SupportedEncryptionTypes
# attribute.
- self.creds_set_default_enctypes(creds,
- fast_support=self.kdc_fast_support)
+ self.creds_set_default_enctypes(
+ creds,
+ fast_support=self.kdc_fast_support,
+ claims_support=self.kdc_claims_support,
--
Samba Shared Repository
More information about the samba-cvs
mailing list