
    ¿ig&                     Z   d Z ddlZddlZddlZddlZddlZddlmZmZ ddl	m
Z
mZ ddlmZ d Z G d dej                  Z G d	 d
ej                  Z G d dej                  Z G d dej                  Z G d dej                  Z G d dej                  Zdi fdZd ZdS )z*Self-testing for PyCryptodome hash modules    N)hexlify	unhexlify)btobytes)strxor_cc                 f    t          j        ddt          |                     }t          |          S )Ns   \s+    )resubr   r   )
hex_stringshorters     [/var/www/html/afkarena/venv/lib/python3.11/site-packages/Cryptodome/SelfTest/Hash/common.pyt2br   $   s+    fWc7:#6#677GWr	   c                        e Zd Zd Zd Zd ZdS )HashDigestSizeSelfTestc                 |    t           j                            |            || _        || _        || _        || _        d S N)unittestTestCase__init__hashmodexpecteddescriptionextra_params)selfr   r   r   r   s        r   r   zHashDigestSizeSelfTest.__init__+   s=    ""4((( &(r	   c                     | j         S r   r   r   s    r   shortDescriptionz'HashDigestSizeSelfTest.shortDescription2       r	   c                 f   d| j         vrM|                     t          | j        d                     |                     | j        j        | j                    | j        j        di | j         }|                     t          |d                     |                     |j        | j                   d S )Ntruncatedigest_size )r   
assertTruehasattrr   assertEqualr#   r   newr   hs     r   runTestzHashDigestSizeSelfTest.runTest5   s    T...OOGDL-@@AAAT\5t}EEEDL11t011=1122266666r	   N__name__
__module____qualname__r   r   r+   r$   r	   r   r   r   )   sA        ) ) )     7 7 7 7 7r	   r   c                        e Zd Zd Zd Zd ZdS )HashSelfTestc                     t           j                            |            || _        |                                | _        || _        || _        || _        d S r   )	r   r   r   r   lowerr   inputr   r   )r   r   r   r   r4   r   s         r   r   zHashSelfTest.__init__@   sN    ""4((( ((
&(r	   c                     | j         S r   r   r   s    r   r   zHashSelfTest.shortDescriptionH   r    r	   c                 b    | j         j        di | j        }|                    | j                   t          j        |                                          }|                                } | j         j        | j        fi | j        }|                                }t          j        |                                          }| 	                    | j
        |           t          j        d         dk    r7| 	                    | j
        |           | 	                    | j
        |           nZ| 	                    | j
                                        |           | 	                    | j
                                        |           | 	                    | j
        |           | j         j        dvst          |d          rq|                                }|                    | j                   t          j        |                                          }| 	                    | j
        |           d S d S )Nr      )zCryptodome.Hash.MD5zCryptodome.Hash.SHA1r(   r$   )r   r(   r   updater4   binasciib2a_hexdigest	hexdigestr'   r   sysversion_infodecoder-   r&   )r   r*   out1out2out3out4h2out5s           r   r+   zHashSelfTest.runTestK   s   DL11t011	

++{{}}DLTZ==4+<=={{}}

++ 	---A!##T]D111T]D1111T]1133T:::T]1133T:::---
 < (WWW[bcdfk[l[lWBIIdj!!!#BIIKK00DT]D11111	 XWr	   Nr,   r$   r	   r   r1   r1   >   sA        ) ) )     2 2 2 2 2r	   r1   c                       e Zd Zd Zd ZdS )HashTestOIDc                 n    t           j                            |            || _        || _        || _        d S r   )r   r   r   r   oidr   )r   r   rI   r   s       r   r   zHashTestOID.__init__l   s5    ""4((((r	   c                 t     | j         j        di | j        }|                     |j        | j                   d S )Nr$   )r   r(   r   r'   rI   r)   s     r   r+   zHashTestOID.runTestr   s?    DL11t011)))))r	   Nr-   r.   r/   r   r+   r$   r	   r   rG   rG   k   s2        ) ) )* * * * *r	   rG   c                       e Zd Zd Zd ZdS )ByteArrayTestc                 `    t           j                            |            || _        || _        d S r   r   r   r   moduler   r   rP   r   s      r   r   zByteArrayTest.__init__y   .    ""4((((r	   c                 t   t          d          }t          |          } | j        j        |fi | j        } | j        j        |fi | j        }d|d d<   |                     |                                |                                           t          |          } | j        j        di | j        } | j        j        di | j        }|                    |           |                    |           d|d d<   |                     |                                |                                           d S )Nz       r$   )r   	bytearrayrP   r(   r   r'   r;   r8   )r   databah1rD   s        r   r+   zByteArrayTest.runTest~   s'      t__T[_T77T%677T[_R554#4552A2biikk222 t__T[_11t011T[_11t011
		$
		"2A2biikk22222r	   NrK   r$   r	   r   rM   rM   w   s2        ) ) )
3 3 3 3 3r	   rM   c                       e Zd Zd Zd ZdS )MemoryViewTestc                 `    t           j                            |            || _        || _        d S r   rO   rQ   s      r   r   zMemoryViewTest.__init__   rR   r	   c                    d}d }d }||fD ]1} ||          } | j         j        |fi | j        } | j         j        |fi | j        }|j        sd|d d<   |                     |                                |                                            ||          } | j         j        di | j        } | j         j        di | j        }|                    |           |                    |           |j        sd|d d<   |                     |                                |                                           3d S )Ns    c                      t          |           S r   )
memoryviewrW   s    r   	get_mv_roz)MemoryViewTest.runTest.<locals>.get_mv_ro   s    d###r	   c                 :    t          t          |                     S r   )r_   rV   r`   s    r   	get_mv_rwz)MemoryViewTest.runTest.<locals>.get_mv_rw   s    ioo...r	   rT   rU   r$   )rP   r(   r   readonlyr'   r;   r8   )r   rW   ra   rc   get_mvmvrY   rD   s           r   r+   zMemoryViewTest.runTest   sr   	$ 	$ 	$	/ 	/ 	/  * 	7 	7F B ;;):;;B 99t'899B; ! 2A2RYY[["))++666 B 554#455B 554#455BIIdOOOIIbMMM; ! 2A2RYY[["))++6666)	7 	7r	   NrK   r$   r	   r   r[   r[      s2        ) ) )
7 7 7 7 7r	   r[   c                        e Zd Zd Zd Zd ZdS )MACSelfTestc                     t           j                            |            || _        t	          |          | _        t	          |          | _        t	          |          | _        || _        || _	        d S r   )
r   r   r   rP   r   resultrW   keyparamsr   )r   rP   r   rj   rW   rk   rl   s          r   r   zMACSelfTest.__init__   s\    ""4(((&kkII	s88&r	   c                     | j         S r   r   r   s    r   r   zMACSelfTest.shortDescription   r    r	   c                 |   t          | j                  } | j        j        | j        fi | j        }|                    | j                   |                     | j        |	                                           |                     t          | j                  
                    d          |                                           |                    | j                   |                    |           t          | j        d          }|                     t           |j        |           |                     t           |j        d            | j        j        | j        | j        fi | j        }|                     | j        |	                                           |                     t          | j                  
                    d          |                                           	  | j        j        | j        | j        fi | j        }|                                }|                                }|                    d           |                     |	                                | j                   |                    d           |                     |	                                |	                                           n# t$          $ r Y nw xY w|                     t)          |	                                t+          d                               |                     t)          |                                t+          d                               |                    |                                           |                    |                                                    d                     d S )Nascii   4556s   blar	    )r   rj   rP   r(   rk   rl   r8   rW   r'   r;   r?   r<   verify	hexverifyr   assertRaises
ValueErrorcopyNotImplementedErrorr%   
isinstancetypeencode)r   
result_hexr*   	wrong_macrD   h3s         r   r+   zMACSelfTest.runTest   s   T[))
 DKODH4444	ahhjj111--44W==q{{}}MMM 	
	J T[#..	*ah	:::*ak6::: DKODHdi??4;??ahhjj111--44W==q{{}}MMM	$)CCt{CCABB IIfRYY[[$+666 HHVQXXZZ5555" 	 	 	D	 	
188::tCyy99:::
1;;==$r((;;<<< 	
AKKMM"""	AKKMM((1122222s   *CK 
KKNr,   r$   r	   r   rh   rh      sA        ' ' '     .3 .3 .3 .3 .3r	   rh   c           
         g }t          t          |                    D ]}||         }t          t          |dd                   \  }	}
t          |          dk     rt	          |
          }n|d         }d||dz   |fz  }|                    t          | ||	|
|                     d|t          |          dz   fz  }|                    t          | |||                     |$|                    t          | ||                     |                    t          | |                     |                    t          | |                     |S )Nr   r7      
%s #%d: %srU   z%s #%d: digest_size)rangelenmapr   reprappendr1   r   rG   rM   r[   )rP   module_name	test_datar#   rI   r   testsirowr   r4   r   names                r   make_hash_testsr      sE   E3y>>"" P PlAaC115s88a<<u++KKa&K{AaC==\&$%NNOOOO KY!1C#DDD	LL'k<PPQQQ
[l;;<<<	LLv|44555	LL55666Lr	   c                    g }t          |          D ]l\  }}t          |          dk    rt          |          i gz   \  }}}}	}
n|\  }}}}	}
d||dz   |	fz  }|                    t	          | |||||
                     m|S )N   r   rU   )	enumerater   listr   rh   )rP   r   r   r   r   r   rk   rW   resultsr   rl   r   s               r   make_mac_testsr     s    EI&& L L3s88q==8<S		bF8J5S$ff8;5S$f{AaC==[wc6JJKKKKLr	   )__doc__r
   r=   r   r9   Cryptodome.Hash
Cryptodomer   r   Cryptodome.Util.py3compatr   r   Cryptodome.Util.strxorr   r   r   r   r1   rG   rM   r[   rh   r   r   r$   r	   r   <module>r      s  2 1 0 				 



       ' ' ' ' ' ' ' ' 0 0 0 0 0 0 0 0 + + + + + +  
7 7 7 7 7X. 7 7 7**2 *2 *2 *2 *28$ *2 *2 *2Z	* 	* 	* 	* 	*(# 	* 	* 	*3 3 3 3 3H% 3 3 3>%7 %7 %7 %7 %7X& %7 %7 %7P<3 <3 <3 <3 <3(# <3 <3 <3~ FJ!#   4	 	 	 	 	r	   