+
    '(j?                        ^ RI t ^ RIt^ RI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  ! R R]P                   4      t ! R	 R
]4      t ! R R]4      t ! R R]P                   4      t ! R R]4      t ! R R]4      t ! R R]P                   4      t ! R R]4      t ! R R]4      t ! R R]P                   4      t ! R R]4      t ! R R]4      t/ 3R lt]R 8X  d   ^ RItR! t]P@                  ! R"R#7       R# R# )$    N)	unhexlifyhexlify)tobytes)strxor_c)list_test_cases)BLAKE2bBLAKE2sc                   n   a  ] tR t^,t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tRtV tR# )
Blake2Testc                8   V P                   P                  V P                  R 7      pV P                   P                  VP                  3 EF  p\        ^V P                  ^,           ^4       F/  pV! VR 7      pV P	                  VP
                  V^,          4       K1  	  \        ^V P                  ^,           4       F(  pV! VR7      pV P	                  VP
                  V4       K*  	  V! RV P                  R7      P                  4       pV! V P                  R7      P                  R4      P                  4       pV P	                  Wg4       V! RRV P                  R7       EK  	  VP                  4       pV P	                  VP
                  V P                  4       R# )digest_bitsdigest_bytes   )datar      A   5)r   keyr   N)	BLAKE2newmax_bitsrangeassertEqualdigest_size	max_bytesdigestupdate)selfhnew_funcdbitshobjdbytesdigest1digest2s   &       U/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/SelfTest/Hash/test_BLAKE2.pytest_new_positiveBlake2Test.test_new_positive.   s6   KKOOO6.Hq$--!"3Q7E2  !1!15A:> 8  4>>A#56V4  !1!16: 7 G$..IPPRGDNN;BB7KRRTGW.$Dt~~FF /  uuw))4>>:    c                   V P                   P                  V P                  R 7      pV P                   P                  VP                  3 EF  pV P                  \        VV P
                  V P                  R7       V P                  \        V^ R7       V P                  \        VV P
                  ^,           R7       V P                  \        V^R 7       V P                  \        V^R 7       V P                  \        VV P                  ^,           R 7       V P                  \        VV P
                  RR7       V P                  \        VV P
                  RR7       EK  	  R# )r   )r   r   r   stringr   r   )r   r   N)r   r   r   assertRaises	TypeErrorr   
ValueError)r   r    r!   s   &  r'   test_new_negativeBlake2Test.test_new_negativeD   s%   KKOOO6.Hi+/>>*.--  9 j(Cj(+/>>A+=  ?j(Bj(Cj(*.--!*;  =i+/>>"+  - i+/>>#,  . /r*   c                    V P                   P                  R R7      P                  4       pV P                  \	        V4      V P
                  4       R# )s   abcr   N)r   r   r   r   lenr   )r   r   s   & r'   test_default_digest_size#Blake2Test.test_default_digest_sizeY   s7    f-446Vdnn5r*   c                   RR.pV P                   P                  V P                  R7      pVP                  V^ ,          4      P                  V^,          4       VP	                  4       pV P                   P                  V P                  R7      pVP                  V^ ,          V^,          ,           4       V P                  VP	                  4       V4       R# )   
r   Ns   







































































































































































































s,  )r   r   r   r   r   r   )r   piecesr    r   s   &   r'   test_updateBlake2Test.test_update]   s    /KKOOO8	""6!9-KKOOO8	VAY&'V,r*   c                    V P                   P                  V P                  R 7      pV P                  \        VP
                  R4       R# )r   r,   N)r   r   r   r.   r/   r   )r   r    s   & r'   test_update_negativeBlake2Test.test_update_negativef   s0    KKOOO8)QXXy9r*   c                    V P                   P                  V P                  R 7      pVP                  4       pV P	                  VP                  4       V4       V P                  \        V\        R4      4      4       R# )r   s   digestN)r   r   r   r   r   
assertTrue
isinstancetype)r   r    r   s   &  r'   test_digestBlake2Test.test_digestj   sT    KKOOO8 	V,
64	?;<r*   c                   R pV P                   P                  RVR,          R7      pVP                  4       pV P                  \        VP
                  VR,          4       V P                   P                  RVR7      P                  4       pV 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# )s   rrrrttt   :N   N)r   r   :rH   NNT)r   r   update_after_digestN)r   r   r   r.   r/   r   r   )r   msgr    dig1dig2s   &    r'   test_update_after_digest#Blake2Test.test_update_after_digests   s     KKOO#b'O:xxz)QXXs2w7{{3S9@@B KKOO#b'tOTT* 	
RT*r*   c                b   V P                   P                  V P                  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   N)r   r   r   r   	hexdigestr   r   r   rA   rB   rC   )r   macr   rP   s   &   r'   test_hex_digestBlake2Test.test_hex_digest   sx    kkoo$--o8MMO	 	')*<=)4
9d8n=>r*   c                    V P                   P                  V P                  R R7      pVP                  4       pVP	                  V4       \        V^4      pV P                  \        VP                  V4       R# )   4r-   N)r   r   r   r   verifyr   r.   r0   )r   r    rQ   	wrong_macs   &   r'   test_verifyBlake2Test.test_verify   sT    KKOOTOBhhj	S#&	*ahh	:r*   c                    V P                   P                  V P                  R R7      pVP                  4       pVP	                  V4       V P                  \        VP                  R4       R# )rU   r-   4556N)r   r   r   rP   	hexverifyr.   r0   )r   r    rQ   s   &  r'   test_hexverifyBlake2Test.test_hexverify   sI    KKOOTOBkkm	C*akk6:r*   c           	       a R V P                   ,           R,           pV P                   F  pV P                  P                  VR7      oV P	                  SP
                  V\        V^,          4      ,           4       V P                  P                  VRR7      oV P                  \        V3R l4       K  	  ^V P                  3 F/  pW P                  9   d   K  V P                  \        V3R l4       K1  	  R# )z1.3.6.1.4.1.1722.12.2..r   s   secret)r   r   c                     < S P                   # Noidr    s   r'   <lambda>%Blake2Test.test_oid.<locals>.<lambda>   	    aeer*   c                     < S P                   # rb   rc   re   s   r'   rf   rg      rh   r*   N)
oid_variantdigest_bits_oidr   r   r   rd   strr.   AttributeErrorr   )r   prefixr   r    s   &  @r'   test_oidBlake2Test.test_oid   s    )D,<,<<sB//KK8AQUUFS1A-B$BCKYGAnm< 0 t}}-K222nm< .r*   c                B   RpRp\        V4      p\        V4      pV P                  P                  W!R7      pV P                  P                  WCR7      pRVR&   RVR&   V P                  VP	                  4       VP	                  4       4       \        V4      pV P                  P                  4       pV P                  P                  4       pVP                  V4       VP                  V4       RVR&   V P                  VP	                  4       VP	                  4       4       R# )   0    r   r      N   NN   0000000000000000)	bytearrayr   r   r   r   r   )r   r   r   key_badata_bah1h2s   &      r'   test_bytearrayBlake2Test.test_bytearray   s     3D/[[__$_0[[__'_6r
biik2 D/[[__[[__
		$
		'biik2r*   c                   RpRpR pR pW43 EF9  pV! V4      pV! V4      pV P                   P                  W!R7      pV P                   P                  WvR7      p	VP                  '       g   RVR&   RVR&   V P                  VP	                  4       V	P	                  4       4       V! V4      pV P                   P                  4       pV P                   P                  4       p	VP                  V4       V	P                  V4       VP                  '       g   RVR&   V P                  VP	                  4       V	P	                  4       4       EK<  	  R# )	rr   rs   c                     \        V 4      # rb   )
memoryviewr4   s   &r'   	get_mv_ro-Blake2Test.test_memoryview.<locals>.get_mv_ro   s    d##r*   c                 *    \        \        V 4      4      # rb   )r   ry   r4   s   &r'   	get_mv_rw-Blake2Test.test_memoryview.<locals>.get_mv_rw   s    io..r*   rt   ru   rv   Nrx   )r   r   readonlyr   r   r   )
r   r   r   r   r   get_mvkey_mvdata_mvr|   r}   s
   &         r'   test_memoryviewBlake2Test.test_memoryview   s   	$	/ !,F C[FTlGd4Bg:B###%$r
RYY["))+6 TlG"B"BIIdOIIg###%RYY["))+61 -r*    N)__name__
__module____qualname____firstlineno__r(   r1   r6   r;   r>   rD   rM   rR   rX   r]   ro   r~   r   __static_attributes____classdictcell____classdict__s   @r'   r   r   ,   sK     ;,.*6-:=+"
?;;= 36#7 #7r*   r   c                   *    ] tR t^t]tRt^@tRtRt	Rt
R# )Blake2bTest   1r   N)   rG     r   )r   r   r   r   r   r   r   r   rk   rj   r   r   r*   r'   r   r          FHI*OKr*   r   c                   *    ] tR t^t]tRt^ tRtRt	Rt
R# )Blake2sTestrG   2r   N)   r      rG   )r   r   r   r   r	   r   r   r   rk   rj   r   r   r*   r'   r   r      r   r*   r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )Blake2OfficialTestVectori  c           
     B   R p. p\        VR4      ;_uu_ 4       p\        V4       F  w  rVVP                  4       R8X  g   VP                  R4      '       d   K3  \        P
                  ! RV,          V4      pV'       g   \        RV,          4      hVP                  ^4      '       d%   \        \        VP                  ^4      4      4      pMRpVR 8X  d   Tp	RpK  VR8X  d   Tp
RpK  TpR pVP                  X	X
V34       K  	  R	R	R	4       V#   + '       g   i     T# ; i)
inrt #z%s:	([0-9A-Fa-f]*)&Incorrect test vector format (line %d)r*   r   hashN)open	enumeratestrip
startswithrematchr0   groupr   r   append)r   test_vector_fileexpectedtest_vectorstest_vector_fdline_numberlineres	bin_value
input_datar   results   &&          r'   _load_tests$Blake2OfficialTestVector._load_tests
  s
   "D))^%.~%>!::<2%)=)=hh4x?F$%M'2&3 4 4 99Q<< )'#))A,*? @I #It#!*J$H&#C%H&F#H ''S&(AB/ &? *2 3 *)2 s   <D'D>(D'ADD	c                &   R V P                   3pV P                   P                  4       R,           pRV P                   ,          V n         ^ RIp\        P                  P                  TP                  4      p\        P                  P                  \        P                  P                  ! T.TO5!  T4      pT P                  T4      T n        R#   \         d8    \
        P                  ! RT P                   ,          \        4       . T n         R# i ; i)Hashz	-test.txt%s testsN'Warning: skipping extended tests for %s)namelowerdescriptionpycryptodome_test_vectorsImportErrorwarningswarnUserWarningr   ospathdirname__file__joinr   r   	dir_comps	file_namer   init_dirfull_file_names   &     r'   setUpBlake2OfficialTestVector.setUp(  s    TYY'	IIOO%3	%		1	, 77??#<#E#EFbggll8&Hi&H)T ,,^<  	MMCdiiO&( "D		s   	C >DDc                    V P                    F]  w  rpV P                  P                  W P                  R 7      pVP	                  V4       V P                  VP                  4       V4       K_  	  R# ))r   r   N)r   r   r   r   r   r   r   )r   r   r   r   rQ   s   &    r'   runTest Blake2OfficialTestVector.runTest:  sQ    )-):):%Zf++//c/GCJJz"SZZ\62 *;r*   r   r   N	r   r   r   r   r   r   r   r   r   r   s   @r'   r   r     s     <=$3 3r*   r   c                   "    ] tR tRt]tRt^@tRtR# )Blake2bOfficialTestVectoriA  r   r   N	r   r   r   r   r   r   r   r   r   r   r*   r'   r   r   A      FDIr*   r   c                   "    ] tR tRt]tRt^ tRtR# )Blake2sOfficialTestVectoriJ  r	   r   N	r   r   r   r   r	   r   r   r   r   r   r*   r'   r   r   J  r   r*   r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )Blake2TestVector1iS  c                   . p\        VR 4      ;_uu_ 4       p\        V4       F  w  rEVP                  4       R8X  g   VP                  R4      '       d   K3  \        P
                  ! RV4      pV'       g   \        RV,          4      hVP                  \        \        VP                  ^4      4      4      4       K  	  RRR4       V#   + '       g   i     T# ; i)r   r   r   zdigest: ([0-9A-Fa-f]*)r   N)r   r   r   r   r   r   r0   r   r   r   r   )r   r   r   r   r   r   r   s   &&     r'   r   Blake2TestVector1._load_testsU  s    "D))^%.~%>!::<2%)=)=hh7>$%M'2&3 4 4 ##Igciil.C$DE &? *  *) s   <C C5ACC	c                   R V P                   3pRpRV P                   ,          V n         ^ RIp\        P                  P                  TP                  4      p\        P                  P                  \        P                  P                  ! T.TO5!  T4      pT P                  T4      T n        R#   \         d8    \        P
                  ! RT P                   ,          \        4       . T n         R# i ; i)r   ztv1.txtr   Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s   &     r'   r   Blake2TestVector1.setUpc      TYY'		%		1	, 77??#<#E#EFbggll8&Hi&H)T ,,^<  	MMCdiiO&( "D		   B/ />C10C1c                2   V P                    F  p\        V4      pR p\        ^d4       FG  pV P                  P	                  VR7      pVP                  V4       VP                  4       V,           pKI  	  V P                  XP                  4       V4       K  	  R# )r*   r   N)r   r5   r   r   r   r   r   r   )r   tvr   	next_data_r    s   &     r'   r   Blake2TestVector1.runTestt  sv    ##Br7LI3ZKKOOO>#HHJ2	   QXXZ, $r*   r   Nr   r   s   @r'   r   r   S  s     ="	- 	-r*   r   c                       ] tR tRt]tRtRtR# )Blake2bTestVector1r   r   r   N)r   r   r   r   r   r   r   r   r   r*   r'   r   r         FDr*   r   c                       ] tR tRt]tRtRtR# )Blake2sTestVector1i  r	   r   N)r   r   r   r   r	   r   r   r   r   r*   r'   r   r     r   r*   r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )Blake2TestVector2i  c           
        . p\        VR 4      ;_uu_ 4       p\        V4       F  w  rEVP                  4       R8X  g   VP                  R4      '       d   K3  \        P
                  ! RV4      pV'       g   \        RV,          4      h\        VP                  ^4      4      p\        \        VP                  ^4      4      4      pVP                  Wx34       K  	  RRR4       V#   + '       g   i     T# ; i)r   r   r   z"digest\(([0-9]+)\): ([0-9A-Fa-f]*)r   N)r   r   r   r   r   r   r0   intr   r   r   r   )	r   r   r   r   r   r   r   key_sizer   s	   &&       r'   r   Blake2TestVector2._load_tests  s    "D))^%.~%>!::<2%)=)=hhDdK$%M'2&3 4 4syy|,"7399Q<#89##X$67 &? *  *) s   <C$ C$5A%C$$C5	c                   R V P                   3pRpRV P                   ,          V n         ^ RIp\        P                  P                  TP                  4      p\        P                  P                  \        P                  P                  ! T.TO5!  T4      pT P                  T4      T n        R#   \         d8    \        P
                  ! RT P                   ,          \        4       . T n         R# i ; i)r   ztv2.txtr   Nr   r   r   s   &     r'   r   Blake2TestVector2.setUp  r   r   c                D   V P                    F  w  rR p\        ^d4       FY  pV P                  P                  V P                  RV,          R7      pVP                  V4       VP                  4       V,           pK[  	  V P                  XP                  4       V4       K  	  R# )r*   r   r-   N)r   r   r   r   r   r   r   r   )r   r   r   r   r   r    s   &     r'   r   Blake2TestVector2.runTest  s     $ 1 1HI3ZKKOO(,x $ 9#HHJ2		  
 QXXZ0 !2r*   r   Nr   r   s   @r'   r   r     s     ="	1 	1r*   r   c                   "    ] tR tRt]tRt^@tRtR# )Blake2bTestVector2i  r   r   Nr   r   r*   r'   r  r    r   r*   r  c                   "    ] tR tRt]tRt^ tRtR# )Blake2sTestVector2i  r	   r   Nr   r   r*   r'   r  r    r   r*   r  c                    . pV\        \        4      ,          pVP                  \        4       4       VP                  \	        4       4       VP                  \        4       4       V\        \        4      ,          pVP                  \        4       4       VP                  \        4       4       VP                  \        4       4       V# rb   )
r   r   r   r   r   r  r   r   r   r  )configtestss   & r'   	get_testsr    s    E	_[))E	LL*,-	LL#%&	LL#%&	_[))E	LL*,-	LL#%&	LL#%&Lr*   __main__c                  >    \         P                  ! \        4       4      # rb   )unittest	TestSuiter  r   r*   r'   suiter    s    !!)+..r*   r  )defaultTest)!r   r   r  r   binasciir   r   Crypto.Util.py3compatr   Crypto.Util.strxorr   Crypto.SelfTest.st_commonr   Crypto.Hashr   r	   TestCaser   r   r   r   r   r   r   r   r   r   r  r  r  r   r  mainr   r*   r'   <module>r     s  > 
 	   ' ) ' 5 (7"" 7D
* 

* 
63x00 63r 8  8 *-)) *-Z* * +1)) +1\* *     z/MMg&	 r*   