
    ¿ig                        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          pg Z ee          D ]G\  ZZej        dk    r ed          Zn eej                  Zeej        fdZ eedez  e           H eddddd i          pg Z  ee           D ]G\  ZZej        dk    r ed          Zn eej                  Zeej        fdZ eedez  e           Hi fdZ!e"dk    rddlZd Z# ej$        d !           dS dS )"z9Self-test suite for Cryptodome.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dS )	SHAKETestc                    | j                                         }| j                             t          d                    }| j                                                             t          d                    }|                     |                    d          |                    d                     |                    d           |                     |                    d          |                    d                     d S )N90data
   )shakenewr	   updateassertNotEqualreadassertEqual)selfxof1xof2xof3s       _/var/www/html/afkarena/venv/lib/python3.11/site-packages/Cryptodome/SelfTest/Hash/test_SHAKE.pytest_new_positivezSHAKETest.test_new_positive,   s    z~~z~~1T77~++z~~&&qww//DIIbMM499R==999		"2		"66666    c                    t          d          dz  t          d          dz  g}| j                                        }|                    |d                                       |d                    |                    d          }| j                                        }|                    |d         |d         z              |                     |                    d          |           d S )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JNN	""6!9---JNN	VAY&'''V,,,,,r    c                 z    | j                                         }|                     t          |j        d           d S )Nstring)r   r   assertRaises	TypeErrorr   )r   r&   s     r   test_update_negativezSHAKETest.test_update_negative?   s3    JNN)QXy99999r    c           
      "   | j                                         }|                    d          }|                     t	          |t          t          d                                         |                     t          |          d           d S )NZ   r'   )	r   r   r   
assertTrue
isinstancetyper	   r   len)r   r&   r'   s      r   test_digestzSHAKETest.test_digestC   sp    JNN 	
64(+<+<==>>>Vb)))))r    c                    | j                                         }|                    t          d                     |                    d           |                     t          |j        t          d                     d S )Nrrrrr/   ttt)r   r   r   r	   r   r+   r,   )r   macs     r   test_update_after_readz SHAKETest.test_update_after_readK   s`    jnn

1V99)SZ5:::::r    N)__name__
__module____qualname__r   r(   r-   r4   r9    r    r   r   r   *   s_        7 7 7- - -: : :* * *; ; ; ; ;r    r   c                       e Zd ZeZdS )SHAKE128TestN)r:   r;   r<   r   r   r=   r    r   r?   r?   R           r    r?   c                       e Zd ZeZdS )SHAKE256TestN)r:   r;   r<   r   r   r=   r    r   rB   rB   V   r@   r    rB   c                       e Zd ZdS )SHAKEVectorsN)r:   r;   r<   r=   r    r   rD   rD   Z   s        Dr    rD   )HashSHA3zShortMsgKAT_SHAKE128.txtzShort Messages KAT SHAKE128r3   c                      t          |           S Nintxs    r   <lambda>rM   a       3q66 r     c                     t          j        |          }|                    t          |                    }|                     ||           d S Nr   )r   r   r   r3   r   r   r   resulthobjr'   s        r   new_testrU   i   G    |&&&3v;;''(((((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        |          }|                    t          |                    }|                     ||           d S rQ   )r   r   r   r3   r   rR   s        r   rU   rU   |   rV   r    ztest_256_%dc                     g }|t          t                    z  }|t          t                    z  }|t          t                    z  }|S rH   )r   r?   rB   rD   )configtestss     r   	get_testsr\      sB    E	_\***E	_\***E	_\***ELr    __main__c                  B    t          j        t                                S rH   )unittest	TestSuiter\   r=   r    r   rM   rM      s    H&y{{33 r    suite)defaultTest)%__doc__r_   binasciir   r   Cryptodome.SelfTest.loaderr   Cryptodome.SelfTest.st_commonr   Cryptodome.Hashr   r   Cryptodome.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  > @ ?  ' ' ' ' ' ' ' ' 8 8 8 8 8 8 9 9 9 9 9 9 . . . . . . . . < < < < < < < < < < < <%; %; %; %; %;! %; %; %;P    9       9   	 	 	 	 	8$ 	 	 	 %$%59<!&)9)9;> > D BD 
 y)** 9 9GC	v{{quuwrv  ) ) ) )
 GL-#-x8888 %$%59<!&)9)9;> > D BD 
 y)** 9 9GC	v{{quuwrv  ) ) ) )
 GL-#-x8888      zOOO33EHMg&&&&&& r    