summaryrefslogtreecommitdiff
path: root/python/samba/tests
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2020-11-12 17:22:19 +0100
committerAndreas Schneider <asn@cryptomilk.org>2024-10-10 14:01:04 +0000
commit0bc562eb26cad3a5cb8da2da54db86932791f3de (patch)
tree425ef0fbb4bbf82dc96619b44652794b53fec42c /python/samba/tests
parent0da9e4d7430c7dbb37783e6152f7672bf29498e9 (diff)
downloadsamba-0bc562eb26cad3a5cb8da2da54db86932791f3de.tar.gz
samba-0bc562eb26cad3a5cb8da2da54db86932791f3de.tar.bz2
samba-0bc562eb26cad3a5cb8da2da54db86932791f3de.zip
tests/dcerpc/raw_protocol: add more tests for auth_pad alignment
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14356 Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'python/samba/tests')
-rwxr-xr-xpython/samba/tests/dcerpc/raw_protocol.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/python/samba/tests/dcerpc/raw_protocol.py b/python/samba/tests/dcerpc/raw_protocol.py
index 95b3533cfad..0cc26cf4d56 100755
--- a/python/samba/tests/dcerpc/raw_protocol.py
+++ b/python/samba/tests/dcerpc/raw_protocol.py
@@ -6720,6 +6720,7 @@ class TestDCERPC_BIND(RawDCERPCTest):
def _test_spnego_level_bind(self, auth_level,
g_auth_level=dcerpc.DCERPC_AUTH_LEVEL_INTEGRITY,
+ auth_pad_alignment=dcerpc.DCERPC_AUTH_PAD_ALIGNMENT,
alter_fault=None,
request_fault=None,
response_fault_flags=0):
@@ -6749,10 +6750,10 @@ class TestDCERPC_BIND(RawDCERPCTest):
self.assertIsNotNone(g)
stub_bin = b'\x00' * 17
- mod_len = len(stub_bin) % dcerpc.DCERPC_AUTH_PAD_ALIGNMENT
+ mod_len = len(stub_bin) % auth_pad_alignment
auth_pad_length = 0
if mod_len > 0:
- auth_pad_length = dcerpc.DCERPC_AUTH_PAD_ALIGNMENT - mod_len
+ auth_pad_length = auth_pad_alignment - mod_len
stub_bin += b'\x00' * auth_pad_length
if g_auth_level >= dcerpc.DCERPC_AUTH_LEVEL_INTEGRITY:
@@ -6882,6 +6883,20 @@ class TestDCERPC_BIND(RawDCERPCTest):
request_fault=dcerpc.DCERPC_NCA_S_OP_RNG_ERROR,
response_fault_flags=dcerpc.DCERPC_PFC_FLAG_DID_NOT_EXECUTE)
+ def test_spnego_integrity_bind_auth_align4(self):
+ return self._test_spnego_level_bind(auth_level=dcerpc.DCERPC_AUTH_LEVEL_INTEGRITY,
+ g_auth_level=dcerpc.DCERPC_AUTH_LEVEL_INTEGRITY,
+ auth_pad_alignment=4,
+ request_fault=dcerpc.DCERPC_NCA_S_OP_RNG_ERROR,
+ response_fault_flags=dcerpc.DCERPC_PFC_FLAG_DID_NOT_EXECUTE)
+
+ def test_spnego_integrity_bind_auth_align2(self):
+ return self._test_spnego_level_bind(auth_level=dcerpc.DCERPC_AUTH_LEVEL_INTEGRITY,
+ g_auth_level=dcerpc.DCERPC_AUTH_LEVEL_INTEGRITY,
+ auth_pad_alignment=2,
+ request_fault=dcerpc.DCERPC_NCA_S_PROTO_ERROR,
+ response_fault_flags=0)
+
def test_spnego_privacy_bind_none(self):
# This fails...
return self._test_spnego_level_bind(auth_level=dcerpc.DCERPC_AUTH_LEVEL_PRIVACY,