Ë
    (üàg–&  ã                   óp  — d Z ddlZ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
mZ ddlmZ d„ Z G d„ dej                  «      Z G d	„ d
ej                  «      Z G d„ dej                  «      Z G d„ dej                  «      Z G d„ dej                  «      Z G d„ dej                  «      Zdi fd„Zd„ Zy)z&Self-testing for PyCrypto hash modulesé    N)ÚhexlifyÚ	unhexlify)ÚbÚtobytes)Ústrxor_cc                 óX   — t        j                  ddt        | «      «      }t        |«      S )Ns   \s+ó    )ÚreÚsubr   r   )Ú
hex_stringÚshorters     úY/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/Crypto/SelfTest/Hash/common.pyÚt2br   $   s$   € Ü�f‰f�W˜c¤7¨:Ó#6Ó7€GÜ�WÓÐr	   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚHashDigestSizeSelfTestc                 óz   — t         j                  j                  | «       || _        || _        || _        || _        y ©N)ÚunittestÚTestCaseÚ__init__ÚhashmodÚexpectedÚdescriptionÚextra_params)Úselfr   r   r   r   s        r   r   zHashDigestSizeSelfTest.__init__+   s4   € Ü×Ñ×"Ñ" 4Ô(ØˆŒØ ˆŒØ&ˆÔØ(ˆÕr	   c                 ó   — | j                   S r   ©r   ©r   s    r   ÚshortDescriptionz'HashDigestSizeSelfTest.shortDescription2   ó   € Ø×ÑÐr	   c                 ó˜  — d| j                   vrU| j                  t        | j                  d«      «       | j	                  | j                  j
                  | j                  «        | j                  j                  di | j                   ¤Ž}| j                  t        |d«      «       | j	                  |j
                  | j                  «       y )NÚtruncateÚdigest_size© )r   Ú
assertTrueÚhasattrr   ÚassertEqualr#   r   Únew©r   Úhs     r   ÚrunTestzHashDigestSizeSelfTest.runTest5   s�   € Ø˜T×.Ñ.Ñ.Ø�O‰OœG D§L¡L°-Ó@ÔAØ×Ñ˜TŸ\™\×5Ñ5°t·}±}ÔEØˆD�L‰L×ÑÑ1˜t×0Ñ0Ñ1ˆØ�‰œ  =Ó1Ô2Ø×Ñ˜Ÿ™¨¯©Õ6r	   N©Ú__name__Ú
__module__Ú__qualname__r   r   r+   r$   r	   r   r   r   )   s   „ ò)ò ó7r	   r   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚHashSelfTestc                 ó¤   — t         j                  j                  | «       || _        |j	                  «       | _        || _        || _        || _        y r   )	r   r   r   r   Úlowerr   Úinputr   r   )r   r   r   r   r4   r   s         r   r   zHashSelfTest.__init__@   sB   € Ü×Ñ×"Ñ" 4Ô(ØˆŒØ Ÿ™Ó(ˆŒØˆŒ
Ø&ˆÔØ(ˆÕr	   c                 ó   — | j                   S r   r   r   s    r   r   zHashSelfTest.shortDescriptionH   r    r	   c                 óˆ  —  | j                   j                  di | j                  ¤Ž}|j                  | j                  «       t        j                  |j                  «       «      }|j                  «       } | j                   j                  | j                  fi | j                  ¤Ž}|j                  «       }t        j                  |j                  «       «      }| j                  | j                  |«       t        j                  d   dk(  r9| j                  | j                  |«       | j                  | j                  |«       nT| j                  | j                  j                  «       |«       | j                  | j                  j                  «       |«       | j                  | j                  |«       | j                   j                  dvst        |d«      rk|j                  «       }|j                  | j                  «       t        j                  |j                  «       «      }| j                  | j                  |«       y y )Nr   é   )zCrypto.Hash.MD5zCrypto.Hash.SHA1r(   r$   )r   r(   r   Úupdater4   ÚbinasciiÚb2a_hexÚdigestÚ	hexdigestr'   r   ÚsysÚversion_infoÚdecoder-   r&   )r   r*   Úout1Úout2Úout3Úout4Úh2Úout5s           r   r+   zHashSelfTest.runTestK   s¤  € ØˆD�L‰L×ÑÑ1˜t×0Ñ0Ñ1ˆØ	�‰�—‘Ôä×Ñ §¡£
Ó+ˆØ�{‰{‹}ˆàˆD�L‰L×Ñ˜TŸZ™ZÑ=¨4×+<Ñ+<Ñ=ˆà�{‰{‹}ˆÜ×Ñ §¡£
Ó+ˆð 	×Ñ˜Ÿ™¨Ô-Ü×Ñ˜AÑ !Ò#Ø×Ñ˜TŸ]™]¨DÔ1Ø×Ñ˜TŸ]™]¨DÕ1à×Ñ˜TŸ]™]×1Ñ1Ó3°TÔ:Ø×Ñ˜TŸ]™]×1Ñ1Ó3°TÔ:Ø×Ñ˜Ÿ™¨Ô-ð
 �<‰<× Ñ Ð(OÑOÔSZÐ[\Ð^cÔSdØ—‘“ˆBØ�I‰I�d—j‘jÔ!Ü×#Ñ# B§I¡I£KÓ0ˆDØ×Ñ˜TŸ]™]¨DÕ1ð	 Ter	   Nr,   r$   r	   r   r1   r1   >   s   „ ò)ò ó2r	   r1   c                   ó   — e Zd Zd„ Zd„ Zy)ÚHashTestOIDc                 ól   — t         j                  j                  | «       || _        || _        || _        y r   )r   r   r   r   Úoidr   )r   r   rI   r   s       r   r   zHashTestOID.__init__l   s,   € Ü×Ñ×"Ñ" 4Ô(ØˆŒØˆŒØ(ˆÕr	   c                 óœ   —  | j                   j                  di | j                  ¤Ž}| j                  |j                  | j                  «       y )Nr$   )r   r(   r   r'   rI   r)   s     r   r+   zHashTestOID.runTestr   s9   € ØˆD�L‰L×ÑÑ1˜t×0Ñ0Ñ1ˆØ×Ñ˜Ÿ™ §¡Õ)r	   N©r-   r.   r/   r   r+   r$   r	   r   rG   rG   k   s   „ ò)ó*r	   rG   c                   ó   — e Zd Zd„ Zd„ Zy)ÚByteArrayTestc                 ó^   — t         j                  j                  | «       || _        || _        y r   ©r   r   r   Úmoduler   ©r   rP   r   s      r   r   zByteArrayTest.__init__y   ó%   € Ü×Ñ×"Ñ" 4Ô(ØˆŒØ(ˆÕr	   c                 óŠ  — t        d«      }t        |«      } | j                  j                  |fi | j                  ¤Ž} | j                  j                  |fi | j                  ¤Ž}d|d d | j                  |j                  «       |j                  «       «       t        |«      } | j                  j                  di | j                  ¤Ž} | j                  j                  di | j                  ¤Ž}|j                  |«       |j                  |«       d|d d | j                  |j                  «       |j                  «       «       y )Nz ó   ÿé   r$   )r   Ú	bytearrayrP   r(   r   r'   r;   r8   )r   ÚdataÚbaÚh1rD   s        r   r+   zByteArrayTest.runTest~   sþ   € Ü�Ó ˆô �t‹_ˆàˆT�[‰[�_‰_˜TÑ7 T×%6Ñ%6Ñ7ˆØˆT�[‰[�_‰_˜RÑ5 4×#4Ñ#4Ñ5ˆØˆˆ2ˆAˆØ×Ñ˜Ÿ™› b§i¡i£kÔ2ô �t‹_ˆàˆT�[‰[�_‰_Ñ1˜t×0Ñ0Ñ1ˆØˆT�[‰[�_‰_Ñ1˜t×0Ñ0Ñ1ˆà
�	‰	�$ŒØ
�	‰	�"Œàˆˆ2ˆAˆØ×Ñ˜Ÿ™› b§i¡i£kÕ2r	   NrK   r$   r	   r   rM   rM   w   s   „ ò)ó
3r	   rM   c                   ó   — e Zd Zd„ Zd„ Zy)ÚMemoryViewTestc                 ó^   — t         j                  j                  | «       || _        || _        y r   rO   rQ   s      r   r   zMemoryViewTest.__init__˜   rR   r	   c                 ó¾  — d}d„ }d„ }||fD �]M  } ||«      } | j                   j                  |fi | j                  ¤Ž} | j                   j                  |fi | j                  ¤Ž}|j                  sd|d d | j	                  |j                  «       |j                  «       «        ||«      } | j                   j                  di | j                  ¤Ž} | j                   j                  di | j                  ¤Ž}|j                  |«       |j                  |«       |j                  sd|d d | j	                  |j                  «       |j                  «       «       �ŒP y )Ns    c                 ó   — t        | «      S r   )Ú
memoryview©rW   s    r   Ú	get_mv_roz)MemoryViewTest.runTest.<locals>.get_mv_ro¡   s   € Ü˜dÓ#Ð#r	   c                 ó*   — t        t        | «      «      S r   )r_   rV   r`   s    r   Ú	get_mv_rwz)MemoryViewTest.runTest.<locals>.get_mv_rw¤   s   € Üœi¨›oÓ.Ð.r	   rT   rU   r$   )rP   r(   r   Úreadonlyr'   r;   r8   )r   rW   ra   rc   Úget_mvÚmvrY   rD   s           r   r+   zMemoryViewTest.runTest�   s'  € àˆò	$ò	/ð   Ð*ó 	7ˆFñ ˜“ˆBà �—‘—‘ Ñ;¨×):Ñ):Ñ;ˆBØ �—‘—‘ Ñ9 t×'8Ñ'8Ñ9ˆBØ—;’;Ø ��2�A�Ø×Ñ˜RŸY™Y›[¨"¯)©)«+Ô6ñ ˜“ˆBà �—‘—‘Ñ5 4×#4Ñ#4Ñ5ˆBØ �—‘—‘Ñ5 4×#4Ñ#4Ñ5ˆBØ�I‰I�dŒOØ�I‰I�bŒMØ—;’;Ø ��2�A�Ø×Ñ˜RŸY™Y›[¨"¯)©)«+Ö6ñ)	7r	   NrK   r$   r	   r   r[   r[   –   s   „ ò)ó
7r	   r[   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚMACSelfTestc                 óÌ   — t         j                  j                  | «       || _        t	        |«      | _        t	        |«      | _        t	        |«      | _        || _        || _	        y r   )
r   r   r   rP   r   ÚresultrW   ÚkeyÚparamsr   )r   rP   r   rj   rW   rk   rl   s          r   r   zMACSelfTest.__init__À   sM   € Ü×Ñ×"Ñ" 4Ô(ØˆŒÜ˜&“kˆŒÜ˜“IˆŒ	Ü�s“8ˆŒØˆŒØ&ˆÕr	   c                 ó   — | j                   S r   r   r   s    r   r   zMACSelfTest.shortDescriptionÉ   r    r	   c                 ó$  — t        | j                  «      } | j                  j                  | j                  fi | j
                  ¤Ž}|j                  | j                  «       | j                  | j                  |j                  «       «       | j                  t        | j                  «      j                  d«      |j                  «       «       |j                  | j                  «       |j                  |«       t        | j                  d«      }| j                  t         |j                  |«       | j                  t         |j                  d«        | j                  j                  | j                  | j                  fi | j
                  ¤Ž}| j                  | j                  |j                  «       «       | j                  t        | j                  «      j                  d«      |j                  «       «       	  | j                  j                  | j                  | j                  fi | j
                  ¤Ž}|j#                  «       }|j#                  «       }|j                  d«       | j                  |j                  «       | j                  «       |j                  d«       | j                  |j                  «       |j                  «       «       | j'                  t)        |j                  «       t+        d«      «      «       | j'                  t)        |j                  «       t+        d«      «      «       |j                  |j                  «       «       |j                  |j                  «       j-                  d«      «       y # t$        $ r Y Œ½w xY w)NÚasciiéÿ   Ú4556s   blar	   Ú )r   rj   rP   r(   rk   rl   r8   rW   r'   r;   r?   r<   ÚverifyÚ	hexverifyr   ÚassertRaisesÚ
ValueErrorÚcopyÚNotImplementedErrorr%   Ú
isinstanceÚtypeÚencode)r   Ú
result_hexr*   Ú	wrong_macrD   Úh3s         r   r+   zMACSelfTest.runTestÌ   se  € ä˜TŸ[™[Ó)ˆ
ð ˆD�K‰K�O‰O˜DŸH™HÑ4¨¯©Ñ4ˆØ	�‰�—‘ÔØ×Ñ˜Ÿ™ a§h¡h£jÔ1Ø×Ñœ §¡Ó-×4Ñ4°WÓ=¸q¿{¹{»}ÔMð 	
�‰�—‘ÔØ	�‰�JÔô ˜TŸ[™[¨#Ó.ˆ	Ø×Ñœ* a§h¡h°	Ô:Ø×Ñœ* a§k¡k°6Ô:ð ˆD�K‰K�O‰O˜DŸH™H d§i¡iÑ?°4·;±;Ñ?ˆØ×Ñ˜Ÿ™ a§h¡h£jÔ1Ø×Ñœ §¡Ó-×4Ñ4°WÓ=¸q¿{¹{»}ÔMð	Ø�—‘—‘ §¡¨$¯)©)ÑC°t·{±{ÑCˆAØ—‘“ˆBØ—‘“ˆBð �I‰I�fÔØ×Ñ˜RŸY™Y›[¨$¯+©+Ô6ð �H‰H�VÔØ×Ñ˜QŸX™X›Z¨¯©«Ô5ð
 	�‰œ
 1§8¡8£:¬t°C«yÓ9Ô:Ø�‰œ
 1§;¡;£=´$°r³(Ó;Ô<ð 	
�‰�A—K‘K“MÔ"Ø	�‰�A—K‘K“M×(Ñ(¨Ó1Õ2øô #ò 	Ùð	ús   Ç;CN Î	NÎNNr,   r$   r	   r   rh   rh   ¾   s   „ ò'ò ó.3r	   rh   c           
      ó
  — g }t        t        |«      «      D ]e  }||   }t        t        |dd «      \  }	}
t        |«      dk  rt	        |
«      }n|d   }d||dz   |fz  }|j                  t        | ||	|
|«      «       Œg d|t        |«      dz   fz  }|j                  t        | |||«      «       |�|j                  t        | ||«      «       |j                  t        | |«      «       |j                  t        | |«      «       |S )Nr   r7   é   ú
%s #%d: %srU   z%s #%d: digest_size)ÚrangeÚlenÚmapr   ÚreprÚappendr1   r   rG   rM   r[   )rP   Úmodule_nameÚ	test_datar#   rI   r   ÚtestsÚiÚrowr   r4   r   Únames                r   Úmake_hash_testsr�   ý   s  € à€EÜ”3�y“>Ó"ò PˆØ˜‰lˆÜ¤¨¨A¨a¨Ó1Ñˆ�5Üˆs‹8�aŠ<Ü˜u›+‰Kà˜a™&ˆKØ˜{¨A¨a©C°Ð=Ñ=ˆØ�‰”\ &¨$°¸%ÀÓNÕOðPð ! K´°Y³À!Ñ1CÐ#DÑD€DØ	‡L�LÔ'¨°°kÀ<ÓPÔQà
€Ø�‰”[ ¨¨lÓ;Ô<à	‡L�L”˜v |Ó4Ô5à	‡L�L” ¨Ó5Ô6à€Lr	   c                 óÜ   — g }t        |«      D ][  \  }}t        |«      dk(  rt        |«      i gz   \  }}}}	}
n|\  }}}}	}
d||dz   |	fz  }|j                  t	        | |||||
«      «       Œ] |S )Né   r�   rU   )Ú	enumeraterƒ   Úlistr†   rh   )rP   r‡   rˆ   r‰   rŠ   r‹   rk   rW   Úresultsr   rl   rŒ   s               r   Úmake_mac_testsr“     sŽ   € Ø€EÜ˜IÓ&ò L‰ˆˆ3Üˆs‹8�qŠ=Ü8<¸S»	ÀbÀFÑ8JÑ5ˆS�$˜ ©fà8;Ñ5ˆS�$˜ ¨fØ˜{¨A¨a©C°Ð=Ñ=ˆØ�‰”[ ¨¨w¸¸cÀ6ÓJÕKðLð €Lr	   )Ú__doc__r
   r=   r   r9   ÚCrypto.HashÚCryptor   r   ÚCrypto.Util.py3compatr   r   ÚCrypto.Util.strxorr   r   r   r   r1   rG   rM   r[   rh   r�   r“   r$   r	   r   ú<module>r™      sª   ðñ2 -ã 	Û 
Û Û Û ß 'ß ,Ý 'òô
7˜X×.Ñ.ô 7ô**2�8×$Ñ$ô *2ôZ	*�(×#Ñ#ô 	*ô3�H×%Ñ%ô 3ô>%7�X×&Ñ&ô %7ôP<3�(×#Ñ#ô <3ð~ FJØ!#óó4	r	   