
    9i                        S SK r S SKJr  S SKJr  S SKJr   " S S\ R                  5      r " S S\ R                  5      r	 " S	 S
\ R                  5      r
 " S S\ R                  5      r0 4S jr\S:X  a  S r\ R                  " SS9  gg)    N)list_test_cases)load_test_vectors_wycheproof)AESc                   .    \ rS rSr/ SQrS rS rS rSrg)KW_Tests	   )) 000102030405060708090A0B0C0D0E0F 00112233445566778899AABBCCDDEEFF01FA68B0A8112B447AEF34BD8FB5A7B829D3E862371D2CFE5)0000102030405060708090A0B0C0D0E0F1011121314151617r
   096778B25AE6CA435F92B5B97C050AED2468AB8A17AD84E5D)@000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1Fr
   064E8C3F9CE0F5BA263E9777905818A2A93C8191E7D6E8AE7)r   000112233445566778899AABBCCDDEEFF0001020304050607@031D33264E15D33268F24EC260743EDCE1C6C7DDEE725A936BA814915C6762D2)r   r   @A8F9BC1612C68B3FF6E6F4FBE30E71E4769C8B80A32CB8958CD5D17D6B254DA1)r   @00112233445566778899AABBCCDDEEFF000102030405060708090A0B0C0D0E0FP28C9F404C4B810F4CBCCB35CFB87F8263F5786E2D80ED326CBC7F0E71A99F43BFB988B9B7A02DD21c                    U R                    H  nU Vs/ s H  n[        R                  U5      PM     snu  p4n[        R                  " U[        R
                  5      nUR                  U5      nU R                  XW5        [        R                  " U[        R
                  5      nUR                  U5      nU R                  XH5        M     g s  snf N)	tvsbytesfromhexr   newMODE_KWsealassertEqualunseal	selftvxkekptctcipherct2pt2s	            ^/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/Crypto/SelfTest/Cipher/test_KW.pytest_rfc3394KW_Tests.test_rfc3394!   s    ((B578R5==+R8KCRWWS#++.F++b/CR%WWS#++.F--#CR% 8   Cc                 N   [         R                  " S[         R                  5      nU R                  [        5         UR                  S5        S S S 5        U R                  [        5         UR                  S5        S S S 5        g ! , (       d  f       N>= f! , (       d  f       g = f)N   ----------------    s   88888888888888888)r   r   r   assertRaises
ValueErrorr   )r    r&   s     r)   	test_neg1KW_Tests.test_neg1.   sk    CKK0z*KK + z*KK	" +* +* +*s   B*B
B
B$c                    [         R                  " S[         R                  5      n[        UR	                  S5      5      n[         R                  " S[         R                  5      nUR                  U5        [         R                  " S[         R                  5      nUS==   S-  ss'   U R                  [        5         UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr.   s   7777777777777777r      )r   r   r   	bytearrayr   r   r0   r1   )r    r&   r%   s      r)   	test_neg2KW_Tests.test_neg28   s    CKK0v{{9-.CKK0bCKK0
1z*MM" +**s   =C
C& N)	__name__
__module____qualname____firstlineno__r   r*   r2   r7   __static_attributes__r9   r/   r)   r   r   	   s    C*&#r/   r   c                        \ rS rSrS rS rSrg)KW_WycheproofF   c                 (    [        SSS5      U l        g )NCipher
wycheproofzkw_test.jsonzWycheproof tests for KWr   vectorsr    s    r)   setUpKW_Wycheproof.setUpH   s    34L4B4MOr/   c                    U R                   (       d  U R                  S5        U R                    H  nU R                  UR                  S9   [        R
                  " UR                  [        R                  5      n UR                  UR                  5        [        R
                  " UR                  [        R                  5      n UR                  UR                  5      nU R                  X1R                  5        S S S 5        M     g ! [         a    UR                  (       a  e  S S S 5        GM  f = f! [         a    UR                  (       a  e  S S S 5        GM/  f = f! , (       d  f       GMC  = fNzNo test vectors available)testId)rG   skipTestsubTestidr   r   keyr   r   msgr1   validr   r%   r   r    vectorr&   r$   s       r)   test_wycheproofKW_Wycheproof.test_wycheproofM   s   ||MM56llFVYY/S[[9KK

+ S[[9vyy1B   ZZ0% 0/ # " || 0/
 " ||! 0/ 0/sT   0E"<D
/E"D6"E"
D3&E"2D33E"6EE"EE""
E2	rG   Nr:   r;   r<   r=   rI   rV   r>   r9   r/   r)   r@   r@   F   s    O
1r/   r@   c                   "    \ rS rSrSS/rS rSrg)	KWP_Testsh   )05840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8(c37b7e6492584340bed12207808941155068f738@138bdeaa9b8fa7fc61f97742e72248ee5ae6ae5360d1ae6a5f54f373fa543b6a)r]   466f7250617369 afbeb0f07dfbf5419200f2ccb50bb24fc                    U R                    H  nU Vs/ s H  n[        R                  U5      PM     snu  p4n[        R                  " U[        R
                  5      nUR                  U5      nU R                  XW5        [        R                  " U[        R
                  5      nUR                  U5      nU R                  XH5        M     g s  snf r   )	r   r   r   r   r   MODE_KWPr   r   r   r   s	            r)   test_rfc5649KWP_Tests.test_rfc5649s   s    ((B578R5==+R8KCRWWS#,,/F++b/CR%WWS#,,/F--#CR% 8r,   r9   N)r:   r;   r<   r=   r   rd   r>   r9   r/   r)   r[   r[   h   s    	M	-	C&r/   r[   c                        \ rS rSrS rS rSrg)KWP_Wycheproof   c                 (    [        SSS5      U l        g )NrC   zkwp_test.jsonzWycheproof tests for KWPrF   rH   s    r)   rI   KWP_Wycheproof.setUp   s    34L4C4NPr/   c                 .   U R                   (       d  U R                  S5        U R                    H  nU R                  UR                  S9   [        R
                  " UR                  [        R                  5      n UR                  UR                  5        [        R
                  " UR                  [        R                  5      n UR                  UR                  5      nU R                  X1R                  5        S S S 5        M     g ! [         a0    UR                  (       a  UR                  (       d  e  S S S 5        GM  f = f! [         a0    UR                  (       a  UR                  (       d  e  S S S 5        GMQ  f = f! , (       d  f       GMe  = frL   )rG   rN   rO   rP   r   r   rQ   rc   r   rR   r1   rS   warningr   r%   r   rT   s       r)   rV   KWP_Wycheproof.test_wycheproof   s   ||MM56llFVYY/S\\:KK

+ S\\:vyy1B   ZZ0% 0/ # " ||FNN 0/
 " ||FNN! 0/ 0/sT   0F<D
/FE"F
-E7FEF-F4F FF
F	rX   NrY   r9   r/   r)   rg   rg      s    P
1r/   rg   c                     / nU[        [        5      -  nU[        [        5      -  nU[        [        5      -  nU[        [        5      -  nU$ r   )r   r   r[   r@   rg   )configtestss     r)   	get_testsrq      sH    E	_X&&E	_Y''E	_]++E	_^,,ELr/   __main__c                  >    [         R                  " [        5       5      $ r   )unittest	TestSuiterq   r9   r/   r)   suiterv      s    !!)+..r/   rv   )defaultTest)rt   Crypto.SelfTest.st_commonr   Crypto.SelfTest.loaderr   Crypto.Cipherr   TestCaser   r@   r[   rg   rq   r:   rv   mainr9   r/   r)   <module>r}      s     5 ? :x   :z1H%% 1D&!! &21X&& 1D   z/MMg& r/   