
    FcO#                     2   d dl Z d dlZe j                            d d           dej        d<   d dlmZ d dlmZ d dl	m
Z
 d dlmZ d d	lmZ d d
lmZmZ d dlmZ d dlmZ d dlmZ dZdZ G d de          Zedk    rdZdZd dlZ ej                     dS dS )    Nz
bin/python1PYTHONUNBUFFERED)SCOPE_SUBTREE)NTSTATUSError)DONT_USE_KERBEROS)security)
ndr_unpack) NT_STATUS_NO_IMPERSONATION_TOKENNT_STATUS_LOGON_FAILURE)libsmb_samba_internal)param)KDCBaseTestFc                       e Zd ZdZ ej        de           ZdZ ej        de           Z	 	 ddZ		 	 ddZ
	 	 ddZd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Z	 	 	 	 	 ddZdS )IdmapNssTestsi  z	S-1-22-1-i  FTc                 `    |                      d||          }|                    d           |S )NMAPPEDprefixallow_missing_passwordallow_missing_keys _get_krb5_credsset_workstationselfr   r   cs       A/usr/lib/python3/dist-packages/samba/tests/krb5/test_idmap_nss.pyget_mapped_credszIdmapNssTests.get_mapped_creds3   sC       8N4F ! H H 	
"    c                 `    |                      d||          }|                    d           |S )NUNMAPPEDr   r   r   r   s       r   get_unmapped_credsz IdmapNssTests.get_unmapped_creds<   sC       
8N4F ! H H 	
"r    c                 `    |                      d||          }|                    d           |S )NINVALIDr   r   r   r   s       r   get_invalid_credszIdmapNssTests.get_invalid_credsE   sC       	8N4F ! H H 	
"r    c                 t    |                                  }|                     |d| j        | j                   d S )NTuse_kerberosexpected_first_sidexpected_uidr   _run_idmap_nss_testmappeduser_sidmappeduser_uidr   
user_credss     r   test_mapped_user_kerberosz'IdmapNssTests.test_mapped_user_kerberosO   sO    **,,
  $484G.2.A 	! 	C 	C 	C 	C 	Cr    c                 t    |                                  }|                     |d| j        | j                   d S )NFr(   r,   r0   s     r   test_mapped_user_ntlmz#IdmapNssTests.test_mapped_user_ntlmV   sO    **,,
  %484G.2.A 	! 	C 	C 	C 	C 	Cr    c                 j    |                                  }|                     |ddt                     d S NT)r)   
remove_pacexpected_error)r   r-   r
   r0   s     r    test_mapped_user_no_pac_kerberosz.IdmapNssTests.test_mapped_user_no_pac_kerberos\   sD    **,,
  Td; 	! 	= 	= 	= 	= 	=r    c                 t    |                                  }|                     |d| j        | j                   d S )NTr)   expected_additional_sidr+   r#   r-   unmappeduser_sidunmappeduser_uidr0   s     r   test_unmapped_user_kerberosz)IdmapNssTests.test_unmapped_user_kerberosb   sO    ,,..
  $9=9N.2.C 	! 	E 	E 	E 	E 	Er    c                 t    |                                  }|                     |d| j        | j                   d S )NFr;   r=   r0   s     r   test_unmapped_user_ntlmz%IdmapNssTests.test_unmapped_user_ntlmh   sO    ,,..
  %9=9N.2.C 	! 	E 	E 	E 	E 	Er    c                 j    |                                  }|                     |ddt                     d S r6   )r#   r-   r
   r0   s     r   "test_unmapped_user_no_pac_kerberosz0IdmapNssTests.test_unmapped_user_no_pac_kerberosn   sD    ,,..
  Td; 	! 	= 	= 	= 	= 	=r    c                 h    |                                  }|                     |dt                     d S )NTr)   r8   r&   r-   r   r0   s     r   test_invalid_user_kerberosz(IdmapNssTests.test_invalid_user_kerberost   sF    ++--
  $0G 	! 	I 	I 	I 	I 	Ir    c                 h    |                                  }|                     |dt                     d S )NFrF   rG   r0   s     r   test_invalid_user_ntlmz$IdmapNssTests.test_invalid_user_ntlmy   sF    ++--
  %0G 	! 	I 	I 	I 	I 	Ir    c                 j    |                                  }|                     |ddt                     d S r6   )r&   r-   r
   r0   s     r   !test_invalid_user_no_pac_kerberosz/IdmapNssTests.test_invalid_user_no_pac_kerberos~   sD    ++--
  Td; 	! 	= 	= 	= 	= 	=r    Nc                    ||                      |           ||                      |           ||                     |           |s|                     |           |                                 }| j        }	d}
d}|                                 }||                                }|                    t          d| ddg          }| 	                    dt          |                     t          t          j        |d                             dd	                    }|r|                     |||
|	| 
          \  }}|                     t"          j        |j                   t"          j                            dd          }|                     t"          j        j        d|           d|j        z   t"          j        d<   n|}|                    t.                     t1          j                    }|                    |                                 j                   |                    d          }|                     |j        d|           |                    dd           |                    d          }|                     |j        d|           |                    dd           	 t=          j        |	|||          }|                     |           n8# t@          $ r+}|j!        \  }}| 	                    ||           Y d }~d S d }~ww xY w|"                                \  }}}}}| 	                    ||d                    | #                    ||dd                    |r2| $                    ||d                    | %                    ||           |                      |           | 	                    ||           d S )Ncifstmpz(sAMAccountName=)	objectSid)scope
expressionattrs   r   )idx)pac
KRB5CCNAMEr   zFILE:zclient min protocolNT1zclient max protocol)lpcreds)&assertIsNotNoneassertIsNoneassertFalse	get_samdbhostget_server_credsget_usernamesearchr   assertEquallenr	   r   dom_sidgetcreate_ccache_with_user
addCleanuposremovenameenviron__setitem__set_kerberos_stater   s3paramget_contextloadget_lp
configfilesetlibsmbConnr   argsposix_whoamiassertNotInassertNotEqualassertIn)r   r1   r)   r7   r8   r*   r<   r+   samdbserver_nameserviceshareserver_creds	user_nameresr[   	cachefilekrb5_ccnames3_lpmin_protocolmax_protocolconneenum_uidgidgidssidsguests                                 r   r-   z!IdmapNssTests._run_idmap_nss_test   s    )  ...".  ...#n--- 	)Z(((  i,,..%"//11I,,]*IY*I*I*I&1]  4 4C QC)))!+H,<&)!fjj!j&D&D"F "F  	8
  $;;"N  <  $  $E9 OOBIy~666
 *..r::KOOBJ2L+NNN'.'?BJ|$$E$$%6777 #%%

4;;==+,,,yy!677	#8,GGG		'///yy!677	#8,GGG		'///	.;{Ee5IIID n----  	 	 	fGD!^T222FFFFF	 '+&7&7&9&9#S$e 	+T!W555+T!B$Z888" 	9 7aAAAMM14888\***s+++++s   -K 
L% LL)FT)FNNNN)__name__
__module____qualname__r/   r   rg   r.   r?   r>   r   r#   r&   r2   r4   r9   r@   rB   rD   rH   rJ   rL   r-    r    r   r   r   ,   so        N%X%&B.&B&BCCN"'x'(F4D(F(FGG 16,0    38.2    27-1   C C CC C C= = =E E EE E E= = =I I I
I I I
= = = (-+//348)-], ], ], ], ], ],r    r   __main__)sysrk   pathinsertrn   ldbr   sambar   samba.credentialsr   samba.dcerpcr   	samba.ndrr	   samba.ntstatusr
   r   samba.samba3r   rw   r   rq   samba.tests.krb5.kdc_base_testr   global_asn1_printglobal_hexdumpr   r   unittestmainr   r    r   <module>r      sn  ( 


 				 <      !$
              / / / / / / ! ! ! ! ! !                    9 8 8 8 8 8 ) ) ) ) ) ) 6 6 6 6 6 6 u, u, u, u, u,K u, u, u,p zNOOOHMOOOOO	 r    