+
    '(j"                        R t ^ RIt^ RIHtHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHtHtHt  ! R R]P                  4      t ! R	 R
]P                  4      t]! R2RRRR /4      ;'       g    . t]]! R2RRRR /4      ;'       g    . ,          t]! ]4       FT  w  tt]P,                  ^ 8X  d
   ]! R4      tM]! ]P0                  4      t]]P2                  3R lt]! ]R],          ]4       KV  	  ]! R2RRRR /4      ;'       g    . t]]! R2RRRR /4      ;'       g    . ,          t]! ]4       FT  w  tt]P,                  ^ 8X  d
   ]! R4      tM]! ]P0                  4      t]]P2                  3R lt]! ]R],          ]4       KV  	  ]! R2RRRR /4      ;'       g    . t]]! R2R R!RR" /4      ;'       g    . ,          t]! ]4       FT  w  tt]P,                  ^ 8X  d
   ]! R4      tM]! ]P0                  4      t]]P2                  3R# lt]! ]R$],          ]4       KV  	  ]! R2R%R&RR' /4      ;'       g    . t]]! R2R(R)RR* /4      ;'       g    . ,          t]! ]4       FT  w  tt]P,                  ^ 8X  d
   ]! R4      tM]! ]P0                  4      t]]P2                  3R+ lt]! ]R,],          ]4       KV  	  / 3R- lt] R.8X  d   ^ RItR/ t!]PD                  ! R0R17       R# R# )3z&Self-test suite for Crypto.Hash.keccakN)hexlify	unhexlify)load_test_vectors)list_test_cases)keccak)btobytesbchrc                   P   a  ] tR t^*t o R tR tR tR tR tR t	R t
R tR	tV tR
# )
KeccakTestc                   R Fp  p\         P                  ! VR7      pV P                  VP                  V^,          4       VP                  4       pV P                  VP                  V^,          4       Kr  	  R Fb  p\         P                  ! VR7      pV P                  VP                  V4       VP                  4       pV P                  VP                  V4       Kd  	  R# )   digest_bitsdigest_bytesN)r           )       0   @   )r   newassertEqualdigest_size)selfr   hobjhobj2r   s   &    U/home/ubuntu/cf-venv/lib/python3.14/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                    \         P                  ! \        R 4      ^@R7      P                  4       p\         P                  ! ^@R7      P	                  \        R 4      4      P                  4       pV P                  W4       R# )   )datar   r   N)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                   V P                  \        \        P                  4       \        P                  ! R R7      pV P                  \        \        P                  ^@R R7       V P                  \        \        P                  ^ R7       V P                  \        \        P                  ^R7       V P                  \        \        P                  ^AR7       V P                  \        \        P                  ^ R7       V P                  \        \        P                  ^R7       V P                  \        \        P                  RR7       R# )r   r   )r   r   r   i  N)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                   \        ^
4      ^,          \        ^4      R,          .p\        P                  ! ^@R7      pVP                  V^ ,          4      P                  V^,          4       VP	                  4       p\        P                  ! ^@R7      pVP                  V^ ,          V^,          ,           4       V P                  VP	                  4       V4       R# )
   i,  r   N)r	   r   r   r'   r&   r   )r   piecesr1   r&   s   &   r   test_updateKeccakTest.test_updateV   s    r(S.$r(S.1JJB'	""6!9-JJB'	VAY&'V,r"   c                v    \         P                  ! ^@R7      pV P                  \        VP                  R4       R# )r   r   stringN)r   r   r-   r.   r'   r0   s   & r   test_update_negativeKeccakTest.test_update_negative_   s&    JJB')QXXy9r"   c           
         \         P                  ! ^@R7      pVP                  4       pV P                  VP                  4       V4       V P	                  \        V\        \        R4      4      4      4       R# )r   r   r&   N)r   r   r&   r   
assertTrue
isinstancetyper   )r   r1   r&   s   &  r   test_digestKeccakTest.test_digestc   sO    JJB' 	V,
64(+<=>r"   c                D   \         P                  ! R R7      pVP                  4       pVP                  4       pV P	                  \        V4      \        V4      4       V P	                  VP                  4       V4       V P                  \        V\        R4      4      4       R# )r   r   r&   N)
r   r   r&   	hexdigestr   r   r   r>   r?   r@   )r   macr&   rD   s   &   r   test_hex_digestKeccakTest.test_hex_digestl   sn    jjS)MMO	 	')*<=)4
9d8n=>r"   c                   \        R 4      p\        P                  ! RVR,          R7      pVP                  4       pV P	                  \
        VP                  VR,          4       \        P                  ! RVR7      P                  4       p\        P                  ! RVR,          RR7      pV P                  VP                  4       V4       VP                  VR,          4       V P                  VP                  4       V4       R# )rrrrtttr   :N   Nr   r%   :rJ   NNT)r   r%   update_after_digestN)r   r   r   r&   r-   r.   r'   r   )r   msgr1   dig1dig2s   &    r   test_update_after_digest#KeccakTest.test_update_after_digestx   s    iL JJ3SW5xxz)QXXs2w7zzc4;;= JJ3SW$OT* 	
RT*r"    N)__name__
__module____qualname____firstlineno__r    r*   r2   r7   r;   rA   rF   rP   __static_attributes____classdictcell__)__classdict__s   @r   r   r   *   s3     > +C(-:?
?+ +r"   r   c                       ] tR t^tRtR# )KeccakVectorsrR   N)rS   rT   rU   rV   rW   rR   r"   r   r[   r[      s    r"   r[   zShortMsgKAT_224.txtzShort Messages KAT 224lenc                     \        V 4      # Nintxs   &r   <lambda>rc          #a&r"   zLongMsgKAT_224.txtzLong Messages KAT 224c                     \        V 4      # r^   r_   ra   s   &r   rc   rc      rd   r"    c                 v    \         P                  ! ^VR7      pV P                  VP                  4       V4       R# )r   rK   Nr   r   r   r&   r   r%   resultr   s   &&& r   new_testrk      (    zzc5/r"   ztest_224_%dzShortMsgKAT_256.txtzShort Messages KAT 256c                     \        V 4      # r^   r_   ra   s   &r   rc   rc          CFr"   zLongMsgKAT_256.txtzLong Messages KAT 256c                     \        V 4      # r^   r_   ra   s   &r   rc   rc      rn   r"   c                 v    \         P                  ! R VR7      pV P                  VP                  4       V4       R# )r   rK   Nrh   ri   s   &&& r   rk   rk      rl   r"   ztest_256_%dzShortMsgKAT_384.txtzShort Messages KAT 384c                     \        V 4      # r^   r_   ra   s   &r   rc   rc      rd   r"   zLongMsgKAT_384.txtzLong Messages KAT 384c                     \        V 4      # r^   r_   ra   s   &r   rc   rc      rd   r"   c                 v    \         P                  ! R VR7      pV P                  VP                  4       V4       R# )r   rK   Nrh   ri   s   &&& r   rk   rk      rl   r"   ztest_384_%dzShortMsgKAT_512.txtzShort Messages KAT 512c                     \        V 4      # r^   r_   ra   s   &r   rc   rc      rd   r"   zLongMsgKAT_512.txtzLong Messages KAT 512c                     \        V 4      # r^   r_   ra   s   &r   rc   rc      rd   r"   c                 v    \         P                  ! R VR7      pV P                  VP                  4       V4       R# )r   rK   Nrh   ri   s   &&& r   rk   rk      rl   r"   ztest_512_%dc                 b    . pV\        \        4      ,          pV\        \        4      ,          pV# r^   )r   r   r[   )configtestss   & r   	get_testsrz      s*    E	_Z((E	_]++ELr"   __main__c                  >    \         P                  ! \        4       4      # r^   )unittest	TestSuiterz   rR   r"   r   rc   rc      s    H&&y{3r"   suite)defaultTest)Hashr   )#__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tvr\   r%   rM   mdrk   setattrtest_vectors_256test_vectors_384test_vectors_512rz   rS   r   mainrR   r"   r   <module>r      s  > -  ' 4 5  2 2]+"" ]+@	H%% 	 &&8 5 8!&(8 9; A A ?A 
 %&8 4 7!&(8 9; A A ?AA 
 )*GC	vv{urvv  0 M=3.9 + &&8 5 8"'*: <? E E CE 
 %&8 4 7"'*: <? E E CEE 
 )*GC	vv{urvv  0 M=3.9 + &&8 5 8!&(8 9; A A ?A 
 %&8 4 7!&(8 9; A A ?AA 
 )*GC	vv{urvv  0 M=3.9 + &&8 5 8!&(8 9; A A ?A 
 %&8 4 7!&(8 9; A A ?AA 
 )*GC	vv{urvv  0 M=3.9 +   z3EMMg& r"   