
    9i"                     T   S r SSKrSSKJrJr  SSKJr  SSKJr  SSK	J
r
  SSKJrJrJr   " S S	\R                  5      r " S
 S\R                  5      r\" SSSSS 05      =(       d    / r\\" SSSSS 05      =(       d    / -  r\" \5       HO  u  rr\R,                  S:X  a	  \" S5      rO\" \R0                  5      r\\R2                  4S jr\" \S\-  \5        MQ     \" SSSSS 05      =(       d    / r\\" SSSSS 05      =(       d    / -  r\" \5       HO  u  rr\R,                  S:X  a	  \" S5      rO\" \R0                  5      r\\R2                  4S jr\" \S\-  \5        MQ     \" SSS SS! 05      =(       d    / r\\" SS"S#SS$ 05      =(       d    / -  r\" \5       HO  u  rr\R,                  S:X  a	  \" S5      rO\" \R0                  5      r\\R2                  4S% jr\" \S&\-  \5        MQ     \" SS'S(SS) 05      =(       d    / r\\" SS*S+SS, 05      =(       d    / -  r\" \5       HO  u  rr\R,                  S:X  a	  \" S5      rO\" \R0                  5      r\\R2                  4S- jr\" \S.\-  \5        MQ     0 4S/ jr\ S0:X  a  SSKrS1 r!\RD                  " S2S39  gg)4z&Self-test suite for Crypto.Hash.keccak    N)hexlify	unhexlify)load_test_vectors)list_test_cases)keccak)btobytesbchrc                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)
KeccakTest*   c                    S He  n[         R                  " US9nU R                  UR                  US-  5        UR                  5       nU R                  UR                  US-  5        Mg     S H_  n[         R                  " US9nU R                  UR                  U5        UR                  5       nU R                  UR                  U5        Ma     g )N)           digest_bits   )       0   @   digest_bytes)r   newassertEqualdigest_size)selfr   hobjhobj2r   s        `/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/Crypto/SelfTest/Hash/test_keccak.pytest_new_positiveKeccakTest.test_new_positive,   s    /K::+6DT--{a/?@HHJEU..q0@A 0 -L::<8DT--|<HHJEU..= -    c                     [         R                  " [        S5      SS9R                  5       n[         R                  " SS9R	                  [        S5      5      R                  5       nU R                  X5        g )N   r   )datar   r   )r   r   r   digestupdater   )r   digest1digest2s      r"   test_new_positive2KeccakTest.test_new_positive2<   sS    **!F)"=DDF**"-44QvY?FFH*r%   c                 `   U R                  [        [        R                  5        [        R                  " SS9nU R                  [        [        R                  SSS9  U R                  [        [        R                  SS9  U R                  [        [        R                  SS9  U R                  [        [        R                  SS9  U R                  [        [        R                  SS9  U R                  [        [        R                  SS9  U R                  [        [        R                  S	S9  g )
Nr   r   r   )r   r   r   r      A   i  )assertRaises	TypeErrorr   r   
ValueErrorr   hs     r"   test_new_negativeKeccakTest.test_new_negativeB   s     	)VZZ0JJ3' 	)VZZ+-*- 	 	/
 	*fjjqA*fjjqA*fjjrB*fjja@*fjja@*fjjcBr%   c                 l   [        S5      S-  [        S5      S-  /n[        R                  " SS9nUR                  US   5      R                  US   5        UR	                  5       n[        R                  " SS9nUR                  US   US   -   5        U R                  UR	                  5       U5        g )	N
         i,  r   r   r   r0   )r
   r   r   r*   r)   r   )r   piecesr6   r)   s       r"   test_updateKeccakTest.test_updateV   s    r(S.$r(S.1JJB'	""6!9-JJB'	VAY&'V,r%   c                 n    [         R                  " SS9nU R                  [        UR                  S5        g )Nr   r   string)r   r   r2   r3   r*   r5   s     r"   test_update_negativeKeccakTest.test_update_negative_   s&    JJB')QXXy9r%   c           
          [         R                  " SS9nUR                  5       nU R                  UR                  5       U5        U R	                  [        U[        [        S5      5      5      5        g )Nr   r   r)   )r   r   r)   r   
assertTrue
isinstancetyper   )r   r6   r)   s      r"   test_digestKeccakTest.test_digestc   sO    JJB' 	V,
64(+<=>r%   c                 <   [         R                  " SS9nUR                  5       nUR                  5       nU R	                  [        U5      [        U5      5        U R	                  UR                  5       U5        U R                  [        U[        S5      5      5        g )Nr   r   r)   )
r   r   r)   	hexdigestr   r   r	   rE   rF   rG   )r   macr)   rK   s       r"   test_hex_digestKeccakTest.test_hex_digestl   sn    jjS)MMO	 	')*<=)4
9d8n=>r%   c                    [        S5      n[        R                  " SUS S S9nUR                  5       nU R	                  [
        UR                  USS  5        [        R                  " SUS9R                  5       n[        R                  " SUS S SS9nU R                  UR                  5       U5        UR                  USS  5        U R                  UR                  5       U5        g )Nrrrrtttr      r   r(   T)r   r(   update_after_digest)r   r   r   r)   r2   r3   r*   r   )r   msgr6   dig1dig2s        r"   test_update_after_digest#KeccakTest.test_update_after_digestx   s    iL JJ3S!W5xxz)QXXs12w7zzc4;;= JJ3S!W$OT* 	
QRT*r%    N)__name__
__module____qualname____firstlineno__r#   r-   r7   r>   rB   rH   rM   rW   __static_attributes__rY   r%   r"   r   r   *   s+    > +C(-:?
?+r%   r   c                       \ rS rSrSrg)KeccakVectors   rY   N)rZ   r[   r\   r]   r^   rY   r%   r"   r`   r`      s    r%   r`   )Hashr   zShortMsgKAT_224.txtzShort Messages KAT 224lenc                     [        U 5      $ Nintxs    r"   <lambda>rj          #a&r%   zLongMsgKAT_224.txtzLong Messages KAT 224c                     [        U 5      $ re   rf   rh   s    r"   rj   rj      rk   r%    c                 n    [         R                  " SUS9nU R                  UR                  5       U5        g )Nr   rR   r   r   r   r)   r   r(   resultr    s       r"   new_testrr      (    zzc5/r%   ztest_224_%dzShortMsgKAT_256.txtzShort Messages KAT 256c                     [        U 5      $ re   rf   rh   s    r"   rj   rj          CFr%   zLongMsgKAT_256.txtzLong Messages KAT 256c                     [        U 5      $ re   rf   rh   s    r"   rj   rj      ru   r%   c                 n    [         R                  " SUS9nU R                  UR                  5       U5        g )Nr   rR   ro   rp   s       r"   rr   rr      rs   r%   ztest_256_%dzShortMsgKAT_384.txtzShort Messages KAT 384c                     [        U 5      $ re   rf   rh   s    r"   rj   rj      rk   r%   zLongMsgKAT_384.txtzLong Messages KAT 384c                     [        U 5      $ re   rf   rh   s    r"   rj   rj      rk   r%   c                 n    [         R                  " SUS9nU R                  UR                  5       U5        g )Nr   rR   ro   rp   s       r"   rr   rr      rs   r%   ztest_384_%dzShortMsgKAT_512.txtzShort Messages KAT 512c                     [        U 5      $ re   rf   rh   s    r"   rj   rj      rk   r%   zLongMsgKAT_512.txtzLong Messages KAT 512c                     [        U 5      $ re   rf   rh   s    r"   rj   rj      rk   r%   c                 n    [         R                  " SUS9nU R                  UR                  5       U5        g )Nr   rR   ro   rp   s       r"   rr   rr      rs   r%   ztest_512_%dc                 R    / nU[        [        5      -  nU[        [        5      -  nU$ re   )r   r   r`   )configtestss     r"   	get_testsr      s*    E	_Z((E	_]++ELr%   __main__c                  >    [         R                  " [        5       5      $ re   )unittest	TestSuiter   rY   r%   r"   rj   rj      s    H&&y{3r%   suite)defaultTest)#__doc__r   binasciir   r   Crypto.SelfTest.loaderr   Crypto.SelfTest.st_commonr   Crypto.Hashr   Crypto.Util.py3compatr   r	   r
   TestCaser   r`   test_vectors_224	enumerateidxtvrc   r(   rT   mdrr   setattrtest_vectors_256test_vectors_384test_vectors_512r   rZ   r   mainrY   r%   r"   <module>r      sY  > -  ' 4 5  2 2]+"" ]+@	H%% 	 &&8 5 8!&(8 9; A ?A 
 %&8 4 7!&(8 9; A ?AA 
 )*GC	vv{urvv  0 M=3.9 + &&8 5 8"'*: <? E CE 
 %&8 4 7"'*: <? E CEE 
 )*GC	vv{urvv  0 M=3.9 + &&8 5 8!&(8 9; A ?A 
 %&8 4 7!&(8 9; A ?AA 
 )*GC	vv{urvv  0 M=3.9 + &&8 5 8!&(8 9; A ?A 
 %&8 4 7!&(8 9; A ?AA 
 )*GC	vv{urvv  0 M=3.9 +   z3EMMg& r%   