
    
'gL                        S SK JrJrJr  S SKJr  S SKJrJrJ	r	J
r
  S SKJr  S SKJr  S\S\S\R                   S	\S
\4
S jrS\R&                  S\R(                  S\R*                  S\S\R,                  S\R,                  4S jrS\R&                  S\R(                  S\R*                  S
\S\S\R                   S\R,                  S\R,                  4S jrg)    )lsadrsblobsmisc)ndr_pack)NTSTATUSErrorntstatusaead_aes_256_cbc_hmac_sha512arcfour_encrypt)crypto)token_bytessystem_name
in_versionin_revision_infosec_qosaccess_maskc                 H   U " 5       n[         R                  " 5       nU(       a7  [         R                  " 5       nSUl        SUl        SUl        SUl        Xl        Sn	Ub   UR                  UUUUU5      u  pnOSn	U	(       a7  Sn
[         R                  " 5       nSUl        SUl        UR#                  XU5      nUW
WW4$ ! [         aW  nUR                  S   [        R                  :X  a  Sn	UR                  S   [        R                  :X  a  U " US9nSn	 S nANe S nAff = f)N         r   FT)basis_connection)r   ObjectAttributeQosInfolenimpersonation_levelcontext_modeeffective_onlyr   OpenPolicy3r   argsr   "NT_STATUS_RPC_PROCNUM_OUT_OF_RANGENT_STATUS_ACCESS_DENIEDrevision_info1revisionsupported_featuresOpenPolicy2)new_lsa_connr   r   r   r   r   connattrqosopen_policy2out_versionout_rev_infopolicyes                 1/usr/lib/python3/dist-packages/samba/lsa_utils.pyOpenPolicyFallbackr/       s"    >D Dkkm"#L#	040@0@ 1-Kv$ ))+ !*+'!!+[AlF22+  		vvayHGGG#vvayH<<<#T:#		s   !C   
D!
ADDD!lsaconnr,   
trust_infomaskin_blobout_blobc                    SS jnU R                   n U R                  5       (       a  [        R                  " 5         U" UUUS9n[        R                  " 5         U R                  XX5      $ ! [        R                  " 5         f = f)Nc                 H   [        [        S5      5      n[        R                  " 5       nX4l        X$l        Xl        [        U5      n[        X5      n[        R                  " 5       n[        U5      Ul        [        U5      Ul        [        R                  " 5       nXxl        U$ )Ni   )listr   r   trustDomainPasswords
confounderoutgoingincomingr   r
   r   	DATA_BUF2r   sizedataTrustDomainInfoAuthInfoInternal	auth_blob)	session_keyr;   r:   r9   	trustpasstrustpass_blobencrypted_trustpassr@   	auth_infos	            r.   generate_AuthInfoInternal;CreateTrustedDomainRelax.<locals>.generate_AuthInfoInternala   s    +c*+
113	)%%!),-kJMMO	01	12	779	'    )r;   r:   NN)rA   transport_encryptedr   set_relax_modeset_strict_modeCreateTrustedDomainEx2)	r0   r,   r1   r2   r3   r4   rF   rA   rE   s	            r.   CreateTrustedDomainRelaxrN   X   sx    , %%K!&&((!!#-k7>7?A	 	 ))&iNN 	 s   2A, ,Br&   policy_handlesrv_versionsrv_revision_info1c                      SS jnUS:X  a  UR                   S:X  a  UR                  [        R                  -  (       a  U" U R                  Xg5      u  pn[        R
                  " 5       n[        U	5      Ul        [        U	5      Ul	        [        R                  " 5       nXl        [        U
5      Ul        [        U5      Ul        U R                  UUUU5      $ [        U UUUUU5      $ )Nc                     [         R                  " 5       nX#l        Xl        [	        U5      nSR                  5       S-   nSR                  5       S-   n[        S5      n[        UU UUU5      u  pXU	4$ )Nz=Microsoft LSAD encryption key AEAD-AES-256-CBC-HMAC-SHA512 16    z6Microsoft LSAD MAC key AEAD-AES-256-CBC-HMAC-SHA512 16   )r   r8   r:   r;   r   encoder   r	   )
rA   r;   r:   rB   rC   lsa_aes256_enc_keylsa_aes256_mac_keyiv
ciphertext	auth_datas
             r.   generate_AuthInfoInternalAESACreateTrustedDomainFallback.<locals>.generate_AuthInfoInternalAES   s    
 113	%%!), LRRT 	
 EKKM 	
 _ <!

 y((rH   r   rI   )r"   r#   r   $LSA_FEATURE_TDO_AUTH_INFO_AES_CIPHERrA   r<   r   r=   r7   r>   "TrustDomainInfoAuthInfoInternalAESciphersaltr[   CreateTrustedDomainEx3rN   )r&   rO   r1   r   rP   rQ   r3   r4   r\   rZ   rY   r[   r@   rE   s                 r.   CreateTrustedDomainFallbackrc      s     )@ 	q''1,22778 %Ag%
!
	 MMO	Z	j)	::<	$b	"9o	**	
 	
 $ rH   N)samba.dcerpcr   r   r   	samba.ndrr   sambar   r   r	   r
   r   secretsr   strintr!   boolr/   lsarpcrO   TrustDomainInfoInfoExtrustAuthInOutBlobrN   rc    rH   r.   <module>ro      s=  & - ,    53 	53
 53 ((53 53 53p*OZZ*O*O ))*O 	*O
 ((*O ))*OZJ
**J%%J ))J 	J
 J **J ((J ))JrH   