Ë
    (üàg¡  ã            	       ó–  — d Z ddlZddlmZmZ ddlmZ ddlmZ ddl	m
Z
mZ ddlmZ ddlmZ d	d
gZdZeD ]¬  Z ededez  dd„ i«      xs g Z ee«      D ]Š  \  ZZ eee«      rŒej2                  ej4                  z   ej6                  z   Z e eej:                  «      «       e eej<                  «      «       e ee«      «      e›de›d�fZejA                  e«       ŒŒ Œ®  G d„ dejB                  «      Z" G d„ dejB                  «      Z# G d„ dejB                  «      Z$i fd„Z%e&dk(  rddlZd„ Z' ejP                  d¬«       yy)z&Self-test suite for Crypto.Cipher.DES3é    N)ÚhexlifyÚ	unhexlify)ÚDES3)Ústrxor_c)ÚbchrÚtostr)Úload_test_vectors)Úlist_test_cases)Ú054686520717566636b2062726f776e20666f78206a756d70Ú0a826fd8ce53b855fcce21c8112256fe668d5c05dd9b6b900Ú00123456789abcdef23456789abcdef01456789abcdef0123zNIST SP800-67 B.1)Ú21e81b7ade88a259Ú5c577d4d9b20c0f8Ú 9b397ebf81b1181e282f4bb8adbadc6bzTwo-key 3DES)zTECBMMT2.rspzTECBMMT3.rsp)ÚCipherÚTDESzTDES ECB (%s)Úcountc                 ó   — t        | «      S ©N)Úint)Úxs    ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/Crypto/SelfTest/Cipher/test_DES3.pyú<lambda>r   @   s
   € ¬C°«F€ ó    z (ú)c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚCheckParityc                 óz   — t        d«      }t        j                  |«      }| j                  |t        d«      «       y )NÚ CABF326FA56734324FFCCABCDEFACABFÚ CBBF326EA46734324FFDCBBCDFFBCBBF©r   r   Úadjust_key_parityÚassertEqual)ÚselfÚ	before_2kÚafter_2ks      r   Útest_parity_option2zCheckParity.test_parity_option2R   s7   € ÜÐ@ÓAˆ	Ü×)Ñ)¨)Ó4ˆØ×Ñ˜Ü"Ð#EÓFõ	Hr   c                 óz   — t        d«      }t        j                  |«      }| j                  |t        d«      «       y )NÚ0AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCÚ0ABABABABABABABABBABABABABABABABACDCDCDCDCDCDCDCDr!   )r$   Ú	before_3kÚafter_3ks      r   Útest_parity_option3zCheckParity.test_parity_option3X   s7   € ÜÐPÓQˆ	Ü×)Ñ)¨)Ó4ˆØ×Ñ˜Ü"Ð#UÓVõ	Xr   c           	      ó¢  — t        d«      dz  }t        d«      dz  }| j                  t        t        j                  |dz  |z   «       | j                  t        t        j                  ||dz  z   «       | j                  t        t        j                  |dz  «       | j                  t        t        j                  |t        |d«      z   |z   «       y ©Né   é   éÿ   é   é   )r   ÚassertRaisesÚ
ValueErrorr   r"   r   ©r$   Úsub_key1Úsub_key2s      r   Útest_degradationzCheckParity.test_degradation^   s¸   € Ü˜“7˜Q‘;ˆÜ˜“9˜q‘=ˆð 	×Ñœ*¤d×&<Ñ&<Ø" Q™,¨Ñ1ô	3ð 	×Ñœ*¤d×&<Ñ&<Ø" X°¡\Ñ1ô	3ð 	×Ñœ*¤d×&<Ñ&<Ø" Q™,ô	(ð 	×Ñœ*¤d×&<Ñ&<Ø"¤X¨h¸Ó%:Ñ:¸XÑEõ	Gr   N)Ú__name__Ú
__module__Ú__qualname__r'   r-   r:   © r   r   r   r   P   s   „ òHòXóGr   r   c                   ó   — e Zd Zd„ Zy)ÚDegenerateToDESTestc           	      ó  — t        d«      dz  }t        d«      dz  }| j                  t        t        j                  |dz  |z   t        j
                  «       | j                  t        t        j                  ||dz  z   t        j
                  «       | j                  t        t        j                  |dz  t        j
                  «       | j                  t        t        j                  ||z   t        |d«      z   t        j
                  «       y r/   )r   r5   r6   r   ÚnewÚMODE_ECBr   r7   s      r   ÚrunTestzDegenerateToDESTest.runTestu   sË   € Ü˜“7˜Q‘;ˆÜ˜“9˜q‘=ˆð 	×Ñœ*¤d§h¡hØ" Q™,¨Ñ1ÜŸ-™-ô	)ð
 	×Ñœ*¤d§h¡hØ" X°¡\Ñ1ÜŸ-™-ô	)ð
 	×Ñœ*¤d§h¡hØ" Q™,ÜŸ-™-ô	)ð
 	×Ñœ*¤d§h¡hØ" XÑ-´¸À3Ó0GÑGÜŸ-™-õ	)r   N©r;   r<   r=   rD   r>   r   r   r@   r@   s   s   „ ó)r   r@   c                   ó   — e Zd Zd„ Zy)Ú
TestOutputc                 óN  — t        j                  dt         j                  «      }d}|j                  |«      }t	        d«      }|j                  ||¬«      }| j                  ||«       | j                  |d «       |j                  ||¬«      }| j                  ||«       | j                  |d «       t        t	        d«      «      }|j                  ||¬«       | j                  ||«       |j                  ||¬«       | j                  ||«       | j                  t        |j                  |d¬«       | j                  t        |j                  |d¬«       t	        d«      }| j                  t        |j                  ||¬«       | j                  t        |j                  ||¬«       y )Ns   44444444GGGGGGGGTTTTTTTTs   5555555555555555é   )Úoutputs   0000000000000000é   )r   rB   rC   ÚencryptÚ	bytearrayr#   ÚdecryptÚ
memoryviewr5   Ú	TypeErrorr6   )r$   ÚcipherÚptÚctrJ   ÚresÚshorter_outputs          r   rD   zTestOutput.runTest�   s\  € ô —‘Ð2´D·M±MÓBˆàˆØ�^‰^˜BÓˆä˜2“ˆØ�n‰n˜R¨ˆnÓ/ˆØ×Ñ˜˜VÔ$Ø×Ñ˜˜dÔ#à�n‰n˜R¨ˆnÓ/ˆØ×Ñ˜˜VÔ$Ø×Ñ˜˜dÔ#äœI b›MÓ*ˆØ�‰�r &ˆÔ)Ø×Ñ˜˜VÔ$à�‰�r &ˆÔ)Ø×Ñ˜˜VÔ$à×Ñœ) V§^¡^°RÀÐÔHØ×Ñœ) V§^¡^°RÀÐÔHä" 1›ˆØ×Ñœ* f§n¡n°bÀÐÔPØ×Ñœ* f§n¡n°bÀÐÕPr   NrE   r>   r   r   rG   rG   Ž   s   „ óQr   rG   c                 ó¬   — ddl m} g } |t        dt        «      }|j	                  t        «       «       |t        t        «      z  }|t        «       gz  }|S )Nr0   )Úmake_block_testsr   )	ÚcommonrW   r   Ú	test_dataÚappendr@   r
   r   rG   )ÚconfigrW   Útestss      r   Ú	get_testsr]   °   sJ   € Ý(à€EÙœT 6¬9Ó5€EØ	‡L�LÔ$Ó&Ô'Ø	Œ_œ[Ó)Ñ)€EØ	Œj‹lˆ^Ñ€EØ€Lr   Ú__main__c                  ó>   — t        j                  t        «       «       y r   )ÚunittestÚ	TestSuiter]   r>   r   r   Úsuiterb   ¾   s   € Ü×Ñœ9›;Õ'r   rb   )ÚdefaultTest))Ú__doc__r`   Úbinasciir   r   ÚCrypto.Cipherr   ÚCrypto.Util.strxorr   ÚCrypto.Util.py3compatr   r   ÚCrypto.SelfTest.loaderr	   ÚCrypto.SelfTest.st_commonr
   rY   Únist_tdes_mmt_filesÚ	tdes_fileÚtest_vectorsÚ	enumerateÚindexÚtvÚ
isinstanceÚstrÚkey1Úkey2Úkey3ÚkeyÚ	plaintextÚ
ciphertextÚtest_data_itemrZ   ÚTestCaser   r@   rG   r]   r;   rb   Úmainr>   r   r   ú<module>r|      ss  ðñ2 -ã ß 'å å 'ß -Ý 4Ý 5ðð<ð€	ð$ 7Ð à$ò )€Iá$Ø*Ø!Ø'¨)Ñ3Ø Ñ"2Ð3ó	5ò ;ð 9;ð	 ñ ˜|Ó,ò )‰	ˆˆrñ �b˜#ÔØà�g‰g˜Ÿ™Ñ "§'¡'Ñ)ˆÙ¡¨¯©Ó 5Ó6Ù¡¨¯©Ó 6Ó7Ù¡¨£Ó-Ú'0²%Ð8ð:ˆð 	×Ñ˜Õ(ñ)ð)ô, G�(×#Ñ#ô  GôF)˜(×+Ñ+ô )ô6Q�×"Ñ"ô QðD ó ð ˆzÒÛò(ð €H‡M�M˜gÖ&ð r   