+
    '(j                        R t ^ RIt^ RIHt ^ RIHt ^ RIHtHtH	t	H
t
 ^ RI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]3RRR]3RRR]3RRR]3.t] EF  w  tttt]! R)]]RR RR RR /4      ;'       g    . t]! ]4       F  w  tt]! ]R^ 4      ^ 8X  d
   ]! R 4      tM<]! ]P>                  4      t]P@                  ] ! ]P>                  4      ^,          8X  g   Q h]! ]R^ 4      ^ 8w  d	   ]!! R!4      h]! ]R^ 4      ^ 8X  d
   ]! R 4      t"M<]! ]PF                  4      t"]PH                  ] ! ]PF                  4      ^,          8X  g   Q h]]PJ                  ]"]3R" lt&]'! ]R#]]3,          ]&4       K  	  EK!  	  / 3R$ lt(])R%8X  d   ^ RItR& t*]PV                  ! R'R(7       R# R# )*z7Self-test suite for Crypto.Hash.cSHAKE128 and cSHAKE256N)load_test_vectors)list_test_cases)	cSHAKE128	cSHAKE256SHAKE128SHAKE256)bbchrtobytesc                   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
# )
cSHAKETestc                    ^ RI Hp V P                  V! ^ 4      R4       V P                  V! ^4      R4       V P                  V! R4      R4       R# )    )_left_encodes    s      s    N)Crypto.Hash.cSHAKE128r   assertEqual)selfr   s   & U/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/SelfTest/Hash/test_cSHAKE.pytest_left_encodecSHAKETest.test_left_encode(   sB    6a+6a+6c*O<    c                   ^ RI Hp V P                  V! R^4      R4       V P                  V! R^4      R4       V P                  V! R^4      R4       V P                  V! R^4      R	4       V P                  V! R
^4      R4       V P                  V! R^4      R4       V P                  V! R^4      R4       V P                  V! R^4      R4       R# )r   )_bytepadr   s        As   A s   AAs   AAs   AAAs   AAA   s   AAAAs   AAAA  s   AAAAAs   AAAAA s   AAAAAAs   AAAAAAs   AAAAAAAs   AAAAAAA   N)r   r   r   )r   r   s   & r   test_bytepadcSHAKETest.test_bytepad.   s    2#q)+>?$*,<=%+];&!,.HI'1-/FG(A.0DE)Q/1BC*a02PQr   c                8   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       V P                   P                  4       pVP                  ^
4      pV P                   P                  \        R4      R7      pV P                   P                  \        R4      R7      pV P                  WBP                  ^
4      4       V P	                  WCP                  ^
4      4       V P                   P                  \        R4      R7      pV P                   P                  \        R4      \        R 4      R7      pV P                   P                  \        R4      R7      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)data )customfoo)r!   r   N)cshakenewr   updateassertNotEqualreadr   )r   xof1xof2xof3refs   &    r   test_new_positivecSHAKETest.test_new_positive9   s   {{ {{AdG,{{ ''$0DIIbM499R=9		"2		"6{{ iim{{ae,{{ah/iim,C2/{{ah/{{ahQtW={{ah/66qw?DIIbM499R=9		"2		"6r   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cSHAKETest.test_updateS   s    r(S.$r(S.1KKOO	""6!9-KKOO	VAY&'V,r   c                |    V P                   P                  4       pV P                  \        VP                  R 4       R# )stringN)r#   r$   assertRaises	TypeErrorr%   )r   r1   s   & r   test_update_negativecSHAKETest.test_update_negative\   s(    KKOO)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   r2   N)	r#   r$   r'   
assertTrue
isinstancetyper   r   len)r   r1   r2   s   &  r   test_digestcSHAKETest.test_digest`   sQ    KKOO 	
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'   r7   r8   )r   macs   & r   test_update_after_read!cSHAKETest.test_update_after_readh   sG    kkoo

1V9)SZZ5:r   c                    \        ^@4       Fi  pV P                  P                  R4      pV P                  P                  R4      pV P	                  VP                  V4      VP                  V4      4       Kk  	  R# )@   s   TESTN)ranger#   r$   shaker   r'   )r   
digest_lenr(   r)   s   &   r   
test_shakecSHAKETest.test_shaken   sV    )J;;??7+D::>>'*DTYYz2DIIj4IJ $r    N)__name__
__module____qualname____firstlineno__r   r   r,   r3   r9   rA   rG   rN   __static_attributes____classdictcell__)__classdict__s   @r   r   r   &   s5     =	R74-:*;K Kr   r   c                       ] tR t^vt]t]tRtR# )cSHAKE128TestrP   N)	rQ   rR   rS   rT   r   r#   r   rL   rU   rP   r   r   rY   rY   v       FEr   rY   c                       ] tR t^{t]t]tRtR# )cSHAKE256TestrP   N)	rQ   rR   rS   rT   r   r#   r   rL   rU   rP   r   r   r\   r\   {   rZ   r   r\   c                       ] tR t^tRtR# )cSHAKEVectorsrP   N)rQ   rR   rS   rT   rU   rP   r   r   r^   r^      s    r   r^   zShortMsgSamples_cSHAKE128.txtzShort Message Samples cSHAKE128
128_cshakezShortMsgSamples_cSHAKE256.txtzShort Message Samples cSHAKE256
256_cshakezCustomMsgSamples_cSHAKE128.txtz Custom Message Samples cSHAKE128custom_128_cshakezCustomMsgSamples_cSHAKE256.txtz Custom Message Samples cSHAKE256custom_256_cshaker@   c                     \        V 4      # Nintxs   &r   <lambda>ri      s    s1vr   nlenc                     \        V 4      # rd   re   rg   s   &r   ri   ri          Ar   slenc                     \        V 4      # rd   re   rg   s   &r   ri   ri      rl   r   r    zUnsupported cSHAKE test vectorc                     VP                  WR 7      pVP                  \        V4      4      pV P                  Wb4       R# ))r   r!   N)r$   r'   r@   r   )r   r   resultr!   
test_classhobjr2   s   &&&&&  r   new_testrs      s2    >>t>;DYYs6{+FV,r   z
test_%s_%dc                     . pV\        \        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV# rd   )r   rY   r\   r^   )configtestss   & r   	get_testsrw      s9    E	_]++E	_]++E	_]++ELr   __main__c                  >    \         P                  ! \        4       4      # rd   )unittest	TestSuiterw   rP   r   r   ri   ri      s    H&&y{3r   suite)defaultTest)HashSHA3),__doc__rz   Crypto.SelfTest.loaderr   Crypto.SelfTest.st_commonr   Crypto.Hashr   r   r   r   Crypto.Util.py3compatr   r	   r
   TestCaser   rY   r\   r^   vector_filesfiledescrtagrq   test_vectors	enumerateidxtvgetattrr   msgr@   
ValueErrorr!   srm   mdrs   setattrrw   rQ   r|   mainrP   r   r   <module>r      s  6 >  4 5 @ @ 2 2MK"" MK`J 
J 
	H%% 	 12SUaclm02SUaclm13UWjluv13UWjluv %1 D%j$%5tU&+-=&,.>&,.>&@A G G EG 
 \*R2ua A%R5D266?D66S[]*+*2vq!Q&=>>2vq!Q&rUFRTT]F77c"$$ik)*) $RUU6j 	-
 	|sCj8(C' + %1:   z3EMMg& r   