Ë
    (üàgk  ã                   óÎ  — d 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
mZ ddlmZmZ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 eddddd„ i«      xs g Z ee«      D ]L  \  ZZej4                  dk(  r	 ed«      Zn eej8                  «      Zeej:                  fd„Z eedez  e«       ŒN  eddddd„ i«      xs g Z  ee «      D ]L  \  ZZej4                  dk(  r	 ed«      Zn eej8                  «      Zeej:                  fd„Z eedez  e«       ŒN i fd„Z!e"dk(  rddlZd„ Z# ejH                  d ¬!«       yy)"z5Self-test suite for Crypto.Hash.SHAKE128 and SHAKE256é    N)ÚhexlifyÚ	unhexlify)Úload_test_vectors)Úlist_test_cases)ÚSHAKE128ÚSHAKE256)ÚbÚbchrÚbordÚtobytesc                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú	SHAKETestc                 óÈ  — | j                   j                  «       }| j                   j                  t        d«      ¬«      }| j                   j                  «       j                  t        d«      «      }| j	                  |j                  d«      |j                  d«      «       |j                  d«       | j                  |j                  d«      |j                  d«      «       y )NÚ90©Údataé
   )ÚshakeÚnewr	   ÚupdateÚassertNotEqualÚreadÚassertEqual)ÚselfÚxof1Úxof2Úxof3s       ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/Crypto/SelfTest/Hash/test_SHAKE.pyÚtest_new_positivezSHAKETest.test_new_positive,   s”   € à�z‰z�~‰~ÓˆØ�z‰z�~‰~¤1 T£7ˆ~Ó+ˆØ�z‰z�~‰~Ó×&Ñ&¤q¨£wÓ/ˆà×Ñ˜DŸI™I b›M¨4¯9©9°R«=Ô9Ø�	‰	�"ŒØ×Ñ˜Ÿ™ 2›¨¯	©	°"«Õ6ó    c                 óˆ  — t        d«      dz  t        d«      dz  g}| j                  j                  «       }|j                  |d   «      j                  |d   «       |j	                  d«      }| j                  j                  «       }|j                  |d   |d   z   «       | j                  |j	                  d«      |«       y )Nr   éÈ   é   i,  r   é   )r
   r   r   r   r   r   )r   ÚpiecesÚhÚdigests       r   Útest_updatezSHAKETest.test_update6   s™   € Ü�r“(˜S‘.¤$ r£(¨S¡.Ð1ˆØ�J‰J�N‰NÓˆØ	�‰�˜‘Ó×"Ñ" 6¨!¡9Ô-Ø—‘˜“ˆØ�J‰J�N‰NÓˆØ	�‰�˜‘˜V A™YÑ&Ô'Ø×Ñ˜Ÿ™ › VÕ,r    c                 óz   — | j                   j                  «       }| j                  t        |j                  d«       y )NÚstring)r   r   ÚassertRaisesÚ	TypeErrorr   )r   r&   s     r   Útest_update_negativezSHAKETest.test_update_negative?   s(   € Ø�J‰J�N‰NÓˆØ×Ñœ) Q§X¡X¨yÕ9r    c           
      óê   — | j                   j                  «       }|j                  d«      }| j                  t	        |t        t        d«      «      «      «       | j                  t        |«      d«       y )NéZ   r'   )	r   r   r   Ú
assertTrueÚ
isinstanceÚtyper	   r   Úlen)r   r&   r'   s      r   Útest_digestzSHAKETest.test_digestC   sQ   € Ø�J‰J�N‰NÓˆØ—‘˜“ˆð 	�‰œ
 6¬4´°(³Ó+<Ó=Ô>Ø×Ñœ˜V› bÕ)r    c                 óâ   — | j                   j                  «       }|j                  t        d«      «       |j	                  d«       | j                  t        |j                  t        d«      «       y )NÚrrrrr/   Úttt)r   r   r   r	   r   r+   r,   )r   Úmacs     r   Útest_update_after_readz SHAKETest.test_update_after_readK   sG   € Ø�j‰j�n‰nÓˆØ�
‰
”1�V“9ÔØ�‰�ŒØ×Ñœ) S§Z¡Z´°5³Õ:r    N)Ú__name__Ú
__module__Ú__qualname__r   r(   r-   r4   r9   © r    r   r   r   *   s   „ ò7ò-ò:ò*ó;r    r   c                   ó   — e Zd ZeZy)ÚSHAKE128TestN)r:   r;   r<   r   r   r=   r    r   r?   r?   R   ó   „ Ø‰r    r?   c                   ó   — e Zd ZeZy)ÚSHAKE256TestN)r:   r;   r<   r   r   r=   r    r   rB   rB   V   r@   r    rB   c                   ó   — e Zd Zy)ÚSHAKEVectorsN)r:   r;   r<   r=   r    r   rD   rD   Z   s   „ Ør    rD   )ÚHashÚSHA3zShortMsgKAT_SHAKE128.txtzShort Messages KAT SHAKE128r3   c                 ó   — t        | «      S ©N©Úint©Úxs    r   ú<lambda>rM   a   ó
   € ´3°q³6€ r    Ú c                 óˆ   — t        j                  |¬«      }|j                  t        |«      «      }| j	                  ||«       y ©Nr   )r   r   r   r3   r   ©r   r   ÚresultÚhobjr'   s        r   Únew_testrU   i   ó2   € Ü�|‰| Ô&ˆØ—‘œ3˜v›;Ó'ˆØ×Ñ˜ Õ(r    ztest_128_%dzShortMsgKAT_SHAKE256.txtzShort Messages KAT SHAKE256c                 ó   — t        | «      S rH   rI   rK   s    r   rM   rM   t   rN   r    c                 óˆ   — t        j                  |¬«      }|j                  t        |«      «      }| j	                  ||«       y rQ   )r   r   r   r3   r   rR   s        r   rU   rU   |   rV   r    ztest_256_%dc                 óv   — g }|t        t        «      z  }|t        t        «      z  }|t        t        «      z  }|S rH   )r   r?   rB   rD   )ÚconfigÚtestss     r   Ú	get_testsr\   „   s9   € Ø€EØ	Œ_œ\Ó*Ñ*€EØ	Œ_œ\Ó*Ñ*€EØ	Œ_œ\Ó*Ñ*€EØ€Lr    Ú__main__c                  ó<   — t        j                  t        «       «      S rH   )ÚunittestÚ	TestSuiter\   r=   r    r   rM   rM   Ž   s   € ”H×&Ñ&¤y£{Ó3€ r    Úsuite)ÚdefaultTest)%Ú__doc__r_   Úbinasciir   r   ÚCrypto.SelfTest.loaderr   ÚCrypto.SelfTest.st_commonr   ÚCrypto.Hashr   r   ÚCrypto.Util.py3compatr	   r
   r   r   ÚTestCaser   r?   rB   rD   Útest_vectors_128Ú	enumerateÚidxÚtvr3   r   ÚmsgÚmdrU   ÚsetattrÚtest_vectors_256r\   r:   ra   Úmainr=   r    r   ú<module>rs      s¡  ðñ> <ã ß 'å 4Ý 5ç *ß 8Ó 8ô%;�×!Ñ!ô %;ôP�9ô ô�9ô ô	�8×$Ñ$ô 	ñ %Ð%5Ø9Ø<Ø!&Ñ)9Ð;ó>ò Dð BDð ñ
 Ð)Ó*ò 9�G€CˆØ	‡v�v�‚{Ù�‹u‰á�r—v‘v‹ˆà ¨¯©ó )ñ
 ˆL˜-¨#Ñ-¨xÕ8ð9ñ %Ð%5Ø9Ø<Ø!&Ñ)9Ð;ó>ò Dð BDð ñ
 Ð)Ó*ò 9�G€CˆØ	‡v�v�‚{Ù�‹u‰á�r—v‘v‹ˆà ¨¯©ó )ñ
 ˆL˜-¨#Ñ-¨xÕ8ð9ð ó ð ˆzÒÛÙ3€EØ€H‡M�M˜gÖ&ð r    