Ë
    (üàgç'  ã                   óÎ   — 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       ú^/var/www/skyplay_api_hub/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ˆØ×Ñœ*¤f¨e°UÕ;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ˆÜœ3˜u›:Ó&ˆä˜˜u¨VÔ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ˆÜœI¤c¨%£jÓ1Ó2ˆä˜˜u¨VÔ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ˆä˜˜u¨UÔ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   € ô œ9¤YÐ/FÓ%GÓHÓIˆÜÐ1Ó2ˆØ™q˜ˆÜ Ð!8Ó9ˆä˜˜u¨UÔ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ˆà×Ñœ)¤V¨U°EÀ%ÐÕ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ˆà×Ñœ)¤V¨U°EÀ%ÐÕ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ˆÜœ3˜u›:¨™>Ó*ˆà×Ñœ*¤f¨e°UÀ6ÐÕ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   ó   be72dbc2a48c0d9e1708éA   ©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˜ˆÜ#Ð$;Ó<ˆÜœ3˜u›:Ó&ˆä˜% ¨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˜ˆÜ#Ð$;Ó<ˆÜœI¤c¨%£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   € ô œ9¤YÐ/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ˆà×Ñœ)¤X¨u°bÀÐÕ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ˆà×Ñœ)¤X¨u°bÀÐÕ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ˆÜœ3˜u›:¨™>Ó*ˆà×Ñœ*¤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ÒÙ3€EØ€H‡M�M˜gÖ&ð r   