
    b_                         d Z ddlZddlZddlmZmZ ej                            ej                            ej        	                    e
          d                    Z G d de          ZdS )Blackbox tests for ndrdump.    N)BlackboxTestCaseBlackboxProcessErrorz#../../../../../source4/librpc/testsc                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$S )%NdrDumpTestsr   c                 L    t           j                            t          |          S )N)ospathjoindata_path_dir)selfnames     >/usr/lib/python3/dist-packages/samba/tests/blackbox/ndrdump.py	data_pathzNdrDumpTests.data_path    s    w||M4000    c                 \    |                      d|                     d          z             d S )Nz1ndrdump --debug-stdout samr samr_CreateUser in %ssamr-CreateUser-in.dat	check_runr   r   s    r   test_ndrdump_with_inz!NdrDumpTests.test_ndrdump_with_in#   s@    K'?@@B 	D 	D 	D 	D 	Dr   c                 \    |                      d|                     d          z             d S )Nz2ndrdump --debug-stdout samr samr_CreateUser out %ssamr-CreateUser-out.datr   r   s    r   test_ndrdump_with_outz"NdrDumpTests.test_ndrdump_with_out'   s@    L'@AAC 	E 	E 	E 	E 	Er   c                     |                      d|                     d          d|                     d                     d S )Nz&ndrdump --debug-stdout --context-file r   z samr samr_CreateUser out r   r   r   s    r   test_ndrdump_context_filez&NdrDumpTests.test_ndrdump_context_file+   sR     899998999;	= 	= 	= 	= 	=r   c                 \    |                      d|                     d          z             d S )Nz<ndrdump --debug-stdout --validate samr samr_CreateUser in %sr   r   r   s    r   test_ndrdump_with_validatez'NdrDumpTests.test_ndrdump_with_validate1   s@    V'?@@B 	D 	D 	D 	D 	Dr   c                 \    |                      d|                     d          z             d S )NzCndrdump --debug-stdout dns decode_dns_name_packet in --hex-input %s"dns-decode_dns_name_packet-hex.datr   r   s    r   %test_ndrdump_with_hex_decode_functionz2NdrDumpTests.test_ndrdump_with_hex_decode_function5   s@    RCDDE	G 	G 	G 	G 	Gr   c                 r   t          |                     d                                                    }	 |                     d|                     d          z            }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||                    d                     d S )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es       r   !test_ndrdump_with_hex_struct_namez.NdrDumpTests.test_ndrdump_with_hex_struct_name:   s    'KLLMMRRTT	&&RCDDEF FFF $ 	 	 	IIaLLLLLLLL	
 	!9!9:::::   +A" "
B,BBc                    d}	 |                      d|                     d          z            }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     |d t          |                   |                    d                     |                     |                    d                     d S )Nzpull returned Success
    PAC_DATA: struct PAC_DATA
        num_buffers              : 0x00000005 (5)
        version                  : 0x00000000 (0)
        buffers: ARRAY(5)z1ndrdump --debug-stdout krb5pac PAC_DATA struct %szkrb5pac-PAC_DATA.datr#      dump OK
)	r'   r   r   r(   r)   lenr*   
assertTrueendswithr+   s       r   $test_ndrdump_with_binary_struct_namez1NdrDumpTests.test_ndrdump_with_binary_struct_nameG   s    
	&&C56678 8FF $ 	 	 	IIaLLLLLLLL	
 	X/!11	3 	3 	35566666   +0 
AAAc                    t          |                     d                    5 }|                                }d d d            n# 1 swxY w Y   |                     d          }	 |                     d|z             }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||                    d                     d S )Nzkrb5pac_upn_dns_info_ex.txtzkrb5pac_upn_dns_info_ex.b64.txtMndrdump --debug-stdout -d0 krb5pac PAC_DATA struct --validate --base64-input r#   r$   r   fr,   r   r-   r.   s         r   test_ndrdump_upn_dns_info_exz)NdrDumpTests.test_ndrdump_upn_dns_info_ex\   s*   $..-/ / 0 0 	 34vvxxH	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  NN-/ /		&&-/89: :FF $ 	 	 	IIaLLLLLLLL	 	!9!9:::::)   AAA%A> >
B'B""B'c                    t          |                     d                    5 }|                                }d d d            n# 1 swxY w Y   |                     d          }	 |                     d|z             }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||                    d                     d S )Nz)krb5pac_upn_dns_info_ex_not_supported.txtz-krb5pac_upn_dns_info_ex_not_supported.b64.txtr9   r#   r$   r:   s         r   *test_ndrdump_upn_dns_info_ex_not_supportedz7NdrDumpTests.test_ndrdump_upn_dns_info_ex_not_supportedl   s,   $..;= = > > 	 ABvvxxH	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  NN;= =		 &&-/89: :FF $ 	 	 	IIaLLLLLLLL	 	!9!9:::::r=   c                    d}	 |                      d|                     d          z            }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||                    d                     d S )Nzbpull returned Success
    GUID                     : 33323130-3534-3736-3839-616263646566
dump OK
z'ndrdump --debug-stdout misc 0 struct %szmisc-GUID.datr#   )r'   r   r   r(   r)   r*   r+   s       r   &test_ndrdump_with_binary_struct_numberz3NdrDumpTests.test_ndrdump_with_binary_struct_number   s    	&&9//01 1FF $ 	 	 	IIaLLLLLLLL	
 	!9!9:::::r7   c                     d}	 |                      dd          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||                    d                     d S )Nz/Public structure 'netr_SchannelType' not found
z>ndrdump --debug-stdout misc netr_SchannelType --input=x struct   r#   check_exit_coder   r(   r)   r*   r+   s       r   !test_ndrdump_with_enum_not_structz.NdrDumpTests.test_ndrdump_with_enum_not_struct   s    	))P FF $ 	 	 	IIaLLLLLLLL	
 	!9!9:::::    
A?Ac                     d}	 |                      dd          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||                    d                     d S )N pull returned Buffer Size Error
z;ndrdump --debug-stdout -d0 misc GUID struct --input=abcdefg   r#   rD   r+   s       r   ,test_ndrdump_input_cmdline_short_struct_namez9NdrDumpTests.test_ndrdump_input_cmdline_short_struct_name   s    	))MqR RFF# 	 	 	IIaLLLLLLLL	
 	!9!9:::::rG   c                     d}	 |                      dd          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||                    d                     d S )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-datarJ   r#   rD   r+   s       r   1test_ndrdump_input_cmdline_short_struct_name_dumpz>NdrDumpTests.test_ndrdump_input_cmdline_short_struct_name_dump   s    
	))Y[\^ ^FF# 	 	 	IIaLLLLLLLL	
 	!9!9:::::rG   c                     d}	 |                      dd          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||                    d                     d S )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-failurerJ   r#   rD   r+   s       r   7test_ndrdump_input_cmdline_short_struct_name_print_failzDNdrDumpTests.test_ndrdump_input_cmdline_short_struct_name_print_fail   s    
	))uwxz zFF# 	 	 	IIaLLLLLLLL	
 	!9!9:::::rG   c                     d}	 |                      d          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||           d S )NsF  pull 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
zndrdump --debug-stdout clusapi clusapi_QueryAllValues out --base64-input --input=AAAAAQEAAAAAAAAAAAAAAAgAAAAA/wAA/wAAAAAJAAAACAAzMzI3NjI2OTMyNzY4NAEAAIAyDf8AAP8AAAAACAAAABzxKQgAAA==r'   r   r(   r)   r+   s       r   *test_ndrdump_fuzzed_clusapi_QueryAllValuesz7NdrDumpTests.test_ndrdump_fuzzed_clusapi_QueryAllValues   s    &	&&wx xFF $ 	 	 	IIaLLLLLLLL	*****    
A>Ac                     d}	 |                      dd          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     |                    d          |dz              d S )Nz)pull returned Character Conversion Error
zxndrdump --debug-stdout IOXIDResolver ResolveOxid out --base64-input --input=c87PMf7CBAUAAAAADgQMBASjfPqKw0KPld6DY87PMfQ=rJ   utf8$rE   r   r(   assertRegexdecoder+   s       r   -test_ndrdump_fuzzed_IOXIDResolver_ResolveOxidz:NdrDumpTests.test_ndrdump_fuzzed_IOXIDResolver_ResolveOxid   s    	))? 	 FF
 $ 	 	 	IIaLLLLLLLL	v..3?????rG   c                     d}	 |                      dd          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     |                    d          |dz              d S )NrI   zndrdump --debug-stdout IOXIDResolver ResolveOxid2 out --base64-input --input=AAAAAQ0K9Q0AAAAAAAAAA6ampqampqampqampqampqampqampqamNAAAAAAtNDQ=rJ   rU   rV   rW   r+   s       r   .test_ndrdump_fuzzed_IOXIDResolver_ResolveOxid2z;NdrDumpTests.test_ndrdump_fuzzed_IOXIDResolver_ResolveOxid2   s    	))S 	 FF
 $ 	 	 	IIaLLLLLLLL	v..3?????rG   c                     d}	 |                      d          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||           d S )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
zndrdump --debug-stdout IOXIDResolver ServerAlive out --base64-input --input=AAAAAQ02CgoKCgoAAAAAAAAAAwAAAAEAADM5NjE2MTc3Njg0MjT8haxJC2GHCgoK9QA=rQ   r+   s       r   .test_ndrdump_fuzzed_IOXIDResolver_ServerAlive2z;NdrDumpTests.test_ndrdump_fuzzed_IOXIDResolver_ServerAlive2  s    		&&WX XFF $ 	 	 	IIaLLLLLLLL	*****rS   c                     d}	 |                      dd          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     |                    d          |dz              d S )NrI   zndrdump --debug-stdout IRemoteActivation RemoteActivation out --base64-input --input=AAAAAQAAAAAAAABKAAD/AAAAAP4AAAAAAAAASgAAAAAAAAABIiIjIiIiIiIiIiIiIiMiAAAAAAD/AAAAAAAArJ   rU   rV   rW   r+   s       r   6test_ndrdump_fuzzed_IRemoteActivation_RemoteActivationzCNdrDumpTests.test_ndrdump_fuzzed_IRemoteActivation_RemoteActivation  s    	))g 	 FF
 $ 	 	 	IIaLLLLLLLL	v..3?????rG   c                 r   t          |                     d                                                    }	 |                     d|                     d          z            }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||                    d                     d S )Nz'fuzzed_ntlmssp-AUTHENTICATE_MESSAGE.txtzWndrdump --debug-stdout ntlmssp AUTHENTICATE_MESSAGE struct --base64-input %s --validatez+fuzzed_ntlmssp-AUTHENTICATE_MESSAGE.b64.txtr#   r$   r+   s       r   1test_ndrdump_fuzzed_ntlmsssp_AUTHENTICATE_MESSAGEz>NdrDumpTests.test_ndrdump_fuzzed_ntlmsssp_AUTHENTICATE_MESSAGE(  s    'PQQRRWWYY	&&iLMMNO OFF $ 	 	 	IIaLLLLLLLL	 	!9!9:::::r0   c                     d}d}	 |                      |d          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     |                    d          |           d S )Nz5ndr_pull_string: ndr_pull_error\(Buffer Size Error\):zYndrdump --debug-stdout drsblobs package_PackagesBlob struct --input='aw==' --base64-inputrJ   rU   rW   r   r,   commandr-   r.   s        r    test_ndrdump_fuzzed_PackagesBlobz-NdrDumpTests.test_ndrdump_fuzzed_PackagesBlob4  s    L 		))'155FF# 	 	 	IIaLLLLLLLL	 	v..99999    
AAAc                 r   t          |                     d                                                    }	 |                     d|                     d          z            }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||                    d                     d S )Nzfuzzed_drsuapi_DsAddEntry_1.txtzQndrdump --debug-stdout drsuapi drsuapi_DsAddEntry in --base64-input --validate %sz#fuzzed_drsuapi_DsAddEntry_1.b64.txtr#   r$   r+   s       r   (test_ndrdump_fuzzed_drsuapi_DsAddEntry_1z5NdrDumpTests.test_ndrdump_fuzzed_drsuapi_DsAddEntry_1A  s    'HIIJJOOQQ	&&cDEEFG GFF $ 	 	 	IIaLLLLLLLL	 	!9!9:::::r0   c                    d}	 |                      d|                     d          z             |                     d|z             d S # t          $ r7}|t	          |          vr|                     |           Y d }~d S Y d }~d S d }~ww xY w)NzMaximum 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'   r   r(   r   str)r   r,   r.   s      r   1test_ndrdump_fuzzed_drsuapi_DsaAddressListItem_V1z>NdrDumpTests.test_ndrdump_fuzzed_drsuapi_DsaAddressListItem_V1M  s    /	IEG GGH H H II?(JKKKKK# 	 	 	s1vv%%		! &%%%%%	s   AA	 	
B
&BB
c                 r   t          |                     d                                                    }	 |                     d|                     d          z            }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||                    d                     d S )Nz%fuzzed_drsuapi_DsReplicaAttribute.txtz]ndrdump --debug-stdout drsuapi drsuapi_DsReplicaAttribute struct --base64-input --validate %sz)fuzzed_drsuapi_DsReplicaAttribute.b64.txtr#   r$   r+   s       r   .test_ndrdump_fuzzed_drsuapi_DsReplicaAttributez;NdrDumpTests.test_ndrdump_fuzzed_drsuapi_DsReplicaAttributeY  s    'NOOPPUUWW	&&oJKKLM MFF $ 	 	 	IIaLLLLLLLL	 	!9!9:::::r0   c                    t          |                     d                                                    }	 |                     d|                     d          z             }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||                    d                     t          |                     d                                                    }	 |                     d|                     d          z             }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||                    d                     d S )Nz1../../../source3/selftest/ktest-krb5_ccache-2.txtzVndrdump krb5ccache CCACHE struct --configfile /dev/null --debug-stdout -d1 --validate z-../../../source3/selftest/ktest-krb5_ccache-2r#   z1../../../source3/selftest/ktest-krb5_ccache-3.txtz-../../../source3/selftest/ktest-krb5_ccache-3r$   r+   s       r   test_ndrdump_Krb5ccachez$NdrDumpTests.test_ndrdump_Krb5ccachee  s    (A B B C CCG466 		
 &&H  5 6 667 7FF
 $ 	 	 	IIaLLLLLLLL	 	!9!9::: (A B B C CCG466 		
 &&H  5 6 667 7FF
 $ 	 	 	IIaLLLLLLLL	 	!9!9:::::s/   +A" "
B,BB,+D 
E"D<<Ec                 :   d}d}	 |                      d          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     |d t	          |                   |           |                     |                    |                     d S )NsF  pull 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)
sz  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)
                        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'   r   r(   r)   r3   r4   r5   r   expected_headexpected_tailr-   r.   s        r   %test_ndrdump_fuzzed_spoolss_EnumFormsz2NdrDumpTests.test_ndrdump_fuzzed_spoolss_EnumForms  s    
	&&: FF $ 	 	 	IIaLLLLLLLL	 3]!3!3 34&	( 	( 	(6677777    
AA  Ac                    t          |                     d                                                                        d          }d}	 |                     d|                     d          z            }n,# t
          $ r}|                     |           Y d }~nd }~ww xY w|                     |d t          |                   |           | 	                    |
                    |                     d S )Nzxattr_NTACL.txtrU   r2   zIndrdump --debug-stdout xattr xattr_NTACL struct --hex-input %s --validatezxattr_NTACL.dat)r%   r   r&   r*   r'   r   r(   r)   r3   r4   r5   rr   s        r   test_ndrdump_xattr_NTACLz%NdrDumpTests.test_ndrdump_xattr_NTACL  s   dnn->??@@EEGGNNvVV	&&[01123 3FF $ 	 	 	IIaLLLLLLLL	 	 3]!3!3 34&	( 	( 	(6677777s   +A7 7
B BB c                 F   t          |                     d                                                                        d          }	 |                     d          }n,# t
          $ r}|                     |           Y d }~nd }~ww xY w|                     ||           d S )Nzdnsp-DnssrvRpcRecord.txtrU   zndrdump --debug-stdout dnsp dnsp_DnssrvRpcRecord struct --input BQAPAAXwAAC3AAAAAAADhAAAAAAAAAAAAAoBAAA= --base64-input --validate)r%   r   r&   r*   r'   r   r(   r)   r+   s       r   !test_ndrdump_dnsp_DnssrvRpcRecordz.NdrDumpTests.test_ndrdump_dnsp_DnssrvRpcRecord  s    'ABBCCHHJJQQRXYY	&&,- -FF $ 	 	 	IIaLLLLLLLL	 	*****   	A 
B)BBc                     d}	 |                      d          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||           d S )Nsp  pull 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-inputrQ   r+   s       r   )test_ndrdump_fuzzed_NULL_union_PAC_BUFFERz6NdrDumpTests.test_ndrdump_fuzzed_NULL_union_PAC_BUFFER  s    0	&&JK KFF $ 	 	 	IIaLLLLLLLL	 	*****rS   c                    t          |                     d                                                                        d          }	 |                     d          }n,# t
          $ r}|                     |           Y d }~nd }~ww xY wd}t          j        |d|          }t          j        |d|          }| 	                    ||           d S )Nz$fuzzed_ntlmssp-CHALLENGE_MESSAGE.txtrU   zndrdump --debug-stdout ntlmssp CHALLENGE_MESSAGE struct --validate --input 'AAAACwIAAAAAJwIAAAAAAAcAAAAAAAAAAIAbhG8uyk9dAL0mQE73MAAAAAAAAAAA' --base64-inputs"   \.\./\.\./librpc/ndr/ndr\.c:[0-9]+r   )
r%   r   r&   r*   r'   r   r(   resubr)   )r   r,   r-   r.   regexs        r   9test_ndrdump_fuzzed_NULL_struct_ntlmssp_CHALLENGE_MESSAGEzFNdrDumpTests.test_ndrdump_fuzzed_NULL_struct_ntlmssp_CHALLENGE_MESSAGE  s    (NOOPPUUWW^^_eff	&&de eFF $ 	 	 	IIaLLLLLLLL	 7sF++6%h//*****r{   c                 "   t          |                     d          d                                          }	 |                     d          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||           d S )Nz!fuzzed_drsuapi_DsGetNCChanges.txtrba  ndrdump --debug-stdout drsuapi 3 out --base64-input --input AQAAAAEAAAAGAKoAAAAGAKoGAAMAAQAAAAYAEwAAAAAAAAAA/wAAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAABbAAAAAAAAAAAAAAkRAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPkAAAAAAAABAAD4BgATAAAAAAAAAAD/AAAAAAAAAD8AAAAAAAAAAAAAAAAAAAAAAFsAAAAAAAAAAAAABgAQAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAMAAAABAAAACREAAAEAAAABAAAAAAAAAAYAEAABAAgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA=)r%   r   r&   r'   r   r(   r)   r+   s       r   "test_fuzzed_drsuapi_DsGetNCChangesz/NdrDumpTests.test_fuzzed_drsuapi_DsGetNCChanges  s    (KLLdSSXXZZ	&&op pFF $ 	 	 	IIaLLLLLLLL	 	*****s   A 
A6A11A6c                     d}d}	 |                      |d          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     |                    d          |dz              d S )Nzpull returned Buffer Size Errorztndrdump --debug-stdout drsuapi 3 out --base64-input --input BwAAAAcAAAAGAAAAAwAgICAgICAJAAAAICAgIAkAAAAgIAAA//////8=rJ   rU   rV   rW   rd   s        r   #test_ndrdump_fuzzed_ndr_compressionz0NdrDumpTests.test_ndrdump_fuzzed_ndr_compression  s    4O 		))'155FF# 	 	 	IIaLLLLLLLL	 	v..3?????rg   c                     d}d}	 |                      |          }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|                     ||           d S )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 AAAAAAAAAAAAAAAAAQAAAJIAAAAAAAAArQ   rd   s        r   test_ndrdump_short_dnsPropertyz+NdrDumpTests.test_ndrdump_short_dnsProperty  s    
7 		&&w//FF# 	 	 	IIaLLLLLLLL	*****rv   N)&__name__
__module____qualname____doc__r   r   r   r   r   r!   r/   r6   r<   r?   rA   rF   rK   rM   rO   rR   rZ   r\   r^   r`   rb   rf   ri   rl   rn   rp   ru   rx   rz   r}   r   r   r   r    r   r   r   r      s3       %%1 1 1D D DE E E= = =D D DG G G
; ; ;7 7 7*; ; ; ; ; ;&; ; ; ; ; ;; ; ;; ; ; ; ; ;,+ + +:@ @ @@ @ @+ + +(@ @ @
; 
; 
;: : :
; 
; 
;
 
 

; 
; 
;#; #; #;N"8 "8 "8J8 8 8"+ + + +  +  +F+ + +"	+ 	+ 	+@ @ @+ + + + +r   r   )r   r	   r   samba.testsr   r   r
   abspathr   dirname__file__r   r   r   r   r   <module>r      s   * " ! 				 				 > > > > > > > >RW__X-F-FHm n nooR+ R+ R+ R+ R+# R+ R+ R+ R+ R+r   