Ë
    (üàg¹"  ã                   óæ  — 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
 ddlmZmZmZ  G d„ d	ej                  «      Z G d
„ dej                  «      Z eddddd„ i«      xs g Ze eddddd„ i«      xs g z  Z ee«      D ]L  \  ZZej,                  dk(  r	 ed«      Zn eej0                  «      Zeej2                  fd„Z eedez  e«       ŒN  eddddd„ i«      xs g Ze eddddd„ i«      xs g z  Z ee«      D ]L  \  ZZej,                  dk(  r	 ed«      Zn eej0                  «      Zeej2                  fd„Z eedez  e«       ŒN  eddd dd!„ i«      xs g Ze edd"d#dd$„ i«      xs g z  Z ee«      D ]L  \  ZZej,                  dk(  r	 ed«      Zn eej0                  «      Zeej2                  fd%„Z eed&ez  e«       ŒN  edd'd(dd)„ i«      xs g Ze edd*d+dd,„ i«      xs g z  Z ee«      D ]L  \  ZZej,                  dk(  r	 ed«      Zn eej0                  «      Zeej2                  fd-„Z eed.ez  e«       ŒN i fd/„Ze d0k(  rddlZd1„ Z! ejD                  d2¬3«       yy)4z&Self-test suite for Crypto.Hash.keccaké    N)ÚhexlifyÚ	unhexlify)Úload_test_vectors)Úlist_test_cases)Úkeccak)ÚbÚtobytesÚbchrc                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
Ú
KeccakTestc                 ó¤  — dD ]f  }t        j                  |¬«      }| j                  |j                  |dz  «       |j                  «       }| j                  |j                  |dz  «       Œh dD ]`  }t        j                  |¬«      }| j                  |j                  |«       |j                  «       }| j                  |j                  |«       Œb y )N)éà   é   é€  é   ©Údigest_bitsé   )é   é    é0   é@   ©Údigest_bytes)r   ÚnewÚassertEqualÚdigest_size)Úselfr   ÚhobjÚhobj2r   s        ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/Crypto/SelfTest/Hash/test_keccak.pyÚtest_new_positivezKeccakTest.test_new_positive,   s¸   € à/ò 	BˆKÜ—:‘:¨+Ô6ˆDØ×Ñ˜T×-Ñ-¨{¸aÑ/?Ô@à—H‘H“JˆEØ×Ñ˜U×.Ñ.°¸qÑ0@ÕAð	Bð -ò 	>ˆLÜ—:‘:¨<Ô8ˆDØ×Ñ˜T×-Ñ-¨|Ô<à—H‘H“JˆEØ×Ñ˜U×.Ñ.°Õ=ñ	>ó    c                 óü   — t        j                  t        d«      d¬«      j                  «       }t        j                  d¬«      j	                  t        d«      «      j                  «       }| j                  ||«       y )Nõ   Â�r   )Údatar   r   )r   r   r   ÚdigestÚupdater   )r   Údigest1Údigest2s      r!   Útest_new_positive2zKeccakTest.test_new_positive2<   sU   € ä—*‘*¤! F£)¸"Ô=×DÑDÓFˆÜ—*‘*¨"Ô-×4Ñ4´Q°v³YÓ?×FÑFÓHˆØ×Ñ˜ 'Õ*r#   c                 óŽ  — | j                  t        t        j                  «       t        j                  d¬«      }| j                  t        t        j                  dd¬«       | j                  t        t        j                  d¬«       | j                  t        t        j                  d¬«       | j                  t        t        j                  d¬«       | j                  t        t        j                  d¬«       | j                  t        t        j                  d¬«       | j                  t        t        j                  d	¬«       y )
Nr   r   r   )r   r   r   r   é   éA   i  )ÚassertRaisesÚ	TypeErrorr   r   Ú
ValueError©r   Úhs     r!   Útest_new_negativezKeccakTest.test_new_negativeB   sá   € ð 	×Ñœ)¤V§Z¡ZÔ0ä�J‰J 3Ô'ˆð 	×Ñœ)¤V§Z¡ZØ+-Ø*-ð 	ô 	/ð
 	×Ñœ*¤f§j¡j¸qÐÔAØ×Ñœ*¤f§j¡j¸qÐÔAØ×Ñœ*¤f§j¡j¸rÐÔBØ×Ñœ*¤f§j¡j¸aÐÔ@Ø×Ñœ*¤f§j¡j¸aÐÔ@Ø×Ñœ*¤f§j¡j¸cÐÕBr#   c                 ót  — t        d«      dz  t        d«      dz  g}t        j                  d¬«      }|j                  |d   «      j                  |d   «       |j	                  «       }t        j                  d¬«      }|j                  |d   |d   z   «       | j                  |j	                  «       |«       y )	Né
   éÈ   é   i,  r   r   r   r-   )r
   r   r   r(   r'   r   )r   Úpiecesr3   r'   s       r!   Útest_updatezKeccakTest.test_updateV   s‘   € Ü�r“(˜S‘.¤$ r£(¨S¡.Ð1ˆÜ�J‰J BÔ'ˆØ	�‰�˜‘Ó×"Ñ" 6¨!¡9Ô-Ø—‘“ˆÜ�J‰J BÔ'ˆØ	�‰�˜‘˜V A™YÑ&Ô'Ø×Ñ˜Ÿ™› VÕ,r#   c                 ór   — t        j                  d¬«      }| j                  t        |j                  d«       y )Nr   r   Ústring)r   r   r/   r0   r(   r2   s     r!   Útest_update_negativezKeccakTest.test_update_negative_   s&   € Ü�J‰J BÔ'ˆØ×Ñœ) Q§X¡X¨yÕ9r#   c           
      óê   — t        j                  d¬«      }|j                  «       }| j                  |j                  «       |«       | j	                  t        |t        t        d«      «      «      «       y )Nr   r   r'   )r   r   r'   r   Ú
assertTrueÚ
isinstanceÚtyper   )r   r3   r'   s      r!   Útest_digestzKeccakTest.test_digestc   sO   € Ü�J‰J BÔ'ˆØ—‘“ˆð 	×Ñ˜Ÿ™› VÔ,à�‰œ
 6¬4´°(³Ó+<Ó=Õ>r#   c                 ó@  — t        j                  d¬«      }|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'   rD   s       r!   Útest_hex_digestzKeccakTest.test_hex_digestl   sn   € Ü�j‰j SÔ)ˆØ—‘“ˆØ—M‘M“Oˆ	ð 	×Ñœ ›¬'°)Ó*<Ô=à×Ñ˜Ÿ™›¨)Ô4à�‰œ
 9¬d°8«nÓ=Õ>r#   c                 óÞ  — t        d«      }t        j                  d|d d ¬«      }|j                  «       }| j	                  t
        |j                  |dd  «       t        j                  d|¬«      j                  «       }t        j                  d|d d d¬«      }| j                  |j                  «       |«       |j                  |dd  «       | j                  |j                  «       |«       y )NÚrrrrtttr   é   ©r   r&   T)r   r&   Úupdate_after_digest)r   r   r   r'   r/   r0   r(   r   )r   Úmsgr3   Údig1Údig2s        r!   Útest_update_after_digestz#KeccakTest.test_update_after_digestx   s½   € Üˆi‹Lˆô �J‰J 3¨S°°!¨WÔ5ˆØ�x‰x‹zˆØ×Ñœ) Q§X¡X¨s°1°2¨wÔ7Ü�z‰z c°Ô4×;Ñ;Ó=ˆô �J‰J 3¨S°°!¨WÈ$ÔOˆØ×Ñ˜Ÿ™› TÔ*ð 	
�‰��Q�R�ÔØ×Ñ˜Ÿ™› TÕ*r#   N)Ú__name__Ú
__module__Ú__qualname__r"   r+   r4   r:   r=   rB   rF   rO   © r#   r!   r   r   *   s+   „ ò>ò +òCò(-ò:ò?ò
?ó+r#   r   c                   ó   — e Zd Zy)ÚKeccakVectorsN)rP   rQ   rR   rS   r#   r!   rU   rU   Š   s   „ Ør#   rU   )ÚHashr   zShortMsgKAT_224.txtzShort Messages KAT 224Úlenc                 ó   — t        | «      S ©N©Úint©Úxs    r!   ú<lambda>r^   “   ó
   € ´#°a³&€ r#   zLongMsgKAT_224.txtzLong Messages KAT 224c                 ó   — t        | «      S rY   rZ   r\   s    r!   r^   r^   ˜   r_   r#   Ú c                 ór   — t        j                  d|¬«      }| j                  |j                  «       |«       y )Nr   rJ   ©r   r   r   r'   ©r   r&   Úresultr   s       r!   Únew_testrf       ó(   € Ü�z‰z c°Ô5ˆØ×Ñ˜Ÿ™›¨Õ/r#   ztest_224_%dzShortMsgKAT_256.txtzShort Messages KAT 256c                 ó   — t        | «      S rY   rZ   r\   s    r!   r^   r^   «   ó
   € ´C¸³F€ r#   zLongMsgKAT_256.txtzLong Messages KAT 256c                 ó   — t        | «      S rY   rZ   r\   s    r!   r^   r^   °   ri   r#   c                 ór   — t        j                  d|¬«      }| j                  |j                  «       |«       y )Nr   rJ   rc   rd   s       r!   rf   rf   ¸   rg   r#   ztest_256_%dzShortMsgKAT_384.txtzShort Messages KAT 384c                 ó   — t        | «      S rY   rZ   r\   s    r!   r^   r^   Ä   r_   r#   zLongMsgKAT_384.txtzLong Messages KAT 384c                 ó   — t        | «      S rY   rZ   r\   s    r!   r^   r^   É   r_   r#   c                 ór   — t        j                  d|¬«      }| j                  |j                  «       |«       y )Nr   rJ   rc   rd   s       r!   rf   rf   Ñ   rg   r#   ztest_384_%dzShortMsgKAT_512.txtzShort Messages KAT 512c                 ó   — t        | «      S rY   rZ   r\   s    r!   r^   r^   Ü   r_   r#   zLongMsgKAT_512.txtzLong Messages KAT 512c                 ó   — t        | «      S rY   rZ   r\   s    r!   r^   r^   á   r_   r#   c                 ór   — t        j                  d|¬«      }| j                  |j                  «       |«       y )Nr   rJ   rc   rd   s       r!   rf   rf   é   rg   r#   ztest_512_%dc                 óR   — g }|t        t        «      z  }|t        t        «      z  }|S rY   )r   r   rU   )ÚconfigÚtestss     r!   Ú	get_testsru   ð   s*   € Ø€EØ	Œ_œZÓ(Ñ(€EØ	Œ_œ]Ó+Ñ+€EØ€Lr#   Ú__main__c                  ó<   — t        j                  t        «       «      S rY   )ÚunittestÚ	TestSuiteru   rS   r#   r!   r^   r^   ù   s   € ”H×&Ñ&¤y£{Ó3€ r#   Úsuite)ÚdefaultTest)#Ú__doc__rx   Úbinasciir   r   ÚCrypto.SelfTest.loaderr   ÚCrypto.SelfTest.st_commonr   ÚCrypto.Hashr   ÚCrypto.Util.py3compatr   r	   r
   ÚTestCaser   rU   Útest_vectors_224Ú	enumerateÚidxÚtvrW   r&   rL   Úmdrf   ÚsetattrÚtest_vectors_256Útest_vectors_384Útest_vectors_512ru   rP   rz   ÚmainrS   r#   r!   ú<module>r�      so  ðñ> -ã ß 'å 4Ý 5å ß 2Ñ 2ô]+�×"Ñ"ô ]+ô@	�H×%Ñ%ô 	ñ &Ð&8Ø 5Ø 8Ø!&Ñ(8Ð 9ó;ò Að ?Að ð
 Ñ%Ð&8Ø 4Ø 7Ø!&Ñ(8Ð 9ó;ò Að ?AñAÐ ñ
 Ð)Ó*ò 
:�G€CˆØ	‡v�v�‚{Ù�‹u‰á�r—v‘v‹ˆà ¨¯©ó 0ñ ˆM˜=¨3Ñ.°Õ9ð
:ñ &Ð&8Ø 5Ø 8Ø"'Ñ*:Ð <ó?ò Eð CEð ð
 Ñ%Ð&8Ø 4Ø 7Ø"'Ñ*:Ð <ó?ò Eð CEñEÐ ñ
 Ð)Ó*ò 
:�G€CˆØ	‡v�v�‚{Ù�‹u‰á�r—v‘v‹ˆà ¨¯©ó 0ñ ˆM˜=¨3Ñ.°Õ9ð
:ñ &Ð&8Ø 5Ø 8Ø!&Ñ(8Ð 9ó;ò Að ?Að ð
 Ñ%Ð&8Ø 4Ø 7Ø!&Ñ(8Ð 9ó;ò Að ?AñAÐ ñ
 Ð)Ó*ò 
:�G€CˆØ	‡v�v�‚{Ù�‹u‰á�r—v‘v‹ˆà ¨¯©ó 0ñ ˆM˜=¨3Ñ.°Õ9ð
:ñ &Ð&8Ø 5Ø 8Ø!&Ñ(8Ð 9ó;ò Að ?Að ð
 Ñ%Ð&8Ø 4Ø 7Ø!&Ñ(8Ð 9ó;ò Að ?AñAÐ ñ
 Ð)Ó*ò 
:�G€CˆØ	‡v�v�‚{Ù�‹u‰á�r—v‘v‹ˆà ¨¯©ó 0ñ ˆM˜=¨3Ñ.°Õ9ð
:ð ó ð ˆzÒÛÙ3€EØ€H‡M�M˜gÖ&ð r#   