
    bX                     j    d Z ddlmZ ddlZddlZddlZddlmZ  G d dej        j	                  Z
dS )zTests for the Credentials Python bindings.

Note that this just tests the bindings work. It does not intend to test
the functionality, that's already done in other tests.
    )credentialsN)miscc                        e Zd Z f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% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z. xZ/S )-CredentialsTestsc                     t          t          |                                            t          j                    | _        d S N)superr   setUpr   Credentialscreds)self	__class__s    9/usr/lib/python3/dist-packages/samba/tests/credentials.pyr
   zCredentialsTests.setUp!   s4    %%++--- ,..


    c                     | j                             d           |                     d| j                                                    d S )Nsomebody)r   set_usernameassertEqualget_usernamer   s    r   test_set_usernamez"CredentialsTests.test_set_username%   sB    

+++TZ%<%<%>%>?????r   c                     | j                             d           |                     d| j                                                    d S )NS3CreT)r   set_passwordr   get_passwordr   s    r   test_set_passwordz"CredentialsTests.test_set_password)   sB    
)))4:#:#:#<#<=====r   c                     d}|                     d          }|                     | j                            |                     |                     || j                                                   d S )NS3cRet	utf-16-le)encode
assertTruer   set_utf16_passwordr   r   r   password	passbytess      r   test_set_utf16_passwordz(CredentialsTests.test_set_utf16_password-   sd    OOK00	
55i@@AAA4:#:#:#<#<=====r   c                    |                      d | j                                                   |                     | j                            d                     |                      d| j                                                   d S )NS3c0ndS3CreT)r   r   get_old_passwordr!   set_old_passwordr   s    r   test_set_old_passwordz&CredentialsTests.test_set_old_password3   sr    tz::<<===
33NCCDDD)D)D)F)FGGGGGr   c                     d}|                     d          }|                     | j                            |                     |                     || j                                                   d S )N	0ldS3cRetr   )r    r!   r   set_old_utf16_passwordr   r)   r#   s      r   test_set_old_utf16_passwordz,CredentialsTests.test_set_old_utf16_password8   sd    OOK00	
99)DDEEE4:#>#>#@#@AAAAAr   c                     | j                             d           |                     d| j                                                    |                     | j                                         d            d S )NABMAS)r   
set_domainr   
get_domainget_principalr   s    r   test_set_domainz CredentialsTests.test_set_domain>   sf    
g&&&$*"7"7"9"9:::1133T:::::r   c                     | j                             d           |                     d| j                                                    |                     | j                                         d            d S )NmyrealmMYREALM)r   	set_realmr   	get_realmr4   r   s    r   test_set_realmzCredentialsTests.test_set_realmC   sf    
Y'''DJ$8$8$:$:;;;1133T:::::r   c                     | j                             d           |                     d| j                                                    |                     d | j                                                    d S )N% r   parse_stringr   r   r   r   s    r   test_parse_string_anonz'CredentialsTests.test_parse_string_anonH   sf    
$$$TZ4466777tz668899999r   c                     | j                             d           |                     d| j                                                    |                     d| j                                                    d S )Nzsomeone%someoner>   r?   r   s    r   test_parse_string_empty_pwz+CredentialsTests.test_parse_string_empty_pwM   sf    

+++DJ$;$;$=$=>>>TZ446677777r   c                     | j                             d           |                     d| j                                                    |                     d | j                                                    d S )NrC   r?   r   s    r   test_parse_string_none_pwz*CredentialsTests.test_parse_string_none_pwR   sf    
	***DJ$;$;$=$=>>>tz668899999r   c                 H   | j                             d           |                     d| j                                                    |                     d| j                                                    |                     d| j                                                    d S )Nzdom\someone%secrrC   secrDOM)r   r@   r   r   r   r3   r   s    r    test_parse_string_user_pw_domainz1CredentialsTests.test_parse_string_user_pw_domainW   s    
 3444DJ$;$;$=$=>>>!8!8!:!:;;;
 5 5 7 788888r   c                     |                      d | j                                                   | j                            d           |                      d| j                                                   d S )Nzdc=foo,cn=bar)r   r   get_bind_dnset_bind_dnr   s    r   test_bind_dnzCredentialsTests.test_bind_dn]   sf    tz5577888
///$**@*@*B*BCCCCCr   c                    | j                             d           |                     | j                                                    | j                             d           |                     | j                                                    | j                                          |                     | j                                                    d S Nr>   r   )r   r   r!   is_anonymousassertFalseset_anonymousr   s    r   test_is_anonzCredentialsTests.test_is_anonb   s    
###
//11222

+++0022333
  """
//1122222r   c                     | j                             d           |                     d| j                                                    d S )N	myworksta)r   set_workstationr   get_workstationr   s    r   test_workstationz!CredentialsTests.test_workstationj   sD     	
"";///dj&@&@&B&BCCCCCr   c                 *   |                      t          j        | j                                                   | j                            t          j                   |                      t          j        | j                                                   d S r   )r   r   SEC_CHAN_NULLr   get_secure_channel_typeset_secure_channel_typeSEC_CHAN_BDCr   s    r   test_secure_channel_typez)CredentialsTests.test_secure_channel_typep   s    +;;==	? 	? 	?
**4+<===*;;==	? 	? 	? 	? 	?r   c                    d}d}| j                             |           |                     || j                                                    |                     t	          j        |          | j                                                    d S )Ngeheim c2ae1fe6e648846352453e816f2aeb93)r   r   r   r   binasciia2b_hexget_nt_hash)r   r$   
hex_nthashs      r   test_get_nt_hashz!CredentialsTests.test_get_nt_hashw   s    7

)))4:#:#:#<#<===)*55//11	3 	3 	3 	3 	3r   c                    d}d}d}d}d}| j                             d           | j                             d           | j                             |           |                     || j                                                    |                     t          j        |          | j                                                    | j         	                    t          j        t          j        |                    }|                     |d	         t          j        |                     |                     |d
         t          j        |                     |                     |d         t          j                   d S )NSecREt010123456789abcdef cd06ca7c7e10c99b1d33b7485a2ed808 3f373ea8e4af954f14faa506f8eebdc4025a98c1c31e81847466b29b2df4680f39958fb8c213a9cc6frednurk)flags	challengent_responsent_session_keyrp   )r   r   r2   r   r   r   rc   rd   re   get_ntlm_responser   CLI_CRED_NTLM_AUTH)r   r$   hex_challengerf   hex_session_keyhex_ntlm_responseresponses          r   test_get_ntlm_responsez'CredentialsTests.test_get_ntlm_response   s]   *7
<N
'''
f%%%
)))4:#:#:#<#<===)*55//11	3 	3 	3://k6T:B:J=:Y:Y 0 [ [ 	-0(2BCT2U2UVVV"23X5Eo5V5VWWW'*K,JKKKKKr   c                 J   | j                             d           d}| j                             |           |                     d | j                                                    |                     t          j        |          | j                                                    d S )NTrb   )r   set_password_will_be_nt_hashr   r   r   rc   rd   re   )r   rf   s     r   test_get_nt_hash_stringz(CredentialsTests.test_get_nt_hash_string   s    
//5557


+++tz6688999)*55//11	3 	3 	3 	3 	3r   c                 8    | j                                          d S r   )r   set_cmdline_callbacksr   s    r   test_set_cmdline_callbacksz+CredentialsTests.test_set_cmdline_callbacks   s    
((*****r   c                    | j                             d           |                     | j                                                    | j                             d           |                     | j                                                    d S rP   )r   r   rR   authentication_requestedr!   r   s    r   test_authentication_requestedz.CredentialsTests.test_authentication_requested   sv    
###<<>>???

+++
;;==>>>>>r   c                 ^    |                      | j                                                   d S r   )rR   r   wrong_passwordr   s    r   test_wrong_passwordz$CredentialsTests.test_wrong_password   s*    224455555r   c                    t          j                    }t          j                                        }dt
          j        d<   |                    |           |                     |	                                d           |                     |
                                |                    d                                                     |                     |                                d            |                     |                                d|
                                z             |                     |                                d           |                     |                                d           d S )Nenv_userUSER	workgroupenv_user@%sF)r   r   sambatestsenv_loadparmosenvironguessr   r   r3   getupperr:   r4   rQ   r   r   r   lps      r   
test_guesszCredentialsTests.test_guess   s7   '))[%%'''
6B++--z:::))++RVVK-@-@-F-F-H-HIII**D111,,..@P@P@R@R0RSSS++--u55577995AAAAAr   c                    t          j                    }t          j                                        }dt
          j        d<   |                    |           |                                 | 	                    |
                                d           | 	                    |                                d           | 	                    |                                d            | 	                    |                                d            | 	                    |                                d           | 	                    |                                d           d S )Nr   r   r>   TF)r   r   r   r   r   r   r   r   rS   r   r   r3   r:   r4   rQ   r   r   s      r   test_set_anonymousz#CredentialsTests.test_set_anonymous   s    '))[%%'''
6B++--r222))++R000**D111,,..555++--t44477995AAAAAr   c                    d}d}d}d}t           j                            | j        d          }t	          |d          }|                    d|z             |                    d|z             |                    d	|z             |                    d
|z             |                                 | j                            |           | 	                    | j        
                                |           | 	                    | j                                        |           | 	                    | j                                        |                                           | 	                    | j                                        |                                           | 	                    | j                                        |d|                                           | 	                    | j                                        d           | 	                    | j                                        d           t          j        |           d S )Nrealm.example.comdompassuser
parse_filex	realm=%s

domain=%s
zusername=%s
password=%s
@FTr   pathjointempdiropenwritecloser   r   r   r   r   r3   r   r:   r4   rQ   r   unlinkr   realmdomainr$   usernamepasswd_file_namepasswd_file_fds          r   test_parse_file_1z"CredentialsTests.test_parse_file_1   s   #7<<lCC.44\E1222]V3444_x7888_x7888
.///0022H===0022H===..00&,,..AAA--//???1133%++---5XYYY0022E:::<<>>EEE
	"#####r   c                    d}d}d}d}t           j                            | j        d          }t	          |d          }|                    d|z             |                    d|z             |                    d	|d
|d           |                    d|z             |                                 | j                            |           | 	                    | j        
                                |           | 	                    | j                                        |           | 	                    | j                                        |                                           | 	                    | j                                        |                                           | 	                    | j                                        |d|                                           | 	                    | j                                        d           | 	                    | j                                        d           t          j        |           d S )Nr   r   r   r   r   r   r   r   	username=\
r   r   FTr   r   s          r   test_parse_file_2z"CredentialsTests.test_parse_file_2   s   #7<<lCC.44\E1222]V3444FFFHHHEFFF_x7888
.///0022H===0022H===..00&,,..AAA--//???1133%++---5XYYY0022E:::<<>>EEE
	"#####r   c                    d}d}d}d}d}t           j                            | j        d          }t	          |d          }|                    d|z             |                    d	|z             |                    d
|d|d           |                    d|z             |                                 | j                            |           | 	                    | j        
                                |           | 	                    | j                                        |           | 	                    | j                                        |                                           | 	                    | j                                        |                                           | 	                    | j                                        |d|                                           | 	                    | j                                        d           | 	                    | j                                        d           t          j        |           d S )Nr   r   r$   r   userdomr   r   r   r   r   /r   r   r   FTr   )r   r   r   r$   r   r   r   r   s           r   test_parse_file_3z"CredentialsTests.test_parse_file_3   s   #7<<lCC.44\E1222]V3444777HHHEFFF_x7888
.///0022H===0022H===..00'--//BBB--//AAA1133'--///5Z[[[0022E:::<<>>EEE
	"#####r   c           	         d}d}d}t           j                            | j        d          }t	          |d          }|                    d|d|d|d	           |                    d
           |                    d           |                    d           |                                 | j                            |           | 	                    | j        
                                |           | 	                    | j                                        |           | 	                    | j                                        |                                           | 	                    | j                                        |                                           | 	                    | j                                        |d|                                           | 	                    | j                                        d           | 	                    | j                                        d           t          j        |           d S )Nr$   r   r   r   r   r   r   r=   r   realm=ignorerealm
domain=ignoredomain
password=ignorepassword
r   FTr   r   r$   r   r   r   r   s         r   test_parse_file_4z"CredentialsTests.test_parse_file_4  s   7<<lCC.44888TUUU233345558999
.///0022H===0022H===..00'--//BBB--//AAA1133'--///5Z[[[0022E:::<<>>EEE
	"#####r   c           	         d}d}d}t           j                            | j        d          }t	          |d          }|                    d           |                    d|d|d	|d
           |                    d           |                    d           |                                 | j                            |           | 	                    | j        
                                |           | 	                    | j                                        |           | 	                    | j                                        |                                           | 	                    | j                                        |                                           | 	                    | j                                        |d|                                           | 	                    | j                                        d           | 	                    | j                                        d           t          j        |           d S )Nr$   r   r   r   r   r   r   r   r=   r   r   r   r   FTr   r   s         r   test_parse_file_5z"CredentialsTests.test_parse_file_5  s   7<<lCC.442333888TUUU45558999
.///0022H===0022H===..00'--//BBB--//AAA1133'--///5Z[[[0022E:::<<>>EEE
	"#####r   c                 T   t          j                    }t          j                                        }dt
          j        d<   |                    |           |                    d           | 	                    |
                                d           | 	                    |                                |                    d                                                     | 	                    |                                d            | 	                    |                                d|                    d                                          z             | 	                    |                                d           | 	                    |                                d           d S )Nr   r   r   r   user@%sFT)r   r   r   r   r   r   r   r   r@   r   r   r3   r   r   r:   r4   rQ   r   r   s      r   test_parse_username_0z&CredentialsTests.test_parse_username_04  sW   '))[%%'''
6B6"""++--v666))++RVVK-@-@-F-F-H-HIII**D111,,..	BFF;<O<O<U<U<W<W0WXXX++--u55577994@@@@@r   c                    t          j                    }t          j                                        }dt
          j        d<   |                    |           d}|                    |t           j	                   |
                    d           |                     |                                d           |                     |                                |                    d                                                     |                     |                                |                                           |                     |                                d|                                z             |                     |                                d           |                     |                                d           d S )	Nr   r   r   r   r   r   FT)r   r   r   r   r   r   r   r   r9   SMB_CONFr@   r   r   r3   r   r   r:   r4   rQ   r   r   r   r   r   s       r   test_parse_username_1z&CredentialsTests.test_parse_username_1A  sk   '))[%%'''
6B#{34446"""++--v666))++RVVK-@-@-F-F-H-HIII**EKKMM:::,,..	EKKMM0IJJJ++--u55577994@@@@@r   c                    t          j                    }t          j                                        }dt
          j        d<   |                    |           |                    d           | 	                    |
                                d           | 	                    |                                d           | 	                    |                                d            | 	                    |                                d           | 	                    |                                d           | 	                    |                                d           d S )	Nr   r   domain\userr   DOMAINuser@DOMAINFTr   r   r   r   r   r   r   r   r@   r   r   r3   r:   r4   rQ   r   r   s      r   !test_parse_username_with_domain_0z2CredentialsTests.test_parse_username_with_domain_0P  s"   '))[%%'''
6B>***++--v666))++X666**D111,,..>>>++--u55577994@@@@@r   c                    t          j                    }t          j                                        }dt
          j        d<   |                    |           d}|                    |t           j	                   | 
                    |                                d           | 
                    |                                |                    d                                                     | 
                    |                                |                                           | 
                    |                                d|                                z             |                    d           | 
                    |                                d           | 
                    |                                |                    d                                                     | 
                    |                                |                                           | 
                    |                                d           |                    d           | 
                    |                                d           | 
                    |                                d	           | 
                    |                                |                                           | 
                    |                                d
           | 
                    |                                d           | 
                    |                                d           d S Nr   r   r   r   r   zunknown@realm.example.comr   r   r   r   FT)r   r   r   r   r   r   r   r   r9   r   r   r   r3   r   r   r:   r4   set_principalr@   rQ   r   r   s       r   !test_parse_username_with_domain_1z2CredentialsTests.test_parse_username_with_domain_1]  s   '))[%%'''
6B#{3444++--z:::))++RVVK-@-@-F-F-H-HIII**EKKMM:::,,..0MNNN7888++--z:::))++RVVK-@-@-F-F-H-HIII**EKKMM:::,,..0KLLL>***++--v666))++X666**EKKMM:::,,..>>>++--u55577994@@@@@r   c                    t          j                    }t          j                                        }dt
          j        d<   |                    |           d}|                    |t           j	                   | 
                    |                                d           | 
                    |                                |                    d                                                     | 
                    |                                |                                           | 
                    |                                d|                                z             |                    d           | 
                    |                                d           | 
                    |                                |                    d                                                     | 
                    |                                |                                           | 
                    |                                d           |                    d           | 
                    |                                d           | 
                    |                                d	           | 
                    |                                d	           | 
                    |                                d
           | 
                    |                                d           | 
                    |                                d           d S r   )r   r   r   r   r   r   r   r   r9   	SPECIFIEDr   r   r3   r   r   r:   r4   r   r@   rQ   r   r   s       r   !test_parse_username_with_domain_2z2CredentialsTests.test_parse_username_with_domain_2u  s   '))[%%'''
6B#{4555++--z:::))++RVVK-@-@-F-F-H-HIII**EKKMM:::,,..0MNNN7888++--z:::))++RVVK-@-@-F-F-H-HIII**EKKMM:::,,..0KLLL>***++--v666))++X666**H555,,..>>>++--u55577994@@@@@r   c                    t          j                    }t          j                                        }dt
          j        d<   |                    |           |                    d           | 	                    |
                                d           | 	                    |                                d           | 	                    |                                d           | 	                    |                                d           | 	                    |                                d           | 	                    |                                d           d S )Nr   r   user@samba.orgr>   	SAMBA.ORGFTr   r   s      r   test_parse_username_with_realmz/CredentialsTests.test_parse_username_with_realm  s%   '))[%%'''
6B+,,,++--/?@@@))++R000**K888,,..0@AAA++--u55577994@@@@@r   c                 \   t          j                    }t          j                                        }dt
          j        d<   |                    |           |                    d           | 	                    |
                                d           | 	                    |                                d           | 	                    |                                |                    d                     | 	                    |                                d            | 	                    |                                d|                    d          z             | 	                    |                                d           | 	                    |                                d	           d S )
Nr   r   z	user%passr   r   r   r   FT)r   r   r   r   r   r   r   r   r@   r   r   r   r3   r   r:   r4   rQ   r   r   s      r   test_parse_username_pwz'CredentialsTests.test_parse_username_pw  sa   '))[%%'''
6B;'''++--v666++--v666))++RVVK-@-@AAA**D111,,..	BFF;<O<O0OPPP++--u55577994@@@@@r   c                 
   t          j                    }t          j                                        }dt
          j        d<   |                    |           |                    d           | 	                    |
                                d           | 	                    |                                d           | 	                    |                                d           | 	                    |                                d            | 	                    |                                d           | 	                    |                                d           | 	                    |                                d	           d S )
Nr   r   zdomain\user%passr   r   r   r   FTr   r   r   r   r   r   r   r   r@   r   r   r3   r   r:   r4   rQ   r   r   s      r   "test_parse_username_with_domain_pwz3CredentialsTests.test_parse_username_with_domain_pw  sE   '))[%%'''
6B.///++--v666))++X666++--v666**D111,,..>>>++--u55577994@@@@@r   c                 
   t          j                    }t          j                                        }dt
          j        d<   |                    |           |                    d           | 	                    |
                                d           | 	                    |                                d           | 	                    |                                d           | 	                    |                                d           | 	                    |                                d           | 	                    |                                d           | 	                    |                                d	           d S )
Nr   r   zuser@samba.org%passr   r>   r   r   FTr   r   s      r   !test_parse_username_with_realm_pwz2CredentialsTests.test_parse_username_with_realm_pw  sG   '))[%%'''
6B0111++--/?@@@))++R000++--v666**K888,,..0@AAA++--u55577994@@@@@r   c                 2   t          j                    }|                     |                                t           j                   |                    t           j                   |                     |                                t           j                   d S r   )r   r   r   get_smb_signingSMB_SIGNING_DEFAULTset_smb_signingSMB_SIGNING_REQUIREDr   r   s     r   test_smb_signingz!CredentialsTests.test_smb_signing  sw    '))..00+2QRRRk>???..00+2RSSSSSr   c                 &   t           j                                        }t          j                    }|                    |           |                     |                                t          j                   |	                    t          j
                   |                     |                                t          j
                   |                    |           |                     |                                t          j
                   d S r   )r   r   r   r   r   set_confr   r   r   r   SMB_SIGNING_OFFr   r   r   s      r   test_smb_signing_set_confz*CredentialsTests.test_smb_signing_set_conf  s    [%%'''))r..00+2QRRRk9:::..00+2MNNNr..00+2MNNNNNr   c                 2   t          j                    }|                     |                                t           j                   |                    t           j                   |                     |                                t           j                   d S r   )r   r   r   get_smb_ipc_signingr   set_smb_ipc_signingr   r   s     r   test_smb_ipc_signingz%CredentialsTests.test_smb_ipc_signing  sw    '))2244k6VWWW!!+"=>>>2244k6QRRRRRr   c                 &   t           j                                        }t          j                    }|                    |           |                     |                                t          j                   |	                    t          j
                   |                     |                                t          j
                   |                    |           |                     |                                t          j
                   d S r   )r   r   r   r   r   r   r   r   r   r   r   r   s      r   test_smb_ipc_signing_set_confz.CredentialsTests.test_smb_ipc_signing_set_conf  s    [%%'''))r2244k6VWWW!!+"=>>>2244k6QRRRr2244k6QRRRRRr   c                 2   t          j                    }|                     |                                t           j                   |                    t           j                   |                     |                                t           j                   d S r   )r   r   r   get_smb_encryptionSMB_ENCRYPTION_DEFAULTset_smb_encryptionSMB_ENCRYPTION_REQUIREDr   s     r   test_smb_encryptionz$CredentialsTests.test_smb_encryption  sw    '))1133[5WXXX  !DEEE1133[5XYYYYYr   c                 &   t           j                                        }t          j                    }|                    |           |                     |                                t          j                   |	                    t          j
                   |                     |                                t          j
                   |                    |           |                     |                                t          j
                   d S r   )r   r   r   r   r   r   r   r   r   r   SMB_ENCRYPTION_OFFr   s      r   test_smb_encryption_set_confz-CredentialsTests.test_smb_encryption_set_conf  s    [%%'''))r1133[5WXXX  !?@@@1133[5STTTr1133[5STTTTTr   )0__name__
__module____qualname__r
   r   r   r&   r+   r/   r5   r;   rA   rD   rF   rJ   rN   rT   rY   r_   rg   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __classcell__)r   s   @r   r   r      s       / / / / /@ @ @> > >> > >H H H
B B B; ; ;
; ; ;
: : :
8 8 8
: : :
9 9 9D D D
3 3 3D D D? ? ?3 3 3L L L&3 3 3+ + +? ? ?6 6 6
B 
B 
BB B B$ $ $.$ $ $.$ $ $2$ $ $.$ $ $.A A AA A AA A AA A A0A A A0A A AA A AA A AA A AT T T	O 	O 	OS S S	S 	S 	SZ Z Z	U 	U 	U 	U 	U 	U 	Ur   r   )__doc__r   r   samba.testsr   rc   samba.dcerpcr   r   TestCaseInTempDirr    r   r   <module>r     s   $            				       VU VU VU VU VUu{4 VU VU VU VU VUr   