+
    '(j2                        R t ^ RIt^ RIHtHt ^ RIHt ^ RIHt ^ RI	H
t
Ht ^ RIHtHtHtHt  ! R R]P"                  4      t ! R	 R
]4      t ! R R]4      t ! R R]P"                  4      t]! R RRRR /4      ;'       g    . t]! ]4       FT  w  tt]P4                  ^ 8X  d
   ]! R4      tM]! ]P8                  4      t]]P:                  3R lt]! ]R],          ]4       KV  	  ]! R RRRR /4      ;'       g    . t ]! ] 4       FT  w  tt]P4                  ^ 8X  d
   ]! R4      tM]! ]P8                  4      t]]P:                  3R lt]! ]R],          ]4       KV  	  / 3R lt!]"R8X  d   ^ RItR t#]PH                  ! RR7       R# R# )!z5Self-test suite for Crypto.Hash.SHAKE128 and SHAKE256N)hexlify	unhexlify)load_test_vectors)list_test_cases)SHAKE128SHAKE256)bbchrbordtobytesc                   D   a  ] tR t^*t o R tR tR tR tR tR t	Rt
V tR# )		SHAKETestc                   V P                   P                  4       pV P                   P                  \        R 4      R7      pV P                   P                  4       P                  \        R 4      4      pV P	                  VP                  ^
4      VP                  ^
4      4       VP                  ^
4       V P                  VP                  ^
4      VP                  ^
4      4       R# )90dataN)shakenewr   updateassertNotEqualreadassertEqual)selfxof1xof2xof3s   &   T/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/SelfTest/Hash/test_SHAKE.pytest_new_positiveSHAKETest.test_new_positive,   s    zz~~zz~~1T7~+zz~~&&qw/DIIbM499R=9		"2		"6    c                   \        ^
4      ^,          \        ^4      R,          .pV P                  P                  4       pVP                  V^ ,          4      P                  V^,          4       VP	                  ^
4      pV P                  P                  4       pVP                  V^ ,          V^,          ,           4       V P                  VP	                  ^
4      V4       R# )
   i,  N)r	   r   r   r   r   r   )r   pieceshdigests   &   r   test_updateSHAKETest.test_update6   s    r(S.$r(S.1JJNN	""6!9-JJNN	VAY&'V,r   c                |    V P                   P                  4       pV P                  \        VP                  R 4       R# )stringN)r   r   assertRaises	TypeErrorr   )r   r#   s   & r   test_update_negativeSHAKETest.test_update_negative?   s(    JJNN)QXXy9r   c           
         V P                   P                  4       pVP                  ^Z4      pV P                  \	        V\        \        R4      4      4      4       V P                  \        V4      ^Z4       R# )Z   r$   N)	r   r   r   
assertTrue
isinstancetyper   r   len)r   r#   r$   s   &  r   test_digestSHAKETest.test_digestC   sQ    JJNN 	
64(+<=>Vb)r   c                    V P                   P                  4       pVP                  \        R 4      4       VP	                  ^Z4       V P                  \        VP                  \        R4      4       R# )rrrrtttN)r   r   r   r   r   r)   r*   )r   macs   & r   test_update_after_read SHAKETest.test_update_after_readK   sG    jjnn

1V9)SZZ5:r   c                    V P                   P                  4       pVP                  \        R 4      4       VP	                  4       pVP                  ^Z4      pVP                  ^Z4      pV P                  W44       R# )r6   N)r   r   r   r   copyr   r   )r   r8   mac2x1x2s   &    r   	test_copySHAKETest.test_copyQ   sU    jjnn

1V9xxzXXb\YYr] r    N)__name__
__module____qualname____firstlineno__r   r%   r+   r3   r9   r@   __static_attributes____classdictcell__)__classdict__s   @r   r   r   *   s(     7-:*;! !r   r   c                       ] tR t^Zt]tRtR# )SHAKE128TestrB   N)rC   rD   rE   rF   r   r   rG   rB   r   r   rK   rK   Z       r   rK   c                       ] tR t^^t]tRtR# )SHAKE256TestrB   N)rC   rD   rE   rF   r   r   rG   rB   r   r   rN   rN   ^   rL   r   rN   c                       ] tR t^btRtR# )SHAKEVectorsrB   N)rC   rD   rE   rF   rG   rB   r   r   rP   rP   b   s    r   rP   zShortMsgKAT_SHAKE128.txtzShort Messages KAT SHAKE128r2   c                     \        V 4      # Nintxs   &r   <lambda>rW   i       3q6r    c                     \         P                  ! VR 7      pVP                  \        V4      4      pV P	                  WB4       R# r   N)r   r   r   r2   r   r   r   resulthobjr$   s   &&&  r   new_testr_   q   0    ||&3v;'(r   ztest_128_%dzShortMsgKAT_SHAKE256.txtzShort Messages KAT SHAKE256c                     \        V 4      # rR   rS   rU   s   &r   rW   rW   |   rX   r   c                     \         P                  ! VR 7      pVP                  \        V4      4      pV P	                  WB4       R# r[   )r   r   r   r2   r   r\   s   &&&  r   r_   r_      r`   r   ztest_256_%dc                     . pV\        \        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV# rR   )r   rK   rN   rP   )configtestss   & r   	get_testsrf      s9    E	_\**E	_\**E	_\**ELr   __main__c                  >    \         P                  ! \        4       4      # rR   )unittest	TestSuiterf   rB   r   r   rW   rW      s    H&&y{3r   suite)defaultTest)HashSHA3)%__doc__ri   binasciir   r   Crypto.SelfTest.loaderr   Crypto.SelfTest.st_commonr   Crypto.Hashr   r   Crypto.Util.py3compatr   r	   r
   r   TestCaser   rK   rN   rP   test_vectors_128	enumerateidxtvr2   r   msgmdr_   setattrtest_vectors_256rf   rC   rk   mainrB   r   r   <module>r      s  > <  ' 4 5 * 8 8-!!! -!`9 9 	8$$ 	 %%59<!&)9;> D D BD 
 )*GC	vv{urvv  )
 L-#-x8 + %%59<!&)9;> D D BD 
 )*GC	vv{urvv  )
 L-#-x8 +   z3EMMg& r   