HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/samba/tests/blackbox/__pycache__/ndrdump.cpython-310.pyc
o

f�0b�_�@sVdZddlZddlZddlmZmZej�ej�ej�	e
�d��ZGdd�de�ZdS)�Blackbox tests for ndrdump.�N)�BlackboxTestCase�BlackboxProcessErrorz#../../../../../source4/librpc/testsc@s eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Z d<d=�Z!d>d?�Z"d@dA�Z#dBdC�Z$dDdE�Z%dFS)G�NdrDumpTestsrcCstj�t|�S)N)�os�path�join�
data_path_dir)�self�name�r�>/usr/lib/python3/dist-packages/samba/tests/blackbox/ndrdump.py�	data_path szNdrDumpTests.data_pathcC�|�d|�d��dS)Nz1ndrdump --debug-stdout samr samr_CreateUser in %s�samr-CreateUser-in.dat��	check_runr�r
rrr
�test_ndrdump_with_in#�
�z!NdrDumpTests.test_ndrdump_with_incCr)Nz2ndrdump --debug-stdout samr samr_CreateUser out %s�samr-CreateUser-out.datrrrrr
�test_ndrdump_with_out'rz"NdrDumpTests.test_ndrdump_with_outcCs"|�d|�d�|�d�f�dS)NzDndrdump --debug-stdout --context-file %s samr samr_CreateUser out %srrrrrrr
�test_ndrdump_context_file+s���z&NdrDumpTests.test_ndrdump_context_filecCr)Nz<ndrdump --debug-stdout --validate samr samr_CreateUser in %srrrrrr
�test_ndrdump_with_validate1rz'NdrDumpTests.test_ndrdump_with_validatecCr)NzCndrdump --debug-stdout dns decode_dns_name_packet in --hex-input %s�"dns-decode_dns_name_packet-hex.datrrrrr
�%test_ndrdump_with_hex_decode_function5s
��z2NdrDumpTests.test_ndrdump_with_hex_decode_functionc
C�pt|�d����}z|�d|�d��}Wnty,}z|�|�WYd}~nd}~ww|�||�d��dS)Nz"dns-decode_dns_name_packet-hex.txtz@ndrdump --debug-stdout dns dns_name_packet struct --hex-input %sr�utf-8��openr�read�check_outputr�fail�assertEqual�encode�r
�expected�actual�errr
�!test_ndrdump_with_hex_struct_name:s����z.NdrDumpTests.test_ndrdump_with_hex_struct_namec
Cs~d}z|�d|�d��}Wnty%}z|�|�WYd}~nd}~ww|�|dt|��|�d��|�|�d��dS)Nz�pull returned Success
    PAC_DATA: struct PAC_DATA
        num_buffers              : 0x00000005 (5)
        version                  : 0x00000000 (0)
        buffers: ARRAY(5)z1ndrdump --debug-stdout krb5pac PAC_DATA struct %szkrb5pac-PAC_DATA.datr�dump OK
)	r!rrr"r#�lenr$�
assertTrue�endswithr%rrr
�$test_ndrdump_with_binary_struct_nameGs�����z1NdrDumpTests.test_ndrdump_with_binary_struct_namec
C�t|�d���}|��}Wd�n1swY|�d�}z	|�d|�}Wnty@}z|�|�WYd}~nd}~ww|�||�d��dS)Nzkrb5pac_upn_dns_info_ex.txtzkrb5pac_upn_dns_info_ex.b64.txt�Mndrdump --debug-stdout -d0 krb5pac PAC_DATA struct --validate --base64-input rr�r
�fr&rr'r(rrr
�test_ndrdump_upn_dns_info_ex\s(�
������z)NdrDumpTests.test_ndrdump_upn_dns_info_exc
Cr/)Nz)krb5pac_upn_dns_info_ex_not_supported.txtz-krb5pac_upn_dns_info_ex_not_supported.b64.txtr0rrr1rrr
�*test_ndrdump_upn_dns_info_ex_not_supportedls(�
������z7NdrDumpTests.test_ndrdump_upn_dns_info_ex_not_supportedc
Csbd}z|�d|�d��}Wnty%}z|�|�WYd}~nd}~ww|�||�d��dS)Nzbpull returned Success
    GUID                     : 33323130-3534-3736-3839-616263646566
dump OK
z'ndrdump --debug-stdout misc 0 struct %sz
misc-GUID.datr)r!rrr"r#r$r%rrr
�&test_ndrdump_with_binary_struct_numbers����z3NdrDumpTests.test_ndrdump_with_binary_struct_numberc
C�Zd}z|�dd�}Wnty!}z|�|�WYd}~nd}~ww|�||�d��dS)Nz/Public structure 'netr_SchannelType' not found
z>ndrdump --debug-stdout misc netr_SchannelType --input=x struct�r��check_exit_coderr"r#r$r%rrr
�!test_ndrdump_with_enum_not_struct�s���z.NdrDumpTests.test_ndrdump_with_enum_not_structc
Cr6)N� pull returned Buffer Size Error
z;ndrdump --debug-stdout -d0 misc GUID struct --input=abcdefg�rr8r%rrr
�,test_ndrdump_input_cmdline_short_struct_name�s���z9NdrDumpTests.test_ndrdump_input_cmdline_short_struct_namec
Cr6)Nztpull returned Buffer Size Error
6 bytes consumed
[0000] 61 62 63 64 65 66 67                                abcdefg
zGndrdump --debug-stdout -d0 misc GUID struct --input=abcdefg --dump-datar<rr8r%rrr
�1test_ndrdump_input_cmdline_short_struct_name_dump�s���z>NdrDumpTests.test_ndrdump_input_cmdline_short_struct_name_dumpc
Cr6)Na�pull returned Buffer Size Error
6 bytes consumed
[0000] 61 62 63 64 65 66 67                                abcdefg
WARNING! 1 unread bytes
[0000] 67                                                  g
WARNING: pull of GUID was incomplete, therefore the parse below may SEGFAULT
    GUID                     : 64636261-6665-0000-0000-000000000000
dump of failed-to-parse GUID complete
zcndrdump --debug-stdout -d0 misc GUID struct --input=abcdefg --dump-data --print-after-parse-failurer<rr8r%rrr
�7test_ndrdump_input_cmdline_short_struct_name_print_fail�s���zDNdrDumpTests.test_ndrdump_input_cmdline_short_struct_name_print_failc
C�Rd}z|�d�}Wnty }z|�|�WYd}~nd}~ww|�||�dS)NsFpull returned Success
WARNING! 53 unread bytes
[0000] 00 FF 00 00 FF 00 00 00   00 09 00 00 00 08 00 33   ........ .......3
[0010] 33 32 37 36 32 36 39 33   32 37 36 38 34 01 00 00   32762693 27684...
[0020] 80 32 0D FF 00 00 FF 00   00 00 00 08 00 00 00 1C   .2...... ........
[0030] F1 29 08 00 00                                      .)...
    clusapi_QueryAllValues: struct clusapi_QueryAllValues
        out: struct clusapi_QueryAllValues
            pcbData                  : *
                pcbData                  : 0x01000000 (16777216)
            ppData                   : *
                ppData: ARRAY(1)
                    ppData                   : NULL
            rpc_status               : *
                rpc_status               : WERR_OK
            result                   : WERR_NOT_ENOUGH_MEMORY
dump OK
z�ndrdump --debug-stdout clusapi clusapi_QueryAllValues out --base64-input --input=AAAAAQEAAAAAAAAAAAAAAAgAAAAA/wAA/wAAAAAJAAAACAAzMzI3NjI2OTMyNzY4NAEAAIAyDf8AAP8AAAAACAAAABzxKQgAAA==�r!rr"r#r%rrr
�*test_ndrdump_fuzzed_clusapi_QueryAllValues�s���z7NdrDumpTests.test_ndrdump_fuzzed_clusapi_QueryAllValuesc
C�^d}z|�dd�}Wnty!}z|�|�WYd}~nd}~ww|�|�d�|d�dS)Nz)pull returned Character Conversion Error
zxndrdump --debug-stdout IOXIDResolver ResolveOxid out --base64-input --input=c87PMf7CBAUAAAAADgQMBASjfPqKw0KPld6DY87PMfQ=r<�utf8�$�r9rr"�assertRegex�decoder%rrr
�-test_ndrdump_fuzzed_IOXIDResolver_ResolveOxid�����z:NdrDumpTests.test_ndrdump_fuzzed_IOXIDResolver_ResolveOxidc
CrC)Nr;z�ndrdump --debug-stdout IOXIDResolver ResolveOxid2 out --base64-input --input=AAAAAQ0K9Q0AAAAAAAAAA6ampqampqampqampqampqampqampqamNAAAAAAtNDQ=r<rDrErFr%rrr
�.test_ndrdump_fuzzed_IOXIDResolver_ResolveOxid2�rJz;NdrDumpTests.test_ndrdump_fuzzed_IOXIDResolver_ResolveOxid2c
Cr@)Ns�pull returned Success
WARNING! 46 unread bytes
[0000] 0D 36 0A 0A 0A 0A 0A 00   00 00 00 00 00 00 03 00   .6...... ........
[0010] 00 00 01 00 00 33 39 36   31 36 31 37 37 36 38 34   .....396 16177684
[0020] 32 34 FC 85 AC 49 0B 61   87 0A 0A 0A F5 00         24...I.a ......
    ServerAlive: struct ServerAlive
        out: struct ServerAlive
            result                   : DOS code 0x01000000
dump OK
z�ndrdump --debug-stdout IOXIDResolver ServerAlive out --base64-input --input=AAAAAQ02CgoKCgoAAAAAAAAAAwAAAAEAADM5NjE2MTc3Njg0MjT8haxJC2GHCgoK9QA=rAr%rrr
�.test_ndrdump_fuzzed_IOXIDResolver_ServerAlive2s
���z;NdrDumpTests.test_ndrdump_fuzzed_IOXIDResolver_ServerAlive2c
CrC)Nr;z�ndrdump --debug-stdout IRemoteActivation RemoteActivation out --base64-input --input=AAAAAQAAAAAAAABKAAD/AAAAAP4AAAAAAAAASgAAAAAAAAABIiIjIiIiIiIiIiIiIiMiAAAAAAD/AAAAAAAAr<rDrErFr%rrr
�6test_ndrdump_fuzzed_IRemoteActivation_RemoteActivationrJzCNdrDumpTests.test_ndrdump_fuzzed_IRemoteActivation_RemoteActivationc
Cr)Nz'fuzzed_ntlmssp-AUTHENTICATE_MESSAGE.txtzWndrdump --debug-stdout ntlmssp AUTHENTICATE_MESSAGE struct --base64-input %s --validatez+fuzzed_ntlmssp-AUTHENTICATE_MESSAGE.b64.txtrrr%rrr
�1test_ndrdump_fuzzed_ntlmsssp_AUTHENTICATE_MESSAGE(�����z>NdrDumpTests.test_ndrdump_fuzzed_ntlmsssp_AUTHENTICATE_MESSAGEc
Cs^d}d}z|�|d�}Wnty#}z|�|�WYd}~nd}~ww|�|�d�|�dS)Nz5ndr_pull_string: ndr_pull_error\(Buffer Size Error\):zYndrdump --debug-stdout drsblobs package_PackagesBlob struct --input='aw==' --base64-inputr<rDrF�r
r&�commandr'r(rrr
� test_ndrdump_fuzzed_PackagesBlob4s���z-NdrDumpTests.test_ndrdump_fuzzed_PackagesBlobc
Cr)Nzfuzzed_drsuapi_DsAddEntry_1.txtzQndrdump --debug-stdout drsuapi drsuapi_DsAddEntry in --base64-input --validate %sz#fuzzed_drsuapi_DsAddEntry_1.b64.txtrrr%rrr
�(test_ndrdump_fuzzed_drsuapi_DsAddEntry_1ArOz5NdrDumpTests.test_ndrdump_fuzzed_drsuapi_DsAddEntry_1c
Csxd}z|�d|�d��|�d|�WdSty;}z|t|�vr0|�|�WYd}~dSWYd}~dSd}~ww)NzMaximum Recursion Exceededz7ndrdump --debug-stdout drsuapi 17 out --base64-input %sz/fuzzed_drsuapi_DsaAddressListItem_V1-in.b64.txtz'Input should have been rejected with %s)r!rr"r�str)r
r&r(rrr
�1test_ndrdump_fuzzed_drsuapi_DsaAddressListItem_V1Ms ������z>NdrDumpTests.test_ndrdump_fuzzed_drsuapi_DsaAddressListItem_V1c
Cr)Nz%fuzzed_drsuapi_DsReplicaAttribute.txtz]ndrdump --debug-stdout drsuapi drsuapi_DsReplicaAttribute struct --base64-input --validate %sz)fuzzed_drsuapi_DsReplicaAttribute.b64.txtrrr%rrr
�.test_ndrdump_fuzzed_drsuapi_DsReplicaAttributeYrOz;NdrDumpTests.test_ndrdump_fuzzed_drsuapi_DsReplicaAttributec
Cs�t|�d����}z|�d|�d��}Wnty,}z|�|�WYd}~nd}~ww|�||�d��t|�d����}z|�d|�d��}Wntyb}z|�|�WYd}~nd}~ww|�||�d��dS)Nz1../../../source3/selftest/ktest-krb5_ccache-2.txtzVndrdump krb5ccache CCACHE struct --configfile /dev/null --debug-stdout -d1 --validate z-../../../source3/selftest/ktest-krb5_ccache-2rz1../../../source3/selftest/ktest-krb5_ccache-3.txtz-../../../source3/selftest/ktest-krb5_ccache-3rr%rrr
�test_ndrdump_Krb5ccachees8����������z$NdrDumpTests.test_ndrdump_Krb5ccachec
Csrd}d}z|�d�}Wnty"}z|�|�WYd}~nd}~ww|�|dt|��|�|�|�|��dS)NsFpull returned Success
WARNING! 2 unread bytes
[0000] 00 00                                               ..
    spoolss_EnumForms: struct spoolss_EnumForms
        out: struct spoolss_EnumForms
            count                    : *
                count                    : 0x00000100 (256)
            info                     : *
                info                     : *
                    info: ARRAY(256)
                        info                     : union spoolss_FormInfo(case 0)
                        info                     : union spoolss_FormInfo(case 0)
szinfo                     : union spoolss_FormInfo(case 0)
                        info                     : union spoolss_FormInfo(case 0)
                        info                     : union spoolss_FormInfo(case 0)
                        info                     : union spoolss_FormInfo(case 0)
                        info                     : union spoolss_FormInfo(case 0)
                        info                     : union spoolss_FormInfo(case 0)
            needed                   : *
                needed                   : 0x00000000 (0)
            result                   : DOS code 0xa9a9a900
dump OK
zkndrdump --debug-stdout spoolss spoolss_EnumForms out --base64-input --input AAAAAQAAAAAAAAAAAAEAAACpqakAAA=)r!rr"r#r+r,r-�r
�
expected_head�
expected_tailr'r(rrr
�%test_ndrdump_fuzzed_spoolss_EnumForms�s
����z2NdrDumpTests.test_ndrdump_fuzzed_spoolss_EnumFormsc
Cs�t|�d�����d�}d}z|�d|�d��}Wnty1}z|�|�WYd}~nd}~ww|�|dt|��|�|�	|�
|��dS)Nzxattr_NTACL.txtrDr*zIndrdump --debug-stdout xattr xattr_NTACL struct --hex-input %s --validatezxattr_NTACL.dat)rrr r$r!rr"r#r+r,r-rXrrr
�test_ndrdump_xattr_NTACL�s �����z%NdrDumpTests.test_ndrdump_xattr_NTACLc
Csft|�d�����d�}z|�d�}Wnty*}z|�|�WYd}~nd}~ww|�||�dS)Nzdnsp-DnssrvRpcRecord.txtrDz�ndrdump --debug-stdout dnsp dnsp_DnssrvRpcRecord struct --input BQAPAAXwAAC3AAAAAAADhAAAAAAAAAAAAAoBAAA= --base64-input --validate)rrr r$r!rr"r#r%rrr
�!test_ndrdump_dnsp_DnssrvRpcRecord�s���z.NdrDumpTests.test_ndrdump_dnsp_DnssrvRpcRecordc
Cr@)Nsppull returned Success
WARNING! 13 unread bytes
[0000] F5 FF 00 3C 3C 25 FF 70   16 1F A0 12 84            ...<<%.p .....
    PAC_BUFFER: struct PAC_BUFFER
        type                     : UNKNOWN_ENUM_VALUE (1094251328)
        _ndr_size                : 0x048792c6 (75993798)
        info                     : NULL
        _pad                     : 0x06000000 (100663296)
push returned Success
pull returned Success
    PAC_BUFFER: struct PAC_BUFFER
        type                     : UNKNOWN_ENUM_VALUE (1094251328)
        _ndr_size                : 0x00000000 (0)
        info                     : NULL
        _pad                     : 0x00000000 (0)
WARNING! orig bytes:29 validated pushed bytes:16
WARNING! orig and validated differ at byte 0x04 (4)
WARNING! orig byte[0x04] = 0xC6 validated byte[0x04] = 0x00
-[0000] 40 F3 38 41 C6 92 87 04   00 00 00 00 00 00 00 06   @.8A.... ........
+[0000] 40 F3 38 41 00 00 00 00   00 00 00 00 00 00 00 00   @.8A.... ........
-[0010] F5 FF 00 3C 3C 25 FF 70   16 1F A0 12 84            ...<<%.p .....
+[0010]                                                     EMPTY   BLOCK
dump OK
z{ndrdump --debug-stdout krb5pac PAC_BUFFER struct --validate --input QPM4QcaShwQAAAAAAAAABvX/ADw8Jf9wFh+gEoQ= --base64-inputrAr%rrr
�)test_ndrdump_fuzzed_NULL_union_PAC_BUFFER�s���z6NdrDumpTests.test_ndrdump_fuzzed_NULL_union_PAC_BUFFERc
Cs�t|�d�����d�}z|�d�}Wnty*}z|�|�WYd}~nd}~wwd}t�|d|�}t�|d|�}|�	||�dS)Nz$fuzzed_ntlmssp-CHALLENGE_MESSAGE.txtrDz�ndrdump --debug-stdout ntlmssp CHALLENGE_MESSAGE struct --validate --input 'AAAACwIAAAAAJwIAAAAAAAcAAAAAAAAAAIAbhG8uyk9dAL0mQE73MAAAAAAAAAAA' --base64-inputs"\.\./\.\./librpc/ndr/ndr\.c:[0-9]+�)
rrr r$r!rr"�re�subr#)r
r&r'r(�regexrrr
�9test_ndrdump_fuzzed_NULL_struct_ntlmssp_CHALLENGE_MESSAGE�s���zFNdrDumpTests.test_ndrdump_fuzzed_NULL_struct_ntlmssp_CHALLENGE_MESSAGEc
Csbt|�d�d���}z|�d�}Wnty(}z|�|�WYd}~nd}~ww|�||�dS)Nz!fuzzed_drsuapi_DsGetNCChanges.txt�rba�ndrdump --debug-stdout drsuapi 3 out --base64-input --input AQAAAAEAAAAGAKoAAAAGAKoGAAMAAQAAAAYAEwAAAAAAAAAA/wAAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAABbAAAAAAAAAAAAAAkRAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPkAAAAAAAABAAD4BgATAAAAAAAAAAD/AAAAAAAAAD8AAAAAAAAAAAAAAAAAAAAAAFsAAAAAAAAAAAAABgAQAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAMAAAABAAAACREAAAEAAAABAAAAAAAAAAYAEAABAAgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA=)rrr r!rr"r#r%rrr
�"test_fuzzed_drsuapi_DsGetNCChangess���z/NdrDumpTests.test_fuzzed_drsuapi_DsGetNCChangesc
Csbd}d}z|�|d�}Wnty#}z|�|�WYd}~nd}~ww|�|�d�|d�dS)Nzpull returned Buffer Size Errorztndrdump --debug-stdout drsuapi 3 out --base64-input --input BwAAAAcAAAAGAAAAAwAgICAgICAJAAAAICAgIAkAAAAgIAAA//////8=r<rDrErFrPrrr
�#test_ndrdump_fuzzed_ndr_compressions���z0NdrDumpTests.test_ndrdump_fuzzed_ndr_compressionc
CsVd}d}z|�|�}Wnty"}z|�|�WYd}~nd}~ww|�||�dS)Ns�pull returned Success
    dnsp_DnsProperty_short: struct dnsp_DnsProperty_short
        wDataLength              : 0x00000000 (0)
        namelength               : 0x00000000 (0)
        flag                     : 0x00000000 (0)
        version                  : 0x00000001 (1)
        id                       : DSPROPERTY_ZONE_NS_SERVERS_DA (146)
        data                     : union dnsPropertyData(case 0)
        name                     : 0x00000000 (0)
dump OK
zqndrdump --debug-stdout dnsp dnsp_DnsProperty_short struct --base64-input --input AAAAAAAAAAAAAAAAAQAAAJIAAAAAAAAArArPrrr
�test_ndrdump_short_dnsPropertys���z+NdrDumpTests.test_ndrdump_short_dnsPropertyN)&�__name__�
__module__�__qualname__�__doc__rrrrrrr)r.r3r4r5r:r=r>r?rBrIrKrLrMrNrRrSrUrVrWr[r\r]r^rcrerfrgrrrr
rsH





'%#
r)
rkrr`�samba.testsrrr�abspathr�dirname�__file__r	rrrrr
�<module>s