Ë
    àU.jª"  ã                   óR   — d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	  G d„ de	«      Z
y)	z1passlib.tests -- unittests for passlib.crypto.desé    )Úwith_statementÚdivision)Úpartial)Úgetrandbytes)ÚTestCasec                   ó6   — e Zd ZdZg d¢Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚDesTestzpasslib.crypto.des)"©r   r   l   §#b§72e )ì   ÿÿÿÿ r   l   X\�|XHÍ )l            l           l   {U
t‰9s,	 )ì   ""DDˆ r   l   3E<®f  )ì   ïMWž	r   l   -S$eñ74; )r   r   l   Ýrq5à×R r
   )ì   2¨lajåv r   l   Ä<étCeÎi )l   Wn4Ae l   Bgîr@[l   ›M46lzH )l   n7‚;†eŽ	l   ÚWÞ{ 2ªf l   qR—j@tÄQ )l   †&ùL=l   rqìàPFl   šYhGmu4 )l   ž1L0KB l   
D¾[`-*
 l   *ã¸Ä )l   ¶5ýéVÈ%l   ¢®2Áê l   •@?m¿y
 )l   ÎrizÃe�l   :ž#!xÚ,l   [X�Ä+5 )l   æ5ÕE‡l   ÒaŽn�c¶:l   	\C hžf)l   þsÆq´~K l   jH~SàR(1 l   z+¶o²,;S )l   *´ÁM8=l   (nAFè^ l   ^9*²~ )l   /;úDD#l   š`^k }ª4 l   ˆ@qr‰b )l   Fu–-Ô.ƒ> l   2RNyj2 l   w+é¸:WQ)l   ^F„54Ax l   Ê\>ka8+X l   ZWô;ù@ßx )l   vat5�B l   b`.¼[^l   Vn.Û6øE )l   0SYXÀl   òbÎ]di@ l   VUEÌ
 )l   �%fsñzÉK l   ú<S!ª l   Vú¿rø} )l   §sV+Tx‚} l   ’Rn�j9l   ¬!ùVny )l   ¿)DµuJO l   *q/ÞUòl   JNÙ³[S )l   Ö&6qCl   Â(î1@qêl l   A.V";`z )l   ïO$'p|Ãb l   Z)ÞZ¡H© l   “w³i@Ö )l   r   l    qàQ3hÙ )l   ||øx r   l   F‘q¬\ )l   þqýcû÷ r   l   ÇLSXGþm )r   r   l   Q$*ÈBª* )r   r   l   ®[ãU7=UU )r   r   l   =Ð@Ü?¢. )r   r   l   òB/?#@]Q c                 ó|  — ddl m}m}m}m} | j
                  D ]+  \  }}} ||«      } ||«      }| j                  |||z  «       Œ- | j                  t        |d«       | j                  t        ||dz   «       | j                  t        |d«       | j                  t        |d«       | j                  t        |d«       y)	zexpand_des_key()r   )Úexpand_des_keyÚshrink_des_keyÚ_KDATA_MASKÚINT_56_MASKç      ð?é   ó           éÿÿÿÿó         N)
Úpasslib.crypto.desr   r   r   r   Údes_test_vectorsÚassertEqualÚassertRaisesÚ	TypeErrorÚ
ValueError)	Úselfr   r   r   r   Úkey1Ú_Úkey2Úkey3s	            ú_C:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\passlib/tests/test_crypto_des.pyÚtest_01_expandzDesTest.test_01_expand;   s³   € ÷	Fó 	Fð
 ×/Ô/‰JˆD�!�QÙ! $Ó'ˆDÙ! $Ó'ˆDà×Ñ˜T 4¨+Ñ#5Õ6ð	 0ð 	×Ñœ) ^°SÔ9ð 	×Ñœ* n°kÀ!±mÔDØ×Ñœ* n°iÔ@ð 	×Ñœ* n°bÔ9Ø×Ñœ* n°iÕ@ó    c                 ó   — ddl m}m}m} | j	                  «       }t        d«      D ]0  }t        |d«      } ||«      } ||«      }| j                  ||«       Œ2 | j                  t        |d«       | j                  t        ||dz   «       | j                  t        |d«       | j                  t        |d«       | j                  t        |d	«       y
)zshrink_des_key()r   )r   r   ÚINT_64_MASKé   é   r   r   s	            r   ó          N)r   r   r   r(   Ú	getRandomÚranger   r   r   r   r   )	r   r   r   r(   ÚrngÚir    r"   r#   s	            r$   Útest_02_shrinkzDesTest.test_02_shrinkS   s¸   € çRÑRØ�n‰nÓˆô �r–ˆAÜ  QÓ'ˆDÙ! $Ó'ˆDÙ! $Ó'ˆDØ×Ñ˜T 4Õ(ð	 ð 	×Ñœ) ^°SÔ9ð 	×Ñœ* n°kÀ!±mÔDØ×Ñœ* n°iÔ@ð 	×Ñœ* n°bÔ9Ø×Ñœ* n°iÕ@r&   c                 ól   — ddl m}m}m} | j	                  «       }||z  |j                  d|«      |z  z  S )zrandomize parity bitsr   )r   Ú_KPARITY_MASKr(   )r   r   r2   r(   r,   Úrandint)r   Úkeyr   r2   r(   r.   s         r$   Ú_random_parityzDesTest._random_parityk   s4   € çNÑNØ�n‰nÓˆØ�kÑ! c§k¡k°!°KÓ&@À=Ñ&PÑQÐQr&   c                 ó   — ddl m}m}m}m} | j
                  D ]Â  \  }}} ||«      } ||«      } ||«      } |||«      }| j                  ||d|›d|›d�«        ||«      }	 ||	|«      }| j                  ||d|›d|	›d|›d�«       t        d«      D ]E  }
 || j                   ||«      «      «      } |||«      }| j                  ||d|›d|›d|›d�«       ŒG ŒÄ d	}| j                  t        |d|«       | j                  t        |d
|«       | j                  t        ||d«       | j                  t        ||d«       | j                  t        |||d¬«       | j                  t        |||d¬«       | j                  t        |||dd¬«       y)zdes_encrypt_block()r   )Údes_encrypt_blockr   Ú_pack64Ú	_unpack64úkey=ú plaintext=Ú:z shrink(key)=r)   ú rndparity(key)=r   r   r+   r   ©Úsalté   ©ÚroundsN)r   r7   r   r8   r9   r   r   r-   r5   r   r   r   )r   r7   r   r8   r9   r4   Ú	plaintextÚcorrectÚresultr"   r!   r#   Ústubs                r$   Útest_03_encrypt_byteszDesTest.test_03_encrypt_bytesq   s­  € ÷	Bó 	Bð (,×'<Ô'<Ñ#ˆC�˜Gá˜#“,ˆCÙ 	Ó*ˆIÙ˜gÓ&ˆGñ ' s¨IÓ6ˆFØ×Ñ˜V¡WÚ/2²Ið/?ô @ñ " #Ó&ˆDÙ& t¨YÓ7ˆFØ×Ñ˜V¡WÚ/2²Dº)ð/Eô Fô ˜2–Y�Ù˜t×2Ñ2±9¸S³>ÓBÓC�Ù*¨4°Ó;�Ø× Ñ  ©Ú36ººið3Iõ Jñ ð% (=ð2 ˆØ×Ñœ)Ð%6¸¸4Ô@Ø×Ñœ*Ð&7¸ÀDÔIð 	×Ñœ)Ð%6¸¸aÔ@Ø×Ñœ*Ð&7¸¸yÔIð 	×Ñœ*Ð&7¸¸tÈ"ÐÔMØ×Ñœ*Ð&7¸¸tÈ%ÐÔPð 	×Ñœ*Ð&7¸¸tÀQÈqÐÕQr&   c                 ól  — ddl m} | j                  D ]p  \  }}} |||«      }| j                  ||d|›d|›d�«       t	        d«      D ]9  }| j                  |«      } |||«      }| j                  ||d|›d|›d|›d�«       Œ; Œr | j                  t        |dd«       | j                  t        |d	d«       | j                  t        |dd«       | j                  t        |dd	«       | j                  t        |ddd	¬
«       | j                  t        |ddd¬
«       | j                  t        |dddd¬«       y)zdes_encrypt_int_block()r   )Údes_encrypt_int_blockr:   r;   r<   r)   r=   ó    r   r>   r@   rA   N)	r   rI   r   r   r-   r5   r   r   r   )r   rI   r4   rC   rD   rE   r!   r#   s           r$   Útest_04_encrypt_intszDesTest.test_04_encrypt_intsŸ   s?  € å<ð (,×'<Ô'<Ñ#ˆC�˜Gá*¨3°	Ó:ˆFØ×Ñ˜V¡WÚ/2²Ið/?ô @ô ˜2–Y�Ø×*Ñ*¨3Ó/�Ù.¨t°YÓ?�Ø× Ñ  ©Ú36ººið3Iõ Jñ ð (=ð 	×Ñœ)Ð%:¸GÀQÔGØ×Ñœ*Ð&;¸RÀÔCð 	×Ñœ)Ð%:¸A¸wÔGØ×Ñœ*Ð&;¸QÀÔCð 	×Ñœ*Ð&;¸QÀÈÐÔKØ×Ñœ*Ð&;¸QÀÈÐÔNð 	×Ñœ*Ð&;¸QÀÀ1ÈQÐÕOr&   N)
Ú__name__Ú
__module__Ú__qualname__ÚdescriptionPrefixr   r%   r0   r5   rG   rK   © r&   r$   r	   r	      s0   „ Ø,Ðò$ÐòLAò0Aò0Rò,Ró\Pr&   r	   N)Ú__doc__Ú
__future__r   r   Ú	functoolsr   Úpasslib.utilsr   Úpasslib.tests.utilsr   r	   rP   r&   r$   Ú<module>rV      s(   ðÙ 7÷ 0å õ 'Ý (ô
mPˆhõ mPr&   