a
    “I_  ã                   @   sp   d dl mZ d dlZd dlZd dlmZmZmZ d dlmZm	Z	 d dl
Z
d dlmZmZmZ G dd„ deƒZdS )é    )ÚTestCaseN)ÚCredentialsÚDONT_USE_KERBEROSÚMUST_USE_KERBEROS)ÚNTSTATUSErrorÚntstatus)ÚsrvsvcÚsamrÚlsac                       s8   e Zd Z‡ fdd„Z‡ fdd„Zdd„ Zdd„ Z‡  ZS )	ÚNtlmDisabledTestsc                    s|   t t| ƒ ¡  |  ¡ | _t d¡| _tƒ | _	| j	 
| j¡ | j	 t d¡¡ | j	 | j¡ | j	 t d¡¡ | j	 t¡ d S )NÚSERVERÚUSERNAMEZPASSWORD)Úsuperr   ÚsetUpZget_loadparmÚlpÚosÚgetenvÚserverr   ÚcredsZguessZset_usernameZ
set_domainZset_passwordÚset_kerberos_stater   ©Úself©Ú	__class__© ú:/usr/lib/python3/dist-packages/samba/tests/ntlmdisabled.pyr   $   s    
zNtlmDisabledTests.setUpc                    s   t t| ƒ ¡  d S )N)r   r   ÚtearDownr   r   r   r   r   1   s    zNtlmDisabledTests.tearDownc              
   C   sz   z&t   d| j | j| j¡}|  |¡ W nN tyt } z6t |jd ¡j	}|t
jkr^|  d¡ n‚ W Y d }~n
d }~0 0 d S )Nzncacn_np:%s[smb2,ntlm]r   úNTLM is disabled on this server)r   r   r   r   ZassertIsNotNoner   ÚctypesÚc_uint32ÚargsÚvaluer   ÚNT_STATUS_NTLM_BLOCKEDÚfail)r   ÚconnÚeÚenumr   r   r   Útest_ntlm_connection4   s    
z&NtlmDisabledTests.test_ntlm_connectionc              
   C   s¾   | j  t¡ t dt d¡ ¡}t ¡ }| j|_	t ¡ }t d¡|_	z| 
||d d dd d ¡ W nZ ty¸ } zBt |jd ¡j}|tjkr–|  d¡ n|tjkr¢n‚ W Y d }~n
d }~0 0 d S )Nzncacn_np:%s[krb5,seal,smb2]r   r   Tr   r   )r   r   r   r	   r   r   r
   ÚStringr   ÚstringZChangePasswordUser2r   r   r   r    r!   r   r"   r#   ZNT_STATUS_WRONG_PASSWORD)r   r$   r   Zusernamer%   r&   r   r   r   Útest_samr_change_passwordA   s    

z+NtlmDisabledTests.test_samr_change_password)Ú__name__Ú
__module__Ú__qualname__r   r   r'   r*   Ú__classcell__r   r   r   r   r   "   s   r   )Zsamba.testsr   r   ZsambaZsamba.credentialsr   r   r   r   r   r   Zsamba.dcerpcr   r	   r
   r   r   r   r   r   Ú<module>   s   