Ë
    (üàgº?  ã                   ó
  — d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ  G d„ dej                   «      Z G d	„ d
e«      Z G d„ de«      Z G d„ dej                   «      Z G d„ de«      Z G d„ de«      Z G d„ dej                   «      Z G d„ de«      Z G d„ de«      Z G d„ dej                   «      Z G d„ de«      Z G d„ de«      Zi fd„Zed k(  rd dlZd!„ Z ej@                  d"¬#«       yy)$é    N)Ú	unhexlifyÚhexlify)Útobytes)Ústrxor_c)Úlist_test_cases)ÚBLAKE2bÚBLAKE2sc                   óZ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zy)Ú
Blake2Testc                 ó  — | j                   j                  | j                  ¬«      }| j                   j                  |j                  fD �]  }t        d| j                  dz   d«      D ]*  } ||¬«      }| j	                  |j
                  |dz  «       Œ, t        d| j                  dz   «      D ]'  } ||¬«      }| j	                  |j
                  |«       Œ)  |d| j                  ¬«      j                  «       } || j                  ¬«      j                  d«      j                  «       }| j	                  ||«        |dd| j                  ¬	«       �Œ	 |j                  «       }| j	                  |j
                  | j                  «       y )
N©Údigest_bitsé   é   ©Údigest_bytesó   �)Údatar   ó   Aó   5)r   Úkeyr   )	ÚBLAKE2ÚnewÚmax_bitsÚrangeÚassertEqualÚdigest_sizeÚ	max_bytesÚdigestÚupdate)ÚselfÚhÚnew_funcÚdbitsÚhobjÚdbytesÚdigest1Údigest2s           ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/Crypto/SelfTest/Hash/test_BLAKE2.pyÚtest_new_positivezBlake2Test.test_new_positive.   sF  € à�K‰K�O‰O¨¯©ˆOÓ6ˆØŸ™Ÿ™¨¯©Ð.ó 	GˆHä˜q $§-¡-°!Ñ"3°QÓ7ò ?�Ù¨EÔ2�Ø× Ñ  ×!1Ñ!1°5¸A±:Õ>ð?ô    4§>¡>°AÑ#5Ó6ò ;�Ù¨VÔ4�Ø× Ñ  ×!1Ñ!1°6Õ:ð;ñ  G¸$¿.¹.ÔI×PÑPÓRˆGÙ¨D¯N©NÔ;×BÑBÀ7ÓK×RÑRÓTˆGØ×Ñ˜W gÔ.á˜$ D°t·~±~×Fð	Gð  �u‰u‹wˆØ×Ñ˜×)Ñ)¨4¯>©>Õ:ó    c                 ó¬  — | j                   j                  | j                  ¬«      }| j                   j                  |j                  fD �]  }| j                  t        || j
                  | j                  ¬«       | j                  t        |d¬«       | j                  t        || j
                  dz   ¬«       | j                  t        |d¬«       | j                  t        |d¬«       | j                  t        || j                  dz   ¬«       | j                  t        || j
                  d¬	«       | j                  t        || j
                  d¬
«       �Œ y )Nr   )r   r   r   r   r   é   é   Ústring©r   r   )r   r   )r   r   r   ÚassertRaisesÚ	TypeErrorr   Ú
ValueError)r!   r"   r#   s      r)   Útest_new_negativezBlake2Test.test_new_negativeD   s*  € à�K‰K�O‰O¨¯©ˆOÓ6ˆØŸ™Ÿ™¨¯©Ð.ó 	.ˆHØ×Ñœi¨Ø+/¯>©>Ø*.¯-©-ð ô 9ð ×Ñœj¨(ÀÐÔCØ×Ñœj¨(Ø+/¯>©>¸AÑ+=ð ô ?à×Ñœj¨(ÀÐÔBØ×Ñœj¨(ÀÐÔCØ×Ñœj¨(Ø*.¯-©-¸!Ñ*;ð ô =à×Ñœi¨Ø+/¯>©>Ø"+ð ô -ð ×Ñœi¨Ø+/¯>©>Ø#,ð ö .ñ	.r+   c                 ó¢   — | j                   j                  d¬«      j                  «       }| j                  t	        |«      | j
                  «       y )Ns   abc©r   )r   r   r   r   Úlenr   )r!   r   s     r)   Útest_default_digest_sizez#Blake2Test.test_default_digest_sizeY   s7   € Ø—‘—‘ f�Ó-×4Ñ4Ó6ˆØ×Ñœ˜V› d§n¡nÕ5r+   c                 ó„  — ddg}| j                   j                  | j                  ¬«      }|j                  |d   «      j                  |d   «       |j	                  «       }| j                   j                  | j                  ¬«      }|j                  |d   |d   z   «       | j                  |j	                  «       |«       y )NsÈ   







































































































































































































s,  r   r   r   )r   r   r   r    r   r   )r!   Úpiecesr"   r   s       r)   Útest_updatezBlake2Test.test_update]   s•   € Ø Ð/ˆØ�K‰K�O‰O¨¯©ˆOÓ8ˆØ	�‰�˜‘Ó×"Ñ" 6¨!¡9Ô-Ø—‘“ˆØ�K‰K�O‰O¨¯©ˆOÓ8ˆØ	�‰�˜‘˜V A™YÑ&Ô'Ø×Ñ˜Ÿ™› VÕ,r+   c                 ó’   — | j                   j                  | j                  ¬«      }| j                  t        |j
                  d«       y )Nr   r/   )r   r   r   r1   r2   r    )r!   r"   s     r)   Útest_update_negativezBlake2Test.test_update_negativef   s0   € Ø�K‰K�O‰O¨¯©ˆOÓ8ˆØ×Ñœ) Q§X¡X¨yÕ9r+   c                 óø   — | j                   j                  | j                  ¬«      }|j                  «       }| j	                  |j                  «       |«       | j                  t        |t        d«      «      «       y )Nr   s   digest)r   r   r   r   r   Ú
assertTrueÚ
isinstanceÚtype)r!   r"   r   s      r)   Útest_digestzBlake2Test.test_digestj   sT   € Ø�K‰K�O‰O¨¯©ˆOÓ8ˆØ—‘“ˆð 	×Ñ˜Ÿ™› VÔ,à�‰œ
 6¬4°	«?Ó;Õ<r+   c                 óð  — d}| j                   j                  d|d d ¬«      }|j                  «       }| j                  t        |j
                  |dd  «       | j                   j                  d|¬«      j                  «       }| j                   j                  d|d d d¬«      }| j                  |j                  «       |«       |j                  |dd  «       | j                  |j                  «       |«       y )Ns   rrrrttté   é   )r   r   T)r   r   Úupdate_after_digest)r   r   r   r1   r2   r    r   )r!   Úmsgr"   Údig1Údig2s        r)   Útest_update_after_digestz#Blake2Test.test_update_after_digests   sË   € Øˆð �K‰K�O‰O¨°#°b°q°'ˆOÓ:ˆØ�x‰x‹zˆØ×Ñœ) Q§X¡X¨s°1°2¨wÔ7Ø�{‰{�‰¨3°SˆÓ9×@Ñ@ÓBˆð �K‰K�O‰O¨°#°b°q°'ÈtˆOÓTˆØ×Ñ˜Ÿ™› TÔ*ð 	
�‰��Q�R�ÔØ×Ñ˜Ÿ™› TÕ*r+   c                 ó`  — | j                   j                  | j                  ¬«      }|j                  «       }|j	                  «       }| j                  t        |«      t        |«      «       | j                  |j	                  «       |«       | j                  t        |t        d«      «      «       y )Nr   r   )r   r   r   r   Ú	hexdigestr   r   r   r?   r@   rA   )r!   Úmacr   rL   s       r)   Útest_hex_digestzBlake2Test.test_hex_digest„   sx   € Ø�k‰k�o‰o¨$¯-©-ˆoÓ8ˆØ—‘“ˆØ—M‘M“Oˆ	ð 	×Ñœ ›¬'°)Ó*<Ô=à×Ñ˜Ÿ™›¨)Ô4à�‰œ
 9¬d°8«nÓ=Õ>r+   c                 óî   — | j                   j                  | j                  d¬«      }|j                  «       }|j	                  |«       t        |d«      }| j                  t        |j                  |«       y )Nó   4r0   éÿ   )r   r   r   r   Úverifyr   r1   r3   )r!   r"   rM   Ú	wrong_macs       r)   Útest_verifyzBlake2Test.test_verify�   sT   € Ø�K‰K�O‰O¨¯©¸TˆOÓBˆØ�h‰h‹jˆØ	�‰�ŒÜ˜S #Ó&ˆ	Ø×Ñœ* a§h¡h°	Õ:r+   c                 óÖ   — | j                   j                  | j                  d¬«      }|j                  «       }|j	                  |«       | j                  t        |j                  d«       y )NrP   r0   Ú4556)r   r   r   rL   Ú	hexverifyr1   r3   )r!   r"   rM   s      r)   Útest_hexverifyzBlake2Test.test_hexverify—   sI   € Ø�K‰K�O‰O¨¯©¸TˆOÓBˆØ�k‰k‹mˆØ	�‰�CÔØ×Ñœ* a§k¡k°6Õ:r+   c           	      ó¼  ‡— d| j                   z   dz   }| j                  D ]  }| j                  j                  |¬«      Š| j	                  ‰j
                  |t        |dz  «      z   «       | j                  j                  |d¬«      Š| j                  t        ˆfd„«       Œ� d| j                  fD ]*  }|| j                  v rŒ| j                  t        ˆfd„«       Œ, y )	Nz1.3.6.1.4.1.1722.12.2.ú.r   r   s   secret)r   r   c                  ó   •— ‰ j                   S ©N©Úoid©r"   s   €r)   ú<lambda>z%Blake2Test.test_oid.<locals>.<lambda>¦   ó   ø€ °a·e±e€ r+   c                  ó   •— ‰ j                   S r\   r]   r_   s   €r)   r`   z%Blake2Test.test_oid.<locals>.<lambda>«   ra   r+   )
Úoid_variantÚdigest_bits_oidr   r   r   r^   Ústrr1   ÚAttributeErrorr   )r!   Úprefixr   r"   s      @r)   Útest_oidzBlake2Test.test_oid�   sÅ   ø€ à)¨D×,<Ñ,<Ñ<¸sÑBˆà×/Ñ/ò 	=ˆKØ—‘—‘¨K�Ó8ˆAØ×Ñ˜QŸU™U F¬S°ÀÑ1AÓ-BÑ$BÔCà—‘—‘¨K¸Y�ÓGˆAØ×Ñœn«mÕ<ð	=ð ˜tŸ}™}Ð-ò 	=ˆKØ˜d×2Ñ2Ñ2ØØ×Ñœn«mÕ<ñ	=r+   c                 óD  — d}d}t        |«      }t        |«      }| j                  j                  ||¬«      }| j                  j                  ||¬«      }d|d d d|d d | j                  |j	                  «       |j	                  «       «       t        |«      }| j                  j                  «       }| j                  j                  «       }|j                  |«       |j                  |«       d|d d | j                  |j	                  «       |j	                  «       «       y )Nó   0000000000000000ó    ©r   r   ó   ÿr   )Ú	bytearrayr   r   r   r   r    )r!   r   r   Úkey_baÚdata_baÚh1Úh2s          r)   Útest_bytearrayzBlake2Test.test_bytearray­   sç   € àˆØˆô ˜3“ˆÜ˜D“/ˆà�[‰[�_‰_ $¨Cˆ_Ó0ˆØ�[‰[�_‰_ '¨vˆ_Ó6ˆØˆˆr�ˆ
Øˆ��ˆà×Ñ˜Ÿ™› b§i¡i£kÔ2ô ˜D“/ˆà�[‰[�_‰_ÓˆØ�[‰[�_‰_ÓˆØ
�	‰	�$ŒØ
�	‰	�'ÔØˆ��ˆà×Ñ˜Ÿ™› b§i¡i£kÕ2r+   c                 ó„  — d}d}d„ }d„ }||fD �].  } ||«      } ||«      }| j                   j                  ||¬«      }| j                   j                  ||¬«      }	|j                  s
d|d d d|d d | j                  |j	                  «       |	j	                  «       «        ||«      }| j                   j                  «       }| j                   j                  «       }	|j                  |«       |	j                  |«       |j                  sd|d d | j                  |j	                  «       |	j	                  «       «       �Œ1 y )Nrj   rk   c                 ó   — t        | «      S r\   )Ú
memoryviewr6   s    r)   Ú	get_mv_roz-Blake2Test.test_memoryview.<locals>.get_mv_roÍ   s   € Ü˜dÓ#Ð#r+   c                 ó*   — t        t        | «      «      S r\   )rv   rn   r6   s    r)   Ú	get_mv_rwz-Blake2Test.test_memoryview.<locals>.get_mv_rwÐ   s   € Üœi¨›oÓ.Ð.r+   rl   rm   r   )r   r   Úreadonlyr   r   r    )
r!   r   r   rw   ry   Úget_mvÚkey_mvÚdata_mvrq   rr   s
             r)   Útest_memoryviewzBlake2Test.test_memoryviewÈ   s  € àˆØˆò	$ò	/ð ! )Ð,ó 	7ˆFñ ˜C“[ˆFÙ˜T“lˆGà—‘—‘ d°�Ó4ˆBØ—‘—‘ g°6�Ó:ˆBØ×#Ò#Ø%�˜˜�Ø$��r˜�
à×Ñ˜RŸY™Y›[¨"¯)©)«+Ô6ñ ˜T“lˆGà—‘—‘Ó"ˆBØ—‘—‘Ó"ˆBØ�I‰I�dŒOØ�I‰I�gÔØ×#Ò#Ø%�˜˜�à×Ñ˜RŸY™Y›[¨"¯)©)«+Ö6ñ1	7r+   N)Ú__name__Ú
__module__Ú__qualname__r*   r4   r8   r;   r=   rB   rJ   rN   rT   rX   rh   rs   r~   © r+   r)   r   r   ,   sC   „ ò;ò,.ò*6ò-ò:ò=ò+ò"
?ò;ò;ò=ò 3ó6#7r+   r   c                   ó    — e Zd ZeZdZdZdZdZy)ÚBlake2bTesté   é@   )é    rD   i€  r…   Ú1N)	r   r€   r�   r   r   r   r   rd   rc   r‚   r+   r)   r„   r„   î   ó   „ à€Fà€Hà€Ià*€Oà�Kr+   r„   c                   ó    — e Zd ZeZdZdZdZdZy)ÚBlake2sTestrD   é    )é€   r‡   éà   rD   Ú2N)	r   r€   r�   r	   r   r   r   rd   rc   r‚   r+   r)   r‹   r‹   û   r‰   r+   r‹   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚBlake2OfficialTestVectorc           	      óÜ  — d}g }t        |d«      5 }t        |«      D ]¶  \  }}|j                  «       dk(  s|j                  d«      rŒ+t	        j
                  d|z  |«      }|st        d|z  «      ‚|j                  d«      r$t        t        |j                  d«      «      «      }nd}|dk(  r|}	d	}Œ•|d	k(  r|}
d
}ŒŸ|}d}|j                  	
|f«       Œ¸ 	 d d d «       |S # 1 sw Y   |S xY w)NÚinÚrtÚ ú#z%s:	([0-9A-Fa-f]*)ú&Incorrect test vector format (line %d)r   r+   r   Úhash)ÚopenÚ	enumerateÚstripÚ
startswithÚreÚmatchr3   Úgroupr   r   Úappend)r!   Útest_vector_fileÚexpectedÚtest_vectorsÚtest_vector_fdÚline_numberÚlineÚresÚ	bin_valueÚ
input_datar   Úresults               r)   Ú_load_testsz$Blake2OfficialTestVector._load_tests
  s  € ØˆØˆÜÐ" DÓ)ð 	C¨^Ü%.¨~Ó%>ò CÑ!�˜Tà—:‘:“< 2Ò%¨¯©¸Ô)=Øä—h‘hÐ4°xÑ?ÀÓF�ÙÜ$Ð%MØ'2ñ&3ó 4ð 4ð —9‘9˜Q”<Ü )¬'°#·)±)¸A³,Ó*?Ó @‘Ià #�IØ˜tÒ#Ø!*�JØ$‘HØ Ò&Ø#�CØ%‘Hà&�FØ#�HØ ×'Ñ'¨°S¸&Ð(AÕBñ/C÷	Cð2 Ð÷3	Cð2 Ðús   ‘CC!Ã!C+c                 ó   — d| j                   f}| j                   j                  «       dz   }d| j                   z  | _        	 dd l}t        j                  j                  |j                  «      }t        j                  j                  t        j                  j                  |g|¢­Ž |«      }| j                  |«      | _        y # t        $ r1 t        j                  d| j                   z  t        «       g | _        Y y w xY w)NÚHashz	-test.txtú%s testsr   ú'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)   ÚsetUpzBlake2OfficialTestVector.setUp(  sÉ   € à˜TŸY™YÐ'ˆ	Ø—I‘I—O‘OÓ%¨Ñ3ˆ	Ø%¨¯	©	Ñ1ˆÔð	Û,ô —7‘7—?‘?Ð#<×#EÑ#EÓFˆÜŸ™Ÿ™¤b§g¡g§l¡l°8Ð&H¸iÒ&HÈ)ÓTˆØ ×,Ñ,¨^Ó<ˆÕøô ò 	Ü�M‰MÐCÀdÇiÁiÑOÜ&ô(à "ˆDÔÙð		ús   ÁC Ã7C=Ã<C=c                 óÞ   — | j                   D ]^  \  }}}| j                  j                  || j                  ¬«      }|j	                  |«       | j                  |j                  «       |«       Œ` y )N)r   r   )r£   r   r   r   r    r   r   )r!   r©   r   rª   rM   s        r)   ÚrunTestz Blake2OfficialTestVector.runTest:  sZ   € Ø)-×):Ñ):ò 	3Ñ%ˆZ˜˜fØ—+‘+—/‘/ c¸¿¹�/ÓGˆCØ�J‰J�zÔ"Ø×Ñ˜SŸZ™Z›\¨6Õ2ñ	3r+   N©r   r€   r�   r«   rÂ   rÄ   r‚   r+   r)   r‘   r‘     s   „ òò<=ó$3r+   r‘   c                   ó   — e Zd ZeZdZdZy)ÚBlake2bOfficialTestVectorr   r†   N©r   r€   r�   r   r   r°   r   r‚   r+   r)   rÇ   rÇ   A  ó   „ à€Fà€Dà�Ir+   rÇ   c                   ó   — e Zd ZeZdZdZy)ÚBlake2sOfficialTestVectorr	   rŒ   N©r   r€   r�   r	   r   r°   r   r‚   r+   r)   rË   rË   J  rÉ   r+   rË   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚBlake2TestVector1c                 óp  — g }t        |d«      5 }t        |«      D ]‚  \  }}|j                  «       dk(  s|j                  d«      rŒ+t	        j
                  d|«      }|st        d|z  «      ‚|j                  t        t        |j                  d«      «      «      «       Œ„ 	 d d d «       |S # 1 sw Y   |S xY w)Nr”   r•   r–   zdigest: ([0-9A-Fa-f]*)r—   r   )r™   rš   r›   rœ   r�   rž   r3   r    r   r   rŸ   )r!   r¡   r£   r¤   r¥   r¦   r§   s          r)   r«   zBlake2TestVector1._load_testsU  s¼   € ØˆÜÐ" DÓ)ð 		F¨^Ü%.¨~Ó%>ò FÑ!�˜TØ—:‘:“< 2Ò%¨¯©¸Ô)=ØÜ—h‘hÐ7¸Ó>�ÙÜ$Ð%MØ'2ñ&3ó 4ð 4ð ×#Ñ#¤I¬g°c·i±iÀ³lÓ.CÓ$DÕEñF÷		Fð Ð÷		Fð Ðús   �BB+Â+B5c                 óÊ  — d| j                   f}d}d| j                   z  | _        	 dd l}t        j                  j                  |j                  «      }t        j                  j                  t        j                  j                  |g|¢­Ž |«      }| j                  |«      | _        y # t        $ r1 t	        j
                  d| j                   z  t        «       g | _        Y y w xY w)Nr­   ztv1.txtr®   r   r¯   ©r°   r²   r³   r´   rµ   r¶   r·   r£   r¸   r¹   rº   r»   r¼   r«   r½   s         r)   rÂ   zBlake2TestVector1.setUpc  ó¹   € Ø˜TŸY™YÐ'ˆ	Øˆ	Ø%¨¯	©	Ñ1ˆÔð	Û,ô —7‘7—?‘?Ð#<×#EÑ#EÓFˆÜŸ™Ÿ™¤b§g¡g§l¡l°8Ð&H¸iÒ&HÈ)ÓTˆØ ×,Ñ,¨^Ó<ˆÕøô ò 	Ü�M‰MÐCÀdÇiÁiÑOÜ&ô(à "ˆDÔÙð		úó   ¦B( Â(7C"Ã!C"c                 ó   — | j                   D ]  }t        |«      }d}t        d«      D ]B  }| j                  j	                  |¬«      }|j                  |«       |j                  «       |z   }ŒD | j                  j                  «       |«       Œ� y )Nr+   éd   r   )r£   r7   r   r   r   r    r   r   )r!   Útvr   Ú	next_dataÚ_r"   s         r)   rÄ   zBlake2TestVector1.runTestt  s€   € à×#Ñ#ò 	-ˆBÜ˜r›7ˆLØˆIÜ˜3“Zò 3�Ø—K‘K—O‘O°�OÓ>�Ø—‘˜Ô#ØŸH™H›J¨Ñ2‘	ð3ð ×Ñ˜QŸX™X›Z¨Õ,ñ	-r+   NrÅ   r‚   r+   r)   rÎ   rÎ   S  s   „ òò=ó"	-r+   rÎ   c                   ó   — e Zd ZeZdZy)ÚBlake2bTestVector1r   N)r   r€   r�   r   r   r°   r‚   r+   r)   rÚ   rÚ   €  ó   „ à€Fà�Dr+   rÚ   c                   ó   — e Zd ZeZdZy)ÚBlake2sTestVector1r	   N)r   r€   r�   r	   r   r°   r‚   r+   r)   rÝ   rÝ   ‡  rÛ   r+   rÝ   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚBlake2TestVector2c           	      ó¬  — g }t        |d«      5 }t        |«      D ]   \  }}|j                  «       dk(  s|j                  d«      rŒ+t	        j
                  d|«      }|st        d|z  «      ‚t        |j                  d«      «      }t        t        |j                  d«      «      «      }|j                  ||f«       Œ¢ 	 d d d «       |S # 1 sw Y   |S xY w)Nr”   r•   r–   z"digest\(([0-9]+)\): ([0-9A-Fa-f]*)r—   r   é   )r™   rš   r›   rœ   r�   rž   r3   ÚintrŸ   r   r   r    )	r!   r¡   r£   r¤   r¥   r¦   r§   Úkey_sizerª   s	            r)   r«   zBlake2TestVector2._load_tests�  sÑ   € ØˆÜÐ" DÓ)ð 
	8¨^Ü%.¨~Ó%>ò 	8Ñ!�˜TØ—:‘:“< 2Ò%¨¯©¸Ô)=ØÜ—h‘hÐDÀdÓK�ÙÜ$Ð%MØ'2ñ&3ó 4ð 4ä˜sŸy™y¨›|Ó,�Ü"¤7¨3¯9©9°Q«<Ó#8Ó9�Ø×#Ñ# X¨vÐ$6Õ7ñ	8÷
	8ð Ð÷
	8ð Ðús   �B/C	Ã	Cc                 óÊ  — d| j                   f}d}d| j                   z  | _        	 dd l}t        j                  j                  |j                  «      }t        j                  j                  t        j                  j                  |g|¢­Ž |«      }| j                  |«      | _        y # t        $ r1 t	        j
                  d| j                   z  t        «       g | _        Y y w xY w)Nr­   ztv2.txtr®   r   r¯   rÑ   r½   s         r)   rÂ   zBlake2TestVector2.setUpŸ  rÒ   rÓ   c                 ó,  — | j                   D ]…  \  }}d}t        d«      D ]P  }| j                  j                  | j                  d|z  ¬«      }|j                  |«       |j                  «       |z   }ŒR | j                  j                  «       |«       Œ‡ y )Nr+   rÕ   r   r0   )r£   r   r   r   r   r    r   r   )r!   rã   rª   r×   rØ   r"   s         r)   rÄ   zBlake2TestVector2.runTest°  sŒ   € à $× 1Ñ 1ò 	1ÑˆH�fØˆIÜ˜3“Zò 3�Ø—K‘K—O‘O°·±Ø(,¨x©ð $ó 9�à—‘˜Ô#ØŸH™H›J¨Ñ2‘	ð	3ð
 ×Ñ˜QŸX™X›Z¨Õ0ñ	1r+   NrÅ   r‚   r+   r)   rß   rß   Ž  s   „ òò=ó"	1r+   rß   c                   ó   — e Zd ZeZdZdZy)ÚBlake2bTestVector2r   r†   NrÈ   r‚   r+   r)   rç   rç   ¼  rÉ   r+   rç   c                   ó   — e Zd ZeZdZdZy)ÚBlake2sTestVector2r	   rŒ   NrÌ   r‚   r+   r)   ré   ré   Å  rÉ   r+   ré   c                 ó~  — g }|t        t        «      z  }|j                  t        «       «       |j                  t	        «       «       |j                  t        «       «       |t        t        «      z  }|j                  t        «       «       |j                  t        «       «       |j                  t        «       «       |S r\   )
r   r„   r    rÇ   rÚ   rç   r‹   rË   rÝ   ré   )ÚconfigÚtestss     r)   Ú	get_testsrí   Î  sŠ   € Ø€Eà	Œ_œ[Ó)Ñ)€EØ	‡L�LÔ*Ó,Ô-Ø	‡L�LÔ#Ó%Ô&Ø	‡L�LÔ#Ó%Ô&à	Œ_œ[Ó)Ñ)€EØ	‡L�LÔ*Ó,Ô-Ø	‡L�LÔ#Ó%Ô&Ø	‡L�LÔ#Ó%Ô&à€Lr+   Ú__main__c                  ó<   — t        j                  t        «       «      S r\   )Ú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�×"Ñ"ô 7ôD
�*ô 
ô
�*ô 
ô63˜x×0Ñ0ô 63ôrÐ 8ô ôÐ 8ô ô*-˜×)Ñ)ô *-ôZÐ*ô ôÐ*ô ô+1˜×)Ñ)ô +1ô\Ð*ô ôÐ*ô ð ó ð  ˆzÒÛò/à€H‡M�M˜gÖ&ð	 r+   