
    ,h"                        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                  d23       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        b/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/Crypto/SelfTest/Hash/test_keccak.pytest_new_positivezKeccakTest.test_new_positive,   s    / 	BK::+6DT--{a/?@HHJEU..q0@A	B - 	>L::<8DT--|<HHJE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4QvY?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     	)VZZ0JJ3' 	)VZZ+-*- 	 	/
 	*fjjqA*fjjqA*fjjrB*fjja@*fjja@*fjjc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JJB'	""6!9-JJB'	VAY&'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&    JJB')QXXy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    JJB' 	V,
64(+<=>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    jjS)MMO	 	')*<=)4
9d8n=>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    iL JJ3S!W5xxz)QXXs12w7zzc4;;= JJ3S!W$OT* 	
QR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      (    zzc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 
 )* 
:GC	vv{urvv  0 M=3.9
: &&8 5 8"'*: <? E CE 
 %&8 4 7"'*: <? E CEE 
 )* 
:GC	vv{urvv  0 M=3.9
: &&8 5 8!&(8 9; A ?A 
 %&8 4 7!&(8 9; A ?AA 
 )* 
:GC	vv{urvv  0 M=3.9
: &&8 5 8!&(8 9; A ?A 
 %&8 4 7!&(8 9; A ?AA 
 )* 
:GC	vv{urvv  0 M=3.9
:   z3EHMMg& r#   