Ë
    íU.jÉ  ã                   óÎ  — 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                   ó0   — e Zd 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       úaC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\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    c                 óô   — | j                   j                  «       }|j                  t        d«      «       |j	                  «       }|j                  d«      }|j                  d«      }| j                  ||«       y )Nr6   r/   )r   r   r   r	   Úcopyr   r   )r   r8   Úmac2Úx1Úx2s        r   Ú	test_copyzSHAKETest.test_copyQ   sW   € Ø�j‰j�n‰nÓˆØ�
‰
”1�V“9ÔØ�x‰x‹zˆØ�X‰X�b‹\ˆØ�Y‰Y�r‹]ˆØ×Ñ˜˜RÕ r    N)	Ú__name__Ú
__module__Ú__qualname__r   r(   r-   r4   r9   r?   © r    r   r   r   *   s    „ ò7ò-ò:ò*ò;ó!r    r   c                   ó   — e Zd ZeZy)ÚSHAKE128TestN)r@   rA   rB   r   r   rC   r    r   rE   rE   Z   ó   „ Ø‰r    rE   c                   ó   — e Zd ZeZy)ÚSHAKE256TestN)r@   rA   rB   r   r   rC   r    r   rH   rH   ^   rF   r    rH   c                   ó   — e Zd Zy)ÚSHAKEVectorsN)r@   rA   rB   rC   r    r   rJ   rJ   b   s   „ Ør    rJ   )ÚHashÚSHA3zShortMsgKAT_SHAKE128.txtzShort Messages KAT SHAKE128r3   c                 ó   — t        | «      S ©N©Úint©Úxs    r   Ú<lambda>rS   i   ó   € ´3°q´6r    Ú c                 óˆ   — t        j                  |¬«      }|j                  t        |«      «      }| j	                  ||«       y ©Nr   )r   r   r   r3   r   ©r   r   ÚresultÚhobjr'   s        r   Únew_testr[   q   ó2   € Ü�|‰| Ô&ˆØ—‘œ3˜v›;Ó'ˆØ×Ñ˜ Õ(r    ztest_128_%dzShortMsgKAT_SHAKE256.txtzShort Messages KAT SHAKE256c                 ó   — t        | «      S rN   rO   rQ   s    r   rS   rS   |   rT   r    c                 óˆ   — t        j                  |¬«      }|j                  t        |«      «      }| j	                  ||«       y rW   )r   r   r   r3   r   rX   s        r   r[   r[   „   r\   r    ztest_256_%dc                 óv   — g }|t        t        «      z  }|t        t        «      z  }|t        t        «      z  }|S rN   )r   rE   rH   rJ   )ÚconfigÚtestss     r   Ú	get_testsrb   Œ   s9   € Ø€EØ	Œ_œ\Ó*Ñ*€EØ	Œ_œ\Ó*Ñ*€EØ	Œ_œ\Ó*Ñ*€EØ€Lr    Ú__main__c                  ó<   — t        j                  t        «       «      S rN   )ÚunittestÚ	TestSuiterb   rC   r    r   rS   rS   –   s   € ”H×&Ñ&¤y£{Ô3r    Úsuite)ÚdefaultTest)%Ú__doc__re   Úbinasciir   r   ÚCrypto.SelfTest.loaderr   ÚCrypto.SelfTest.st_commonr   ÚCrypto.Hashr   r   ÚCrypto.Util.py3compatr	   r
   r   r   ÚTestCaser   rE   rH   rJ   Útest_vectors_128Ú	enumerateÚidxÚtvr3   r   ÚmsgÚmdr[   ÚsetattrÚtest_vectors_256rb   r@   rg   ÚmainrC   r    r   Ú<module>ry      s—  ðñ> <ã ß 'å 4Ý 5ç *ß 8Ó 8ô-!�×!Ñ!ô -!ô`�9ô ô�9ô ô	�8×$Ñ$ô 	ñ %Ð%5Ø9Ø<Ø!&Ñ)9Ð;ó>ò Dð BDð ñ
 Ð)Ö*�G€CˆØ	‡v�v�‚{Ù�‹u‰á�r—v‘v‹ˆà ¨¯©ó )ñ
 ˆL˜-¨#Ñ-¨xÕ8ð +ñ %Ð%5Ø9Ø<Ø!&Ñ)9Ð;ó>ò Dð BDð ñ
 Ð)Ö*�G€CˆØ	‡v�v�‚{Ù�‹u‰á�r—v‘v‹ˆà ¨¯©ó )ñ
 ˆL˜-¨#Ñ-¨xÕ8ð +ð ó ð ˆzÒÛÙ3€EØ€H‡M�M˜gÖ&ð r    