
    ,h'                         d dl Z d dlmZmZ d dlmZ d dlmZmZ  G d de j                        Z
 G d de j                        Zi fd	Zed
k(  rd Z e j                  d       yy)    N)	unhexlifyhexlify)list_test_cases)strxorstrxor_cc                   Z    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y)StrxorTestsc                     t        d      }t        d      }t        d      }| j                  t        ||      |       | j                  t        ||      |       y N   ff339a83e5cd4cdf5649   383d4ba020573314395b   c70ed123c59a7fcb6f12)r   assertEqualr   )selfterm1term2results       b/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/Crypto/SelfTest/Util/test_strxor.pytest1zStrxorTests.test1+   sQ    121223u-v6u-v6    c                 @    d}| j                  t        ||      |       y )Nr   )r   r   )r   ess     r   test2zStrxorTests.test22   s    B,r   c                 n    t        d      }dt        |      z  }| j                  t        ||      |       y )Nr       )r   lenr   r   )r   r   	all_zeross      r   test3zStrxorTests.test36   s2    12c%j(	u-y9r   c                 h    t        d      }t        d      }| j                  t        t        ||       y )Nr   s   ff339a83e5cd4cdf564990)r   assertRaises
ValueErrorr   r   r   r   s      r   test_wrong_lengthzStrxorTests.test_wrong_length;   s,    1234*feU;r   c                     t        d      }t        |      }t        d      }t        d      }| j                  t        ||      |       y r   )r   	bytearrayr   r   )r   r   term1_bar   r   s        r   test_bytearrayzStrxorTests.test_bytearray@   sD    12U#1223%0&9r   c                     t        d      }t        |      }t        d      }t        d      }| j                  t        ||      |       y r   )r   
memoryviewr   r   )r   r   term1_mvr   r   s        r   test_memoryviewzStrxorTests.test_memoryviewH   sD    12e$1223%0&9r   c                 .   t        d      }t        d      }|dd }|dd }t        d      }t        t        |            }t        |||      }| j	                  |d       | j	                  ||       | j	                  ||       | j	                  ||       yz3Verify result can be stored in pre-allocated memoryr   r   Nr   output)r   r%   r   r   r   r   r   r   original_term1original_term2expected_xorr/   r   s           r   test_output_bytearrayz!StrxorTests.test_output_bytearrayP   s     1212qq !893u:&uV4&.//r   c                 @   t        d      }t        d      }|dd }|dd }t        d      }t        t        t        |                  }t	        |||      }| j                  |d       | j                  ||       | j                  ||       | j                  ||       yr-   )r   r)   r%   r   r   r   r0   s           r   test_output_memoryviewz"StrxorTests.test_output_memoryviewa   s     1212qq !89Ic%j12uV4&.//r   c                     t        t        d            }t        d      }|dd }t        d      }t        |||      }| j                  |d       | j                  ||       | j                  ||       y1Verify result can be stored in overlapping memoryr   r   Nr   r.   )r%   r   r   r   r   r   r   r2   r3   r   s         r   !test_output_overlapping_bytearrayz-StrxorTests.test_output_overlapping_bytearrayr   sq     )$;<=12q !89uU3&-/r   c                     t        t        t        d                  }t        d      }|dd }t        d      }t        |||      }| j	                  |d       | j	                  ||       | j	                  ||       yr8   )r)   r%   r   r   r   r:   s         r   "test_output_overlapping_memoryviewz.StrxorTests.test_output_overlapping_memoryview   sv     9Y/F%GHI12q !89uU3&-/r   c                 l    t        d      }t        d      }| j                  t        t        |||       y2Verify result cannot be stored in read-only memoryr   r   r.   N)r   r    	TypeErrorr   r"   s      r   test_output_ro_bytesz StrxorTests.test_output_ro_bytes   s3     1212)VUE%Hr   c                 ~    t        t        d            }t        d      }| j                  t        t        |||       yr?   )r)   r   r    rA   r   r"   s      r   test_output_ro_memoryviewz%StrxorTests.test_output_ro_memoryview   s8     9%<=>12)VUE%Hr   c                     t        d      }t        d      }t        t        |      dz
        }| j                  t        t
        |||       y)<Verify result cannot be stored in memory of incorrect lengthr   r      r.   N)r   r%   r   r    r!   r   )r   r   r   r/   s       r   test_output_incorrect_lengthz(StrxorTests.test_output_incorrect_length   sE     12123u:>**feU6Jr   N)__name__
__module____qualname__r   r   r   r#   r'   r+   r4   r6   r;   r=   rB   rD   rH    r   r   r	   r	   )   sF    7-:
<
::0"0"00IIKr   r	   c                   Z    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y)Strxor_cTestsc                 h    t        d      }t        d      }| j                  t        |d      |       y Nr      be72dbc2a48c0d9e1708A   r   r   r   )r   r   r   s      r   r   zStrxor_cTests.test1   s/    1223%,f5r   c                 R    t        d      }| j                  t        |d      |       y )Nr   r   rS   r   r   s     r   r   zStrxor_cTests.test2   s$    12%+U3r   c                 <    | j                  t        dd      d       y )Nr   Z   )r   r   )r   s    r   r   zStrxor_cTests.test3   s    #r*C0r   c                     t        d      }| j                  t        t        |d       | j                  t        t        |d       y )Nr      )r   r    r!   r   rU   s     r   test_wrong_rangezStrxor_cTests.test_wrong_range   s5    12*hr:*hs;r   c                 ~    t        d      }t        |      }t        d      }| j                  t        |d      |       y rP   )r   r%   r   r   )r   r   r&   r   s       r   r'   zStrxor_cTests.test_bytearray   s9    12U#23(B/8r   c                 ~    t        d      }t        |      }t        d      }| j                  t        |d      |       y rP   )r   r)   r   r   )r   r   r*   r   s       r   r+   zStrxor_cTests.test_memoryview   s9    12e$23(B/8r   c                     t        d      }|d d  }t        d      }t        t        |            }t        |d|      }| j	                  |d        | j	                  ||       | j	                  ||       y Nr   rQ   rR   r.   )r   r%   r   r   r   r   r   r1   expected_resultr/   r   s         r   r4   z#Strxor_cTests.test_output_bytearray   sm    12q#$;<3u:&%F3&1/r   c                     t        d      }|d d  }t        d      }t        t        t        |                  }t	        |d|      }| j                  |d        | j                  ||       | j                  ||       y r_   )r   r)   r%   r   r   r   r`   s         r   r6   z$Strxor_cTests.test_output_memoryview   sr    12q#$;<Ic%j12%F3&1/r   c                     t        t        d            }t        d      }t        |d|      }| j                  |d       | j                  ||       yr9   r   rQ   rR   r.   N)r%   r   r   r   r   r   r3   r   s       r   r;   z/Strxor_cTests.test_output_overlapping_bytearray   sM     )$;<= !89%E2&-r   c                     t        t        t        d                  }t        d      }t        |d|      }| j	                  |d       | j	                  ||       yrd   )r)   r%   r   r   r   re   s       r   r=   z0Strxor_cTests.test_output_overlapping_memoryview   sR     9Y/F%GHI !89%E2&-r   c                 V    t        d      }| j                  t        t        |d|       y)r@   r   rR   r.   N)r   r    rA   r   rU   s     r   rB   z"Strxor_cTests.test_output_ro_bytes   s(     12)XubGr   c                 ~    t        t        d            }t        d      }| j                  t        t        |d|       y)r@   r   r   rR   r.   N)r)   r   r    rA   r   r"   s      r   rD   z'Strxor_cTests.test_output_ro_memoryview   s8     9%<=>12)XubGr   c                     t        d      }t        t        |      dz
        }| j                  t        t
        |d|       y)rF   r   rG   rR   r.   N)r   r%   r   r    r!   r   )r   r   r/   s      r   rH   z*Strxor_cTests.test_output_incorrect_length  s:     123u:>**hr&Ir   N)rI   rJ   rK   r   r   r   r[   r'   r+   r4   r6   r;   r=   rB   rD   rH   rL   r   r   rN   rN      sF    6
41<
99
0
0	.	.HHJr   rN   c                 R    g }|t        t              z  }|t        t              z  }|S N)r   r	   rN   )configtestss     r   	get_testsrn     s*    E	_[))E	_]++ELr   __main__c                  <    t        j                  t                     S rk   )unittest	TestSuitern   rL   r   r   <lambda>rs     s    H&&y{3 r   suite)defaultTest)rq   binasciir   r   Crypto.SelfTest.st_commonr   Crypto.Util.strxorr   r   TestCaser	   rN   rn   rI   rt   mainrL   r   r   <module>r{      sn   D  ' 5 /|K(## |K~dJH%% dJN   z3EHMMg& r   