§
    HŠtjª"  ã                   óZ   — 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
dS )	z1passlib.tests -- unittests for passlib.crypto.desé    )Úwith_statementÚdivision)Úpartial)Úgetrandbytes)ÚTestCasec                   ó8   — e Zd ZdZg d¢Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	Ú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 ]5\  }}} ||¦  «        } ||¦  «        }|                      |||z  ¦  «         Œ6|                      t          |d¦  «         |                      t          ||dz   ¦  «         |                      t          |d¦  «         |                      t          |d¦  «         |                      t          |d¦  «         dS )	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	            ú[/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/passlib/tests/test_crypto_des.pyÚtest_01_expandzDesTest.test_01_expand;   s(  € ð	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð
 Ô/ð 	7ð 	7‰JˆD�!�QØ!�> $Ñ'Ô'ˆDØ!�> $Ñ'Ô'ˆDà×Ò˜T 4¨+Ñ#5Ñ6Ô6Ð6Ð6ð 	×Ò�) ^°SÑ9Ô9Ð9ð 	×Ò�* n°kÀ!±mÑDÔDÐDØ×Ò�* n°iÑ@Ô@Ð@ð 	×Ò�* n°bÑ9Ô9Ð9Ø×Ò�* n°iÑ@Ô@Ð@Ð@Ð@ó    c                 óü  — ddl m}m}m} |                      ¦   «         }t          d¦  «        D ]>}t          |d¦  «        } ||¦  «        } ||¦  «        }|                      ||¦  «         Œ?|                      t          |d¦  «         |                      t          ||dz   ¦  «         |                      t          |d¦  «         |                      t          |d¦  «         |                      t          |d	¦  «         d
S )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ÐRÐRÐRÐRÐRÐRÐRÐRØ�nŠnÑÔˆõ �r‘”ð 	)ð 	)ˆAÝ  QÑ'Ô'ˆDØ!�> $Ñ'Ô'ˆDØ!�> $Ñ'Ô'ˆDØ×Ò˜T 4Ñ(Ô(Ð(Ð(ð 	×Ò�) ^°SÑ9Ô9Ð9ð 	×Ò�* n°kÀ!±mÑDÔDÐDØ×Ò�* n°iÑ@Ô@Ð@ð 	×Ò�* n°bÑ9Ô9Ð9Ø×Ò�* n°iÑ@Ô@Ð@Ð@Ð@r&   c                 ó|   — ddl m}m}m} |                      ¦   «         }||z  |                     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   sR   € àNÐNÐNÐNÐNÐNÐNÐNÐNÐNØ�nŠnÑÔˆØ�kÑ! c§k¢k°!°KÑ&@Ô&@À=Ñ&PÑQÐQr&   c                 ó´  — ddl m}m}m}m} | j        D ]ï\  }}} ||¦  «        } ||¦  «        } ||¦  «        } |||¦  «        }|                      ||d|›d|›d�¦  «          ||¦  «        }	 ||	|¦  «        }|                      ||d|›d|	›d|›d�¦  «         t          d¦  «        D ]V}
 ||                       ||¦  «        ¦  «        ¦  «        } |||¦  «        }|                      ||d|›d|›d|›d�¦  «         ŒWŒðd	}|  	                    t          |d|¦  «         |  	                    t          |d
|¦  «         |  	                    t          ||d¦  «         |  	                    t          ||d¦  «         |  	                    t          |||d¬¦  «         |  	                    t          |||d¬¦  «         |  	                    t          |||dd¬¦  «         dS )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ð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð (,Ô'<ð 	Jð 	JÑ#ˆC�˜Gà�'˜#‘,”,ˆCØ˜ 	Ñ*Ô*ˆIØ�g˜gÑ&Ô&ˆGð 'Ð& s¨IÑ6Ô6ˆFØ×Ò˜V W WØ/2¨s¨s°I°I°Ið/?ñ @ô @ð @ð "�> #Ñ&Ô&ˆDØ&Ð& t¨YÑ7Ô7ˆFØ×Ò˜V W WØ/2¨s¨s°D°D°D¸)¸)¸)ð/Eñ Fô Fð Fõ ˜2‘Y”Yð Jð J�Ø�w˜t×2Ò2°9°9¸S±>´>ÑBÔBÑCÔC�Ø*Ð*¨4°Ñ;Ô;�Ø× Ò  ¨¨Ø36°3°3¸¸¸¸i¸i¸ið3Iñ Jô Jð Jð JðJð ˆØ×Ò�)Ð%6¸¸4Ñ@Ô@Ð@Ø×Ò�*Ð&7¸ÀDÑIÔIÐIð 	×Ò�)Ð%6¸¸aÑ@Ô@Ð@Ø×Ò�*Ð&7¸¸yÑIÔIÐIð 	×Ò�*Ð&7¸¸tÈ"ÐÑMÔMÐMØ×Ò�*Ð&7¸¸tÈ%ÐÑPÔPÐPð 	×Ò�*Ð&7¸¸tÀQÈqÐÑQÔQÐQÐQÐQr&   c                 óÎ  — ddl m} | j        D ]„\  }}} |||¦  «        }|                      ||d|›d|›d�¦  «         t	          d¦  «        D ]D}|                      |¦  «        } |||¦  «        }|                      ||d|›d|›d|›d�¦  «         ŒEŒ…|                      t          |dd¦  «         |                      t          |d	d¦  «         |                      t          |dd¦  «         |                      t          |dd	¦  «         |                      t          |ddd	¬
¦  «         |                      t          |ddd¬
¦  «         |                      t          |dddd¬¦  «         dS )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Ö  € à<Ð<Ð<Ð<Ð<Ð<ð (,Ô'<ð 	Jð 	JÑ#ˆC�˜Gà*Ð*¨3°	Ñ:Ô:ˆFØ×Ò˜V W WØ/2¨s¨s°I°I°Ið/?ñ @ô @ð @õ ˜2‘Y”Yð Jð J�Ø×*Ò*¨3Ñ/Ô/�Ø.Ð.¨t°YÑ?Ô?�Ø× Ò  ¨¨Ø36°3°3¸¸¸¸i¸i¸ið3Iñ Jô Jð Jð JðJð 	×Ò�)Ð%:¸GÀQÑGÔGÐGØ×Ò�*Ð&;¸RÀÑCÔCÐCð 	×Ò�)Ð%:¸A¸wÑGÔGÐGØ×Ò�*Ð&;¸QÀÑCÔCÐCð 	×Ò�*Ð&;¸QÀÈÐÑKÔKÐKØ×Ò�*Ð&;¸QÀÈÐÑNÔNÐNð 	×Ò�*Ð&;¸QÀÀ1ÈQÐÑOÔOÐOÐOÐOr&   N)
Ú__name__Ú
__module__Ú__qualname__ÚdescriptionPrefixr   r%   r0   r5   rG   rK   © r&   r$   r	   r	      sŠ   € € € € € Ø,Ðð$ð $ð $ÐðLAð Að Að0Að Að Að0Rð Rð Rð,Rð ,Rð ,Rð\Pð Pð Pð Pð Pr&   r	   N)Ú__doc__Ú
__future__r   r   Ú	functoolsr   Úpasslib.utilsr   Úpasslib.tests.utilsr   r	   rP   r&   r$   ú<module>rV      s¥   ðØ 7Ð 7ð 0Ð /Ð /Ð /Ð /Ð /Ð /Ð /à Ð Ð Ð Ð Ð ð 'Ð &Ð &Ð &Ð &Ð &Ø (Ð (Ð (Ð (Ð (Ð (ð
mPð mPð mPð mPð mPˆhñ mPô mPð mPð mPð mPr&   