
    ,h-                         d Z ddlZddlmZ ddlmZ ddlmZ ddl	m
Z
mZ  G d dej                        Zd	 Zd
 Zd Z G d dej                        Zi fdZedk(  rd Z ej*                  d       yy)z.Self-test suite for Crypto.Hash.KangarooTwelve    N)	unhexlify)list_test_cases)KangarooTwelve)bbchrc                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)KangarooTwelveTestc                     | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        j                  d      d       y )Nr          s   i  s    )assertEqualK12_length_encode)selfs    j/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/Crypto/SelfTest/Hash/test_KangarooTwelve.pytest_length_encodez%KangarooTwelveTest.test_length_encode(   sT    ++A.8++B/=++E24GH    c                    t        j                         }t        j                  t        d            }t        j                         j                  t        d            }| j	                  |j                  d      |j                  d             |j                  d       | j                  |j                  d      |j                  d             t        j                         }|j                  d      }t        j                  t        d            }t        j                  t        d            }| j                  ||j                  d             | j	                  ||j                  d             t        j                  t        d            }t        j                  t        d      t        d            }t        j                  t        d            j                  t        d            }| j	                  |j                  d      |j                  d             |j                  d       | j                  |j                  d      |j                  d             y )N90data
    customfoo)r   r   )r   newr   updateassertNotEqualreadr   )r   xof1xof2xof3refs        r   test_new_positivez$KangarooTwelveTest.test_new_positive-   s   wwywwAdG$wwy$(DIIbM499R=9		"2		"6wwyiimwwae$wwah'diim,C2/wwah'wwahQtW5wwah'..qw7DIIbM499R=9		"2		"6r   c                 p   t        d      dz  t        d      dz  g}t        j                         }|j                  |d         j                  |d          |j	                  d      }t        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KangarooTwelveTest.test_updateG   s    r(S.$r(S.1GGI	""6!9-GGI	VAY&'V,r   c                 n    t        j                         }| j                  t        |j                  d       y )Nstring)r   r   assertRaises	TypeErrorr   )r   r+   s     r   test_update_negativez'KangarooTwelveTest.test_update_negativeP   s#    GGI)QXXy9r   c           
          t        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KangarooTwelveTest.test_digestT   sL    GGI 	
64(+<=>Vb)r   c                     t        j                         }|j                  t        d             |j	                  d       | j                  t        |j                  t        d             y )Nrrrrr4   ttt)r   r   r   r   r    r0   r1   )r   macs     r   test_update_after_readz)KangarooTwelveTest.test_update_after_read\   sB    ggi

1V9)SZZ5:r   N)	__name__
__module____qualname__r   r%   r-   r2   r9   r>    r   r   r	   r	   &   s!    I
74-:*;r   r	   c                 |    | j                  dd      j                  dd      j                  dd      }t        |      S )N r   
)replacer   )txtcleans     r   txt2binrJ   c   s7    KKR ((r2::4DEUr   c                    t        |       }dj                  t        dd      D cg c]  }t        |       c}      }t        d| dz
  d      D ]
  }||||dz     | dz  }|r| dz  dz  }|d | ||d  t	        |      | k(  sJ |S c c}w )Nr   r      )	bytearrayjoinranger   r8   )nresxpatternbaseremains         r   ptnrV   h   s    
A,Chhq$8AQ89GaT4( ( 'D(XFT	T!Wf%DE
s8q=J 9s   Bc              #   V   K   t        dt        |       |      D ]  }| |||z      y w)Nr   )rO   r8   )sourcesizeis      r   chunkedr[   u   s3     1c&k4( Qqvs   ')c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)KangarooTwelveTVc                     d}t        |      }t        j                         j                  d      }| j	                  ||       y )Nzl1A C2 D4 50 FC 3B 42 05 D1 9D A7 BF CA 1B 37 51
             3C 08 03 57 7A C7 16 7F 06 FE 2C E1 F0 EF 39 E5    rJ   r   r   r    r   r   tvbtvrQ   s       r   test_zero_1zKangarooTwelveTV.test_zero_1~   s9    @ bkgginnR c"r   c                     d}t        |      }t        j                         j                  d      }| j	                  ||       y )Nz1A C2 D4 50 FC 3B 42 05 D1 9D A7 BF CA 1B 37 51
        3C 08 03 57 7A C7 16 7F 06 FE 2C E1 F0 EF 39 E5
        42 69 C0 56 B8 C8 2E 48 27 60 38 B6 D2 92 96 6C
        C0 7A 3D 46 45 27 2E 31 FF 38 50 81 39 EB 0A 71@   r`   ra   s       r   test_zero_2zKangarooTwelveTV.test_zero_2   s8    ;
 bkgginnR c"r   c                     d}t        |      }t        j                         j                  d      }| j	                  |dd  |       y )NzgE8 DC 56 36 42 F7 22 8C 84 68 4C 89 84 05 D3 A8
        34 79 91 58 C0 79 B1 28 80 27 7A 1D 28 E2 FF 6Di0'  ir`   ra   s       r   test_zero_3zKangarooTwelveTV.test_zero_3   s>    ; bkgginnU#STC(r   c                     d}t        |      }t        j                  t        d            j	                  d      }| j                  ||       y )Nzg2B DA 92 45 0E 8B 14 7F 8A 7C B6 29 E7 84 A0 58
        EF CA 7C F7 D8 21 8E 02 D3 45 DF AA 65 24 4A 1Fr)   r   r_   rJ   r   r   rV   r    r   ra   s       r   
test_ptn_1zKangarooTwelveTV.test_ptn_1   sA    ; bkgg3q6"''+c"r   c                     d}t        |      }t        j                  t        d            j	                  d      }| j                  ||       y )Nzg6B F7 5F A2 23 91 98 DB 47 72 E3 64 78 F8 E1 9B
        0F 37 12 05 F6 A9 A9 3A 27 3F 51 DF 37 12 28 88   r   r_   rk   ra   s       r   test_ptn_17zKangarooTwelveTV.test_ptn_17   sA    ; bkgg3r7#((,c"r   c                     d}t        |      }t        j                  t        d            j	                  d      }| j                  ||       y )Nzg0C 31 5E BC DE DB F6 14 26 DE 7D CF 8F B7 25 D1
        E7 46 75 D7 F5 32 7A 50 67 F3 67 B1 08 EC B6 7Ci!  r   r_   rk   ra   s       r   test_ptn_17_2zKangarooTwelveTV.test_ptn_17_2   A    ; bkgg3u:&++B/c"r   c                     d}t        |      }t        j                  t        d            j	                  d      }| j                  ||       y )NzgCB 55 2E 2E C7 7D 99 10 70 1D 57 8B 45 7D DF 77
        2C 12 E3 22 E4 EE 7F E4 17 F9 2C 75 8F 0D 59 D0i1  r   r_   rk   ra   s       r   test_ptn_17_3zKangarooTwelveTV.test_ptn_17_3   rr   r   c                    d}t        |      }t        d      }t        j                  |      j	                  d      }| j                  ||       t        j                         }|D ]  }|j                  t        |              |j	                  d      }| j                  ||       dD ][  }t        j                         }t        ||      D ]  }|j                  |        |j	                  d      }| j                  ||       ] y )Nzg87 01 04 5E 22 20 53 45 FF 4D DA 05 55 5C BB 5C
        3A F1 A7 71 C2 B8 9B AE F3 7D B4 3D 99 98 B9 FEiAF r   r_   )   rn            )	rJ   rV   r   r   r    r   r   r   r[   )r   rb   rc   r   rQ   k12rR   
chunk_sizes           r   test_ptn_17_4zKangarooTwelveTV.test_ptn_17_4   s    ; bk5z gg4 %%b)c" ggi 	 AJJtAw	 hhrlc" / 	'J'')CT:. 

1((2,CS#&	'r   c                 T   d}t        |      }t        d      }t        j                  |      j	                  d      }| j                  ||       t        j                         }t        |d      D ]  }|j                  |        |j	                  d      }| j                  ||       y )Nzg84 4D 61 09 33 B1 B9 96 3C BD EB 5A E3 B6 B0 5C
        C7 CB D6 7C EE DF 88 3E B6 78 A0 A8 E0 37 16 82iQ r   r_       )rJ   rV   r   r   r    r   r[   r   )r   rb   rc   r   rQ   rz   chunks          r   test_ptn_17_5zKangarooTwelveTV.test_ptn_17_5   s    ; bk5z gg4 %%b)c" ggiT4( 	EJJu	hhrlc"r   c                     d}t        |      }t        d      }t        j                  |      j	                  d      }| j                  ||       y )Nzg3C 39 07 82 A8 A4 E8 9F A6 36 7F 72 FE AA F1 32
        55 C8 D9 58 78 48 1D 3C D8 CE 85 F5 8E 88 0A F8iaOpr   r_   rJ   rV   r   r   r    r   )r   rb   rc   r   rQ   s        r   test_ptn_17_6zKangarooTwelveTV.test_ptn_17_6   sH    ; bk5z gg4 %%b)c"r   c                     d}t        |      }t        d      }t        j                  |      j	                  d      }| j                  ||       y )NzgFA B6 58 DB 63 E9 4A 24 61 88 BF 7A F6 9A 13 30
        45 F4 6E E9 84 C5 6E 3C 33 28 CA AF 1A A1 A5 83r)   r   r_   r   r   rb   rc   r   rQ   s        r   test_ptn_c_1zKangarooTwelveTV.test_ptn_c_1   sH    ; bkQ ggV$))"-c"r   c                     d}t        |      }t        d      }t        j                  d|      j	                  d      }| j                  ||       y )NzgD8 48 C5 06 8C ED 73 6F 44 62 15 9B 98 67 FD 4C
        20 B8 08 AC C3 D5 BC 48 E0 B0 6B A0 A3 76 2E C4)      r   r   r_   r   r   s        r   test_ptn_c_41zKangarooTwelveTV.test_ptn_c_41   sJ    ; bkR gg76277;c"r   c                     d}t        |      }t        d      }t        j                  d|      j	                  d      }| j                  ||       y )NzgC3 89 E5 00 9A E5 71 20 85 4C 2E 8C 64 67 0A C0
        13 58 CF 4C 1B AF 89 44 7A 72 42 34 DC 7C ED 74i  s   r   r_   r   r   s        r   test_ptn_c_41_2z KangarooTwelveTV.test_ptn_c_41_2  J    ; bkU gg;v6;;B?c"r   c                     d}t        |      }t        d      }t        j                  d|      j	                  d      }| j                  ||       y )Nzg75 D2 F8 6A 2E 64 45 66 72 6B 4F BC FC 56 57 B9
        DB CF 07 0C 7B 0D CA 06 45 0A B2 91 D7 44 3B CFi9 s   r   r_   r   r   s        r   test_ptn_c_41_3z KangarooTwelveTV.test_ptn_c_41_3  r   r   c                     d}t        |      }t        j                  t        d            j	                  d      }| j                  ||       y )Nzg1B 57 76 36 F7 23 64 3E 99 0C C7 D6 A6 59 83 74
        36 FD 6A 10 36 26 60 0E B8 30 1C D1 DB E5 53 D6  r   r_   rk   ra   s       r   test_ptn_8191zKangarooTwelveTV.test_ptn_8191  C    ; bk gg3t9%**2.c"r   c                     d}t        |      }t        j                  t        d            j	                  d      }| j                  ||       y )Nzg48 F2 56 F6 77 2F 9E DF B6 A8 B6 61 EC 92 DC 93
        B9 5E BD 05 A0 8A 17 B3 9A E3 49 08 70 C9 26 C3r~   r   r_   rk   ra   s       r   test_ptn_8192zKangarooTwelveTV.test_ptn_8192'  r   r   c                     d}t        |      }t        j                  t        d      t        d            j	                  d      }| j                  ||       y )Nzg3E D1 2F 70 FB 05 DD B5 86 89 51 0A B3 E4 D2 3C
        6C 60 33 84 9A A0 1E 1D 8C 22 0A 29 7F ED CD 0Br~     r   r_   rk   ra   s       r   test_ptn_8192_8189z#KangarooTwelveTV.test_ptn_8192_81891  I    ; bk gg3t9SY7<<R@c"r   c                     d}t        |      }t        j                  t        d      t        d            j	                  d      }| j                  ||       y )Nzg6A 7C 1B 6A 5C D0 D8 C9 CA 94 3A 4A 21 6C C6 46
        04 55 9A 2E A4 5F 78 57 0A 15 25 3D 67 BA 00 AEr~     r   r_   rk   ra   s       r   test_ptn_8192_8190z#KangarooTwelveTV.test_ptn_8192_8190;  r   r   c                     d}t        |      }t        j                  dt        d            j	                  d      }| j                  ||       y )N@fd608f91d81904a9916e78a18f65c157a78d63f93d8f6367db0524526a5ea2bbr   d   r   r_   rk   ra   s       r   test_1zKangarooTwelveTV.test_1G  s?    Obkgg3s3x055b9c"r   c                    d}d}d}d}d}t        j                  ddz  d	      j                  d
      }| j                  |t	        |             t        j                  ddz  d	      j                  d
      }| j                  |t	        |             t        j                  ddz  d	      j                  d
      }| j                  |t	        |             t        j                  ddz  d	      j                  d
      }| j                  |t	        |             t        j                  ddz  d	      j                  d
      }| j                  |t	        |             y )N@5a4ec9a649f81916d4ce1553492962f7868abf8dd1ceb2f0cb3682ea95cda6a6@441688fe4fe4ae9425eb3105eb445eb2b3a6f67b66eff8e74ebfbc49371f6d4c@17269a57759af0214c84a0fd9bc851f4d95f80554cfed4e7da8a6ee1ff080131@33826990c09dc712ba7224f0d9be319e2720de95a4c1afbd2211507dae1c703a@9f4d3aba908ddc096e4d3a71da954f917b9752f05052b9d26d916a6fbc75bf3e   Ai     Br   r_   r   r   r   r~   )r   r   r    r   rJ   )r   tv4tv3tv2tv1tv0rQ   s          r   test_2zKangarooTwelveTV.test_2N  s   PPPPPgg48,T:??Cgcl+gg48,T:??Cgcl+gg48,T:??Cgcl+gg48,T:??Cgcl+gg48,T:??Cgcl+r   N)r?   r@   rA   rd   rg   ri   rl   ro   rq   rt   r|   r   r   r   r   r   r   r   r   r   r   r   r   rB   r   r   r]   r]   z   sf    ##)####'4#$	#	#	#	#	######,r   r]   c                 R    g }|t        t              z  }|t        t              z  }|S N)r   r	   r]   )configtestss     r   	get_testsr   e  s,    E	_/00E	_-..ELr   __main__c                  <    t        j                  t                     S r   )unittest	TestSuiter   rB   r   r   suiter   m  s    !!)+..r   r   )defaultTest)__doc__r   binasciir   Crypto.SelfTest.st_commonr   Crypto.Hashr   r   Crypto.Util.py3compatr   r   TestCaser	   rJ   rV   r[   r]   r   r?   r   mainrB   r   r   <module>r      s|   6 5   5 - ):;** :;z


h,x(( h,V   z/HMMg& r   