
    %
i                          d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d Z G d de j	                  Z
edk    r e             dS dS )    N)TestSkippedtestmainc                     	  | | S # t           j        $ r4}|j        t          j        t          j        fv rt          |           d }~ww xY wN)win32apierrorwinerrorsspiconSEC_E_NO_CREDENTIALS!SEC_E_NO_AUTHENTICATING_AUTHORITYr   )funcargsexcs      C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\win32/test/test_sspi.pyapplyHandlingSkipsr      sg    tT{>   <(5
 
 
 c"""s    A
/AA
c                       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S )TestSSPIc                     	  ||  t          d| d          # t          j        $ r&}|                     |j        |           Y d }~d S d }~ww xY w)Nz
expecting z failure)AssertionErrorwin32securityr   assertEqualr	   )selfhrr   r   r   s        r   assertRaisesHRESULTzTestSSPI.assertRaisesHRESULT   sx    	/D$KK !:b!:!:!:;;;" 	/ 	/ 	/S\2.........	/s    AA

Ac                     t          j        |t          j                              }t          j        |          }d }d}|dk    r6|                    |          \  }}|                    |          \  }}|dk    6||fS )N)	targetspn   r   )sspi
ClientAuthr   GetUserName
ServerAuth	authorize)r   pkg_name
sspiclient
sspiserver
sec_buffererrs         r   _doAuthzTestSSPI._doAuth$   s    _X9M9O9OPPP
_X..

Qhh(22:>>OC(22:>>OC Qhh :%%    c                     |                      |          \  }}|j                                         |j                                         d S r   )r(   ctxtImpersonateSecurityContextRevertSecurityContext)r   r#   r$   r%   s       r   _doTestImpersonatezTestSSPI._doTestImpersonate/   sF    !%h!7!7
J22444--/////r)   c                 0    t          | j        d           d S NKerberos)r   r.   r   s    r   testImpersonateKerberosz TestSSPI.testImpersonateKerberos5   s    42J?????r)   c                 0    |                      d           d S NNTLM)r.   r2   s    r   testImpersonateNTLMzTestSSPI.testImpersonateNTLM8   s    '''''r)   c                 p   |                      |          \  }}|j                            t          j                  }d}|d         }t          j                    }|                    t          j        t          |          t          j
                             |                    t          j        |t          j                             ||d         _        |j                            d|d           |j                            |d           |                     ||d         j                   d}|                    |          \  }	}
|                     |                    |	|
          |           |                    |          \  }	}
|                     |                    |	|
          |           d S )N    some data to be encrypted ......SecurityTrailerr   r      hello)r(   r+   QueryContextAttributesr
   SECPKG_ATTR_SIZESr   PySecBufferDescTypeappendPySecBufferTypelenSECBUFFER_DATASECBUFFER_TOKENBufferEncryptMessageDecryptMessager   encryptdecrypt)r   r#   r$   r%   pkg_size_infomsgtrailersizeencbufdata_indatasigs              r   _doTestEncryptzTestSSPI._doTestEncrypt;   s   !%h!7!7
J">>%
 
 2#$56244m3CHHg>TUUVVV)+w7NOO	
 	
 	
 q	&&q&!444&&vq111fQi.///&&w//	c++D#66@@@&&w//	c++D#66@@@@@r)   c                 L   |                      |          \  }}|j                            t          j                  }d}|d         }|d         }t          j                    }|                    t          j        |t          j	                             |                    t          j        t          |          t          j                             |                    t          j        |t          j                             ||d         _        |j                            d|d           |d         j        |d         j        z   |d         j        z   }	t          j                    }
|
                    t          j        t          |	          t          j                             |
                    t          j        dt          j                             |	|
d         _        |j                            |
d           |                     ||
d         j                   d S )Nr9   r:   	BlockSizer   r      )r(   r+   r<   r
   r=   r   r>   r?   r@   rC   rA   rB   SECBUFFER_PADDINGrD   rE   SECBUFFER_STREAMrF   r   )r   r#   r$   r%   rI   rJ   rK   	blocksizerL   encmsgdecbufs              r   _doTestEncryptStreamzTestSSPI._doTestEncryptStreamU   s    "&h!7!7
J">>%
 
 2#$56!+.	244)+w7NOO	
 	
 	
 	m3CHHg>TUUVVV))W5NOO	
 	
 	
 q	&&q&!444!F1I$44vay7GG244)#f++w7OPP	
 	
 	
 	m3Aw7MNNOOO!q	&&vq111fQi./////r)   c                 0    |                      d           d S r5   )rP   r2   s    r   testEncryptNTLMzTestSSPI.testEncryptNTLMx   s    F#####r)   c                 0    |                      d           d S r5   )rY   r2   s    r   testEncryptStreamNTLMzTestSSPI.testEncryptStreamNTLM{   s    !!&)))))r)   c                 0    t          | j        d           d S r0   )r   rP   r2   s    r   testEncryptKerberoszTestSSPI.testEncryptKerberos~   s    4.
;;;;;r)   c                 0    t          | j        d           d S r0   )r   rY   r2   s    r   testEncryptStreamKerberosz"TestSSPI.testEncryptStreamKerberos   s    44jAAAAAr)   c                    |                      |          \  }}|j                            t          j                  }d}|d         }t          j                    }|                    t          j        t          |          t          j
                             |                    t          j        |t          j                             ||d         _        |j                            d|d           |j                            |d           d|_        d|_        d}|                    |          }	|                    ||	           |                    |          }	|                     t          j        |j        ||z   |	           |                    |          }	|                    ||	           |                    |          }	|                     t          j        |j        ||z   |	           d S )Nr9   MaxSignaturer   r   r;   )r(   r+   r<   r
   r=   r   r>   r?   r@   rA   rB   rC   rD   MakeSignatureVerifySignaturenext_seq_numsignverifyr   SEC_E_MESSAGE_ALTERED)
r   r#   r$   r%   rI   rJ   sigsizesigbufrN   keys
             r   _doTestSignzTestSSPI._doTestSign   s   !%h!7!7
J">>%
 
 2/244m3CHHg>TUUVVVm3GW=TUUVVVq	%%a333''222"#
"#
ood##$$$$ood##  ):+<dTk3	
 	
 	

 ood##$$$$ood##  ):+<dTk3	
 	
 	
 	
 	
r)   c                 0    |                      d           d S r5   )rm   r2   s    r   testSignNTLMzTestSSPI.testSignNTLM   s         r)   c                 0    t          | j        d           d S r0   )r   rm   r2   s    r   testSignKerberoszTestSSPI.testSignKerberos   s    4+Z88888r)   c                     |                      d          \  }}|                    d          }|                    d           |                     t          j        |j        d|           d S Nr1   r;   )r(   rg   r   r
   SEC_E_OUT_OF_SEQUENCErh   )r   r$   r%   rl   s       r   _testSequenceSignzTestSSPI._testSequenceSign   sl    !%j!9!9
Jooh''!!!  ):+<h	
 	
 	
 	
 	
r)   c                 .    t          | j                   d S r   )r   ru   r2   s    r   testSequenceSignzTestSSPI.testSequenceSign   s    4122222r)   c                     |                      d          \  }}|                    d          \  }}|                    d          \  }}|                     t          j        |j        ||           d S rs   )r(   rG   r   r
   rt   rH   )r   r$   r%   blobrl   s        r   _testSequenceEncryptzTestSSPI._testSequenceEncrypt   sw    !%j!9!9
J&&x00	c&&x00	c  ):+=tS	
 	
 	
 	
 	
r)   c                 .    t          | j                   d S r   )r   rz   r2   s    r   testSequenceEncryptzTestSSPI.testSequenceEncrypt   s    4455555r)   c                 Z   t          j                    }|                     t          |          d           t          j        dt
          j                  }|                     t          |          d           |                    |           |                     t          |          d           t          j        dt
          j                  }|                     t          |          d           |                    |           |                     t          |          d           d S )NzNPySecBufferDesc\(ulVersion: 0 \| cBuffers: 0 \| pBuffers: 0x[\da-fA-F]{8,16}\)r   zKPySecBuffer\(cbBuffer: 0 \| BufferType: 2 \| pvBuffer: 0x[\da-fA-F]{8,16}\)zNPySecBufferDesc\(ulVersion: 0 \| cBuffers: 1 \| pBuffers: 0x[\da-fA-F]{8,16}\)   zKPySecBuffer\(cbBuffer: 4 \| BufferType: 1 \| pvBuffer: 0x[\da-fA-F]{8,16}\)zNPySecBufferDesc\(ulVersion: 0 \| cBuffers: 2 \| pBuffers: 0x[\da-fA-F]{8,16}\))	r   r>   assertRegexreprr@   r
   rC   r?   rB   )r   descbuffer1buffer2s       r   testSecBufferReprzTestSSPI.testSecBufferRepr   s$   022JJ]	
 	
 	

  /73JKKMMZ	
 	
 	
 	GJJ]	
 	
 	

  /73IJJMMZ	
 	
 	
 	GJJ]	
 	
 	
 	
 	
r)   N)__name__
__module____qualname__r   r(   r.   r3   r7   rP   rY   r[   r]   r_   ra   rm   ro   rq   ru   rw   rz   r|   r    r)   r   r   r      s<       / / /	& 	& 	&0 0 0@ @ @( ( (A A A4!0 !0 !0F$ $ $* * *< < <B B B 
  
  
D! ! !9 9 9
 
 
3 3 3
 
 
6 6 6
 
 
 
 
r)   r   __main__)unittestr   r
   r   r   pywin32_testutilr   r   r   TestCaser   r   r   r)   r   <module>r      s            2 2 2 2 2 2 2 2	 	 	E
 E
 E
 E
 E
x  E
 E
 E
P zHJJJJJ r)   