From: Douglas Bagnall Date: Wed, 12 Feb 2025 02:29:28 +0000 (+1300) Subject: pytest: add ndr packing tests for security descriptors X-Git-Tag: samba-4.20.8~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a74d5beb2acac863007af1c7bd525b0e1403134a;p=thirdparty%2Fsamba.git pytest: add ndr packing tests for security descriptors BUG: https://bugzilla.samba.org/show_bug.cgi?id=15738 Signed-off-by: Douglas Bagnall Reviewed-by: Volker Lendecke (cherry picked from commit 455a0558c89312061f3b9ccaa577a4a60df7ee77) [bugzilla link added in backport] --- diff --git a/python/samba/tests/ndr/sd.py b/python/samba/tests/ndr/sd.py new file mode 100644 index 00000000000..b72327421b0 --- /dev/null +++ b/python/samba/tests/ndr/sd.py @@ -0,0 +1,623 @@ +# Unix SMB/CIFS implementation. +# Copyright © Douglas Bagnall 2025 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import samba +from samba.tests import TestCase, DynamicTestCase +from samba.ndr import ndr_pack, ndr_unpack +from samba.dcerpc import security + + +class BaseSDTestCase(TestCase): + maxDiff = 10000 + _cases = { + # subclasses should have a mapping of test names to binhex + # strings, as readable by bytes.fromhex(). + # + # note, in Python 3.7+ that means hex pairs separated by any + # amount of whitespace, but in Python 3.6 it means any number + # of spaces. For example; + # + # 'ok_in_36': ("01 0203 04 05" + # " 06"), + # 'ok_in_37': """ + # 01 02\t03 + # 04 + # 05 06""" + } + + @classmethod + def setUpDynamicTestCases(cls): + for k, v in cls._cases.items(): + cls.generate_dynamic_test('test_sd', k, v) + + def _test_sd_with_args(self, v): + packed = bytes.fromhex(v) + try: + sd = ndr_unpack(security.descriptor, packed) + except (TypeError, ValueError, RuntimeError) as e: + self.fail(f"raised {e}") + try: + repack = ndr_pack(sd) + except (TypeError, ValueError) as e: + self.fail(f"raised {e}") + + sd2 = ndr_unpack(security.descriptor, repack) + self.assertEqual(sd, sd2) + + +@DynamicTestCase +class SDTestCase(BaseSDTestCase): + _cases = { + "sd_01": ( + # this one is manually annotated, but not because it is + # especially interesting. + "01 " # version + "00 " # + "17 8c " # control: SR,RM,PS,SI,SD,SP,DP + "14 00 00 00 " # owner offset (20) + "30 00 00 00 " # group offset (48) + "4c 00 00 00 " # sacl offset (76) + "c4 00 00 00 " # dacl offset (196) + "01 05 " # S-1- (5 sub auths) + "00 00 00 00 00 05 " # 5- + "15 00 00 00 " # 21- + "51 d7 cf 86 " + "f9 1b ef 93 " + "c3 53 ea 70 " + "00 02 00 00 " + "01 05 " # group: S-1-5-21-b-c-d-e + "00 00 00 00 00 05 " + "15 00 00 00 " + "51 d7 cf 86 " + "f9 1b ef 93 " + "c3 53 ea 70 " + "00 02 00 00 " + # SACL + "04 00 " # sacl v4 + "78 00 " # sacl size (92) + "02 00 " # ace count (2) + "00 00 " + "07 " # sacl ACE, SYSTEM_AUDIT_OBJECT_ACE_TYPE + "5a " # flags + "38 00 " # ace size + "20 00 00 00 " # mask + "03 00 00 00 " # flags + "be 3b 0e f3 f0 9f d1 11 " # object type GUID + "b6 03 00 00 f8 03 67 c1 " + "a5 7a 96 bf e6 0d d0 11 " # inherited type GUID + "a2 85 00 aa 00 30 49 e2 " + "01 01 " # S-1- (1 subauth) + "00 00 00 00 00 01 " # 1- + "00 00 00 00 " # 0 + "07 " # sacl ACE, SYSTEM_AUDIT_OBJECT_ACE_TYPE + "5a " # flags + "38 00 " # size + "20 00 00 00 " # mask + "03 00 00 00 " #flags + "bf 3b 0e f3 f0 9f d1 11 " # objct GUID + "b6 03 00 00 f8 03 67 c1 " + "a5 7a 96 bf e6 0d d0 11 " # inherited GUID + "a2 85 00 aa 00 30 49 e2 " + "01 01 " # S-1- (1 subauth) + "00 00 00 00 00 01 " # 1- + "00 00 00 00 " # 0 + # DACL + "04 00 " # dacl v4 + "10 02 " # dacl size (528) + "0d 00 " # 13 aces + "00 00 " + "00 " # ACCESS_ALLOWED_ACE_TYPE + "00 " # flags + "24 00 " # size + "ff 01 0f 00 " # mask + "01 05 " # S-1- (5 subauth) + "00 00 00 00 00 05 " # 5- + "15 00 00 00 " # 21- + "51 d7 cf 86 " + "f9 1b ef 93 " + "c3 53 ea 70 " + "00 02 00 00 " + "00 " # ACCESS_ALLOWED_ACE_TYPE + "00 " + "14 00 " + "ff 01 0f 00 " + "01 01 " # S-1-5-18 + "00 00 00 00 00 05 " + "12 00 00 00 " + "00 " # ACCESS_ALLOWED_ACE_TYPE + "00 " + "14 00 " + "94 00 02 00 " + "01 01 " # S-1-5-11 + "00 00 00 00 00 05 " + "0b 00 00 00 " + "00 " # ACCESS_ALLOWED_ACE_TYPE + "12 " # flags + "24 00 " + "ff 01 0f 00 " + "01 05 " # S-1-5-a-b-c-d-e + "00 00 00 00 00 05 " + "15 00 00 00 " + "51 d7 cf 86 " + "f9 1b ef 93 " + "c3 53 ea 70 " + "07 02 00 00 " + "00 " # ACCESS_ALLOWED_ACE_TYPE + "12 " # flags + "18 00 " + "bd 01 0f 00 " + "01 02 " # S-1-5-32-544 + "00 00 00 00 00 05 " + "20 00 00 00 " + "20 02 00 00 " + "00 " # ACCESS_ALLOWED_ACE_TYPE + "12 " # flags + "18 00 " + "04 00 00 00 " + "01 02 " # S-1-5-32-554 + "00 00 00 00 00 05 " + "20 00 00 00 " + "2a 02 00 00 " + "05 " # ACCESS_ALLOWED_OBJECT_ACE_TYPE + "1a " + "38 00 " # size 56 + "08 00 00 00 " # mask + "03 00 00 00 " # flags: object and inherited present + "a6 6d 02 9b 3c 0d 5c 46 " # object GUID + "8b ee 51 99 d7 16 5c ba " + "86 7a 96 bf e6 0d d0 11 " # inherited GUID + "a2 85 00 aa 00 30 49 e2 " + "01 01 " # S-1-3-0 + "00 00 00 00 00 03 " + "00 00 00 00 " + "05 " # ACCESS_ALLOWED_OBJECT_ACE_TYPE + "12 " + "28 00 " # size 40 + "30 00 00 00 " # mask + "01 00 00 00 " # flags: object present + "e5 c3 78 3f 9a f7 bd 46 " # object GUID + "a0 b8 9d 18 11 6d dc 79 " + "01 01 " # S-1-5-10 + "00 00 00 00 00 05 " + "0a 00 00 00 " + "05 " + "12 " + "28 00 " + "30 01 00 00 " + "01 00 00 00 " # flags: object present + "de 47 e6 91 6f d9 70 4b " # object GUID + "95 57 d6 3f f4 f3 cc d8 " + "01 01 " # S-1-5-10 + "00 00 00 00 00 05 " + "0a 00 00 00 " + "05 " + "1a " + "38 00 " # size 56 + "08 00 00 00 " + "03 00 00 00 " # flags both present + "a6 6d 02 9b 3c 0d 5c 46 " + "8b ee 51 99 d7 16 5c ba " + "86 7a 96 bf e6 0d d0 11 " + "a2 85 00 aa 00 30 49 e2 " + "01 01 " # S-1-5-10 + "00 00 00 00 00 05 " + "0a 00 00 00 " + "05 " + "1a " + "38 00 " # size 56 + "20 00 00 00 " + "03 00 00 00 " + "93 7b 1b ea 48 5e d5 46 " + "bc 6c 4d f4 fd a7 8a 35 " + "86 7a 96 bf e6 0d d0 11 " + "a2 85 00 aa 00 30 49 e2 " + "01 01 " # S-1-5-10 + "00 00 00 00 00 05 " + "0a 00 00 00 " + "05 " + "12 " + "38 00 " # size 56 + "30 00 00 00 " + "01 00 00 00 " # only object GUI present + "0f d6 47 5b 90 60 b2 40 " + "9f 37 2a 4d e8 8f 30 63 " + "01 05 " # S-1-5-21-b-c-d-e + "00 00 00 00 00 05 " + "15 00 00 00 " + "51 d7 cf 86 " + "f9 1b ef 93 " + "c3 53 ea 70 " + "0e 02 00 00 " + "05 " + "12 " + "38 00 " # size 56 + "30 00 00 00 " + "01 00 00 00 " + "0f d6 47 5b 90 60 b2 40 " + "9f 37 2a 4d e8 8f 30 63 " + "01 05 " # S-1-5-21-b-c-d-e + "00 00 00 00 00 05 " + "15 00 00 00 " + "51 d7 cf 86 " + "f9 1b ef 93 " + "c3 53 ea 70 " + "0f 02 00 00" + ), + "sd_02": ( + "01 00 17 99 14 00 00 00 30 00 00 00 4c 00 00 00 " + "c4 00 00 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 00 02 00 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 04 00 78 00 " + "02 00 00 00 07 5a 38 00 20 00 00 00 03 00 00 00 " + "be 3b 0e f3 f0 9f d1 11 b6 03 00 00 f8 03 67 c1 " + "a5 7a 96 bf e6 0d d0 11 a2 85 00 aa 00 30 49 e2 " + "01 01 00 00 00 00 00 01 00 00 00 00 07 5a 38 00 " + "20 00 00 00 03 00 00 00 bf 3b 0e f3 f0 9f d1 11 " + "b6 03 00 00 f8 03 67 c1 a5 7a 96 bf e6 0d d0 11 " + "a2 85 00 aa 00 30 49 e2 01 01 00 00 00 00 00 01 " + "00 00 00 00 04 00 60 01 0a 00 00 00 00 0a 14 00 " + "ff 00 0f 00 01 01 00 00 00 00 00 03 00 00 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "0b 00 00 00 00 02 14 00 ff 00 0f 00 01 01 00 00 " + "00 00 00 05 12 00 00 00 00 02 24 00 ff 00 0f 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 00 02 24 00 " + "ff 00 0f 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 07 02 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "09 00 00 00 05 00 38 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 05 02 28 00 " + "00 01 00 00 01 00 00 00 8f fd ac ed b3 ff d1 11 " + "b4 1d 00 a0 c9 68 f9 39 01 01 00 00 00 00 00 05 " + "0b 00 00 00 05 00 28 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 01 00 00 00 00 00 05 12 00 00 00 05 00 38 00 " + "00 01 00 00 01 00 00 00 8f fd ac ed b3 ff d1 11 " + "b4 1d 00 a0 c9 68 f9 39 01 05 00 00 00 00 00 05 " + "15 00 00 00 51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 " + "07 02 00 00" + ), + "sd_03": ( + "01 00 17 8c 14 00 00 00 30 00 00 00 4c 00 00 00 " + "c4 00 00 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 00 02 00 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 04 00 78 00 " + "02 00 00 00 07 5a 38 00 20 00 00 00 03 00 00 00 " + "be 3b 0e f3 f0 9f d1 11 b6 03 00 00 f8 03 67 c1 " + "a5 7a 96 bf e6 0d d0 11 a2 85 00 aa 00 30 49 e2 " + "01 01 00 00 00 00 00 01 00 00 00 00 07 5a 38 00 " + "20 00 00 00 03 00 00 00 bf 3b 0e f3 f0 9f d1 11 " + "b6 03 00 00 f8 03 67 c1 a5 7a 96 bf e6 0d d0 11 " + "a2 85 00 aa 00 30 49 e2 01 01 00 00 00 00 00 01 " + "00 00 00 00 04 00 38 01 0b 00 00 00 00 00 24 00 " + "ff 01 0f 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 00 02 00 00 " + "00 00 14 00 ff 01 0f 00 01 01 00 00 00 00 00 05 " + "12 00 00 00 00 00 14 00 94 00 02 00 01 01 00 00 " + "00 00 00 05 0b 00 00 00 00 10 24 00 ff 00 0f 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 00 1a 14 00 " + "ff 00 0f 00 01 01 00 00 00 00 00 03 00 00 00 00 " + "00 12 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "0b 00 00 00 00 12 14 00 ff 00 0f 00 01 01 00 00 " + "00 00 00 05 12 00 00 00 00 12 24 00 ff 00 0f 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 00 12 24 00 " + "ff 00 0f 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 07 02 00 00 " + "00 12 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "09 00 00 00 05 12 28 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 01 00 00 00 00 00 05 0b 00 00 00" + ), + "sd_04_object_ace_with_trailing_zeros": ( + "01 00 04 91 00 00 00 00 00 00 00 00 00 00 00 00 " + "14 00 00 00 04 00 d0 01 0a 00 00 00 00 0a 14 00 " + "ff 00 0f 00 01 01 00 00 00 00 00 03 00 00 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "0b 00 00 00 00 02 14 00 ff 00 0f 00 01 01 00 00 " + "00 00 00 05 12 00 00 00 00 02 24 00 ff 00 0f 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 00 02 24 00 " + "ff 00 0f 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 07 02 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "09 00 00 00 " + "05 " # ACCESS_ALLOWED_OBJECT_ACE_TYPE + "00 " # zero flags + "48 00 " # size 72 + "00 01 00 00 " # mask + "01 00 00 00 " # flags: object present, no inherit + "8f fd ac ed b3 ff d1 11 " # GUID + "b4 1d 00 a0 c9 68 f9 39 " + "01 01 " # S-1-3-0 + "00 00 00 00 00 03 " + "00 00 00 00 " + # next 4 rows are 32 extra bytes + "00 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 " + "05 02 48 00 " # next ACE starts + "00 01 00 00 01 00 00 00 8f fd ac ed b3 ff d1 11 " + "b4 1d 00 a0 c9 68 f9 39 01 01 00 00 00 00 00 05 " + "0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00 05 00 48 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 01 00 00 00 00 00 05 12 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 05 00 58 00 " + "00 01 00 00 01 00 00 00 8f fd ac ed b3 ff d1 11 " + "b4 1d 00 a0 c9 68 f9 39 01 05 00 00 00 00 00 05 " + "15 00 00 00 51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 " + "07 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00" + ), + "sd_05": ( + "01 00 17 8c 14 00 00 00 30 00 00 00 4c 00 00 00 " + "c4 00 00 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 00 02 00 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 04 00 78 00 " + "02 00 00 00 07 5a 38 00 20 00 00 00 03 00 00 00 " + "be 3b 0e f3 f0 9f d1 11 b6 03 00 00 f8 03 67 c1 " + "a5 7a 96 bf e6 0d d0 11 a2 85 00 aa 00 30 49 e2 " + "01 01 00 00 00 00 00 01 00 00 00 00 07 5a 38 00 " + "20 00 00 00 03 00 00 00 bf 3b 0e f3 f0 9f d1 11 " + "b6 03 00 00 f8 03 67 c1 a5 7a 96 bf e6 0d d0 11 " + "a2 85 00 aa 00 30 49 e2 01 01 00 00 00 00 00 01 " + "00 00 00 00 04 00 38 01 0b 00 00 00 00 00 24 00 " + "ff 01 0f 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 00 02 00 00 " + "00 00 14 00 ff 01 0f 00 01 01 00 00 00 00 00 05 " + "12 00 00 00 00 00 14 00 94 00 02 00 01 01 00 00 " + "00 00 00 05 0b 00 00 00 00 10 24 00 ff 00 0f 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 00 1a 14 00 " + "ff 00 0f 00 01 01 00 00 00 00 00 03 00 00 00 00 " + "00 12 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "0b 00 00 00 00 12 14 00 ff 00 0f 00 01 01 00 00 " + "00 00 00 05 12 00 00 00 00 12 24 00 ff 00 0f 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 00 12 24 00 " + "ff 00 0f 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 07 02 00 00 " + "00 12 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "09 00 00 00 05 12 28 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 01 00 00 00 00 00 05 0b 00 00 00" + ), + "sd_06": ( + "01 00 17 99 14 00 00 00 30 00 00 00 4c 00 00 00 " + "c4 00 00 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 00 02 00 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 04 00 78 00 " + "02 00 00 00 07 5a 38 00 20 00 00 00 03 00 00 00 " + "be 3b 0e f3 f0 9f d1 11 b6 03 00 00 f8 03 67 c1 " + "a5 7a 96 bf e6 0d d0 11 a2 85 00 aa 00 30 49 e2 " + "01 01 00 00 00 00 00 01 00 00 00 00 07 5a 38 00 " + "20 00 00 00 03 00 00 00 bf 3b 0e f3 f0 9f d1 11 " + "b6 03 00 00 f8 03 67 c1 a5 7a 96 bf e6 0d d0 11 " + "a2 85 00 aa 00 30 49 e2 01 01 00 00 00 00 00 01 " + "00 00 00 00 04 00 28 01 09 00 00 00 00 0a 14 00 " + "ff 00 0f 00 01 01 00 00 00 00 00 03 00 00 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "0b 00 00 00 00 02 14 00 ff 00 0f 00 01 01 00 00 " + "00 00 00 05 12 00 00 00 00 02 24 00 ff 00 0f 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 00 02 24 00 " + "ff 00 0f 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 07 02 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "09 00 00 00 05 02 28 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 01 00 00 00 00 00 05 0b 00 00 00 05 00 28 00 " + "00 01 00 00 01 00 00 00 8f fd ac ed b3 ff d1 11 " + "b4 1d 00 a0 c9 68 f9 39 01 01 00 00 00 00 00 05 " + "12 00 00 00 05 00 38 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 07 02 00 00" + ), + "sd_07_object_ace_with_trailing_zeros": ( + "01 00 04 91 00 00 00 00 00 00 00 00 00 00 00 00 " + "14 00 00 00 04 00 88 01 09 00 00 00 00 0a 14 00 " + "ff 00 0f 00 01 01 00 00 00 00 00 03 00 00 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "0b 00 00 00 00 02 14 00 ff 00 0f 00 01 01 00 00 " + "00 00 00 05 12 00 00 00 00 02 24 00 ff 00 0f 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 00 02 24 00 " + "ff 00 0f 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 07 02 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "09 00 00 00 05 02 48 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 01 00 00 00 00 00 05 0b 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 05 00 48 00 " + "00 01 00 00 01 00 00 00 8f fd ac ed b3 ff d1 11 " + "b4 1d 00 a0 c9 68 f9 39 01 01 00 00 00 00 00 05 " + "12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00 05 00 58 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 07 02 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00" + ), + "sd_08": ( + "01 00 17 99 14 00 00 00 30 00 00 00 4c 00 00 00 " + "c4 00 00 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 00 02 00 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 04 00 78 00 " + "02 00 00 00 07 5a 38 00 20 00 00 00 03 00 00 00 " + "be 3b 0e f3 f0 9f d1 11 b6 03 00 00 f8 03 67 c1 " + "a5 7a 96 bf e6 0d d0 11 a2 85 00 aa 00 30 49 e2 " + "01 01 00 00 00 00 00 01 00 00 00 00 07 5a 38 00 " + "20 00 00 00 03 00 00 00 bf 3b 0e f3 f0 9f d1 11 " + "b6 03 00 00 f8 03 67 c1 a5 7a 96 bf e6 0d d0 11 " + "a2 85 00 aa 00 30 49 e2 01 01 00 00 00 00 00 01 " + "00 00 00 00 04 00 88 01 0b 00 00 00 00 0a 14 00 " + "ff 00 0f 00 01 01 00 00 00 00 00 03 00 00 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "0b 00 00 00 00 02 14 00 ff 00 0f 00 01 01 00 00 " + "00 00 00 05 12 00 00 00 00 02 24 00 ff 00 0f 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 00 02 24 00 " + "ff 00 0f 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 07 02 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "09 00 00 00 05 02 28 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 01 00 00 00 00 00 05 0b 00 00 00 05 00 28 00 " + "00 01 00 00 01 00 00 00 8f fd ac ed b3 ff d1 11 " + "b4 1d 00 a0 c9 68 f9 39 01 01 00 00 00 00 00 05 " + "12 00 00 00 05 00 38 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 05 00 38 00 " + "00 01 00 00 01 00 00 00 8f fd ac ed b3 ff d1 11 " + "b4 1d 00 a0 c9 68 f9 39 01 05 00 00 00 00 00 05 " + "15 00 00 00 51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 " + "07 02 00 00 05 00 28 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 01 00 00 00 00 00 05 09 00 00 00" + ), + + "sd_09": ( + "01 00 17 99 14 00 00 00 30 00 00 00 4c 00 00 00 " + "c4 00 00 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 00 02 00 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 04 00 78 00 " + "02 00 00 00 07 5a 38 00 20 00 00 00 03 00 00 00 " + "be 3b 0e f3 f0 9f d1 11 b6 03 00 00 f8 03 67 c1 " + "a5 7a 96 bf e6 0d d0 11 a2 85 00 aa 00 30 49 e2 " + "01 01 00 00 00 00 00 01 00 00 00 00 07 5a 38 00 " + "20 00 00 00 03 00 00 00 bf 3b 0e f3 f0 9f d1 11 " + "b6 03 00 00 f8 03 67 c1 a5 7a 96 bf e6 0d d0 11 " + "a2 85 00 aa 00 30 49 e2 01 01 00 00 00 00 00 01 " + "00 00 00 00 04 00 60 01 0a 00 00 00 00 0a 14 00 " + "ff 00 0f 00 01 01 00 00 00 00 00 03 00 00 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "0b 00 00 00 00 02 14 00 ff 00 0f 00 01 01 00 00 " + "00 00 00 05 12 00 00 00 00 02 24 00 ff 00 0f 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 00 02 24 00 " + "ff 00 0f 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 07 02 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "09 00 00 00 05 02 28 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 01 00 00 00 00 00 05 0b 00 00 00 05 00 28 00 " + "00 01 00 00 01 00 00 00 8f fd ac ed b3 ff d1 11 " + "b4 1d 00 a0 c9 68 f9 39 01 01 00 00 00 00 00 05 " + "12 00 00 00 05 00 38 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 05 00 38 00 " + "00 01 00 00 01 00 00 00 8f fd ac ed b3 ff d1 11 " + "b4 1d 00 a0 c9 68 f9 39 01 05 00 00 00 00 00 05 " + "15 00 00 00 51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 " + "07 02 00 00" + ), + "sd_10_object_ace_with_trailing_zeros": ( + "01 00 04 91 00 00 00 00 00 00 00 00 00 00 00 00 " + "14 00 00 00 04 00 28 02 0b 00 00 00 00 0a 14 00 " + "ff 00 0f 00 01 01 00 00 00 00 00 03 00 00 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "0b 00 00 00 00 02 14 00 ff 00 0f 00 01 01 00 00 " + "00 00 00 05 12 00 00 00 00 02 24 00 ff 00 0f 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 00 02 24 00 " + "ff 00 0f 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 07 02 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "09 00 00 00 05 02 48 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 01 00 00 00 00 00 05 0b 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 05 00 48 00 " + "00 01 00 00 01 00 00 00 8f fd ac ed b3 ff d1 11 " + "b4 1d 00 a0 c9 68 f9 39 01 01 00 00 00 00 00 05 " + "12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00 05 00 58 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 05 00 58 00 " + "00 01 00 00 01 00 00 00 8f fd ac ed b3 ff d1 11 " + "b4 1d 00 a0 c9 68 f9 39 01 05 00 00 00 00 00 05 " + "15 00 00 00 51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 " + "07 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00 05 00 48 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 01 00 00 00 00 00 05 09 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + "00 00 00 00 00 00 00 00 00 00 00 00" + ), + "sd_11": ( + "01 00 17 99 14 00 00 00 30 00 00 00 4c 00 00 00 " + "c4 00 00 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 00 02 00 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 04 00 78 00 " + "02 00 00 00 07 5a 38 00 20 00 00 00 03 00 00 00 " + "be 3b 0e f3 f0 9f d1 11 b6 03 00 00 f8 03 67 c1 " + "a5 7a 96 bf e6 0d d0 11 a2 85 00 aa 00 30 49 e2 " + "01 01 00 00 00 00 00 01 00 00 00 00 07 5a 38 00 " + "20 00 00 00 03 00 00 00 bf 3b 0e f3 f0 9f d1 11 " + "b6 03 00 00 f8 03 67 c1 a5 7a 96 bf e6 0d d0 11 " + "a2 85 00 aa 00 30 49 e2 01 01 00 00 00 00 00 01 " + "00 00 00 00 04 00 28 01 09 00 00 00 00 0a 14 00 " + "ff 00 0f 00 01 01 00 00 00 00 00 03 00 00 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "0b 00 00 00 00 02 14 00 ff 00 0f 00 01 01 00 00 " + "00 00 00 05 12 00 00 00 00 02 24 00 ff 00 0f 00 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 00 02 00 00 00 02 24 00 " + "ff 00 0f 00 01 05 00 00 00 00 00 05 15 00 00 00 " + "51 d7 cf 86 f9 1b ef 93 c3 53 ea 70 07 02 00 00 " + "00 02 14 00 94 00 02 00 01 01 00 00 00 00 00 05 " + "09 00 00 00 05 02 28 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 01 00 00 00 00 00 05 0b 00 00 00 05 00 28 00 " + "00 01 00 00 01 00 00 00 8f fd ac ed b3 ff d1 11 " + "b4 1d 00 a0 c9 68 f9 39 01 01 00 00 00 00 00 05 " + "12 00 00 00 05 00 38 00 00 01 00 00 01 00 00 00 " + "8f fd ac ed b3 ff d1 11 b4 1d 00 a0 c9 68 f9 39 " + "01 05 00 00 00 00 00 05 15 00 00 00 51 d7 cf 86 " + "f9 1b ef 93 c3 53 ea 70 07 02 00 00" + ), + } + + +if __name__ == '__main__': + import unittest + unittest.main() diff --git a/selftest/knownfail.d/ndr.sd b/selftest/knownfail.d/ndr.sd new file mode 100644 index 00000000000..fd936a46a5b --- /dev/null +++ b/selftest/knownfail.d/ndr.sd @@ -0,0 +1,3 @@ +samba.tests.ndr.sd.samba.tests.ndr.sd.SDTestCase.test_sd_sd_04_object_ace_with_trailing_zeros +samba.tests.ndr.sd.samba.tests.ndr.sd.SDTestCase.test_sd_sd_07_object_ace_with_trailing_zeros +samba.tests.ndr.sd.samba.tests.ndr.sd.SDTestCase.test_sd_sd_10_object_ace_with_trailing_zeros diff --git a/selftest/tests.py b/selftest/tests.py index ad14bbdfc61..b8bdb7a9dd3 100644 --- a/selftest/tests.py +++ b/selftest/tests.py @@ -238,6 +238,7 @@ planpythontestsuite("none", "samba.tests.samdb") planpythontestsuite("none", "samba.tests.samdb_api") planpythontestsuite("none", "samba.tests.ndr.gkdi") planpythontestsuite("none", "samba.tests.ndr.gmsa") +planpythontestsuite("none", "samba.tests.ndr.sd") planpythontestsuite("none", "samba.tests.ndr.wbint") if with_pam: