
    ,hk                        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       a/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/Crypto/SelfTest/Hash/test_SHAKE.pytest_new_positivezSHAKETest.test_new_positive,   s    zz~~zz~~1T7~+zz~~&&qw/DIIbM499R=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JJNN	""6!9-JJNN	VAY&'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(    JJNN)QXXy9r    c           
          | j                   j                         }|j                  d      }| j                  t	        |t        t        d                         | j                  t        |      d       y )NZ   r'   )	r   r   r   
assertTrue
isinstancetyper	   r   len)r   r&   r'   s      r   test_digestzSHAKETest.test_digestC   sQ    JJNN 	
64(+<=>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    jjnn

1V9)SZZ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   
    3q6 r     c                     t        j                  |      }|j                  t        |            }| j	                  ||       y Nr   )r   r   r   r3   r   r   r   resulthobjr'   s        r   new_testrU   i   2    ||&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                  |      }|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 
 )* 9GC	vv{urvv  )
 L-#-x89 %%59<!&)9;> D BD 
 )* 9GC	vv{urvv  )
 L-#-x89   z3EHMMg& r    