Ë
    (üàg—$  ã                   ó¸  — d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZ d„ Zd d	lmZ  G d
„ de«      Zd dlmZ  G d„ de«      ZdZdZeD ]  Zefd„Z eedez   e«       Œ eD ]  Zefd„Z eedez   e«       Œ [[dZeD ]  Zefd„Z eedez   e«       Œ  G d„ de j6                  «      Zi fd„Zedk(  rd„ Z e j@                  d¬«       yy)é    N)Ú	unhexlify)Úlist_test_cases)Útobytes)ÚAESÚDES3ÚDES)ÚSHAKE128)Úload_test_vectors_wycheproofc                 ó^   — t        j                  t        | «      ¬«      j                  |«      S )N)Údata)r	   Únewr   Úread)ÚtagÚlengths     ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/Crypto/SelfTest/Cipher/test_OFB.pyÚget_tag_randomr   (   s    € Ü�<‰<œW S›\Ô*×/Ñ/°Ó7Ð7ó    )ÚBlockChainingTestsc                   óH   — e Zd Zej                  Zej                  Zd„ Zd„ Z	y)ÚOfbTestsc                 óp  — dgdz  }t        j                  | j                  t         j                  | j                  d¬«      }|D �cg c]  }|j                  |«      ‘Œ }}t        j                  | j                  t         j                  | j                  d¬«      }| j                  dj                  |«      |j                  dj                  |«      «      «       t        j                  | j                  t         j                  | j                  d¬«      }|D �cg c]  }|j                  |«      ‘Œ }}t        j                  | j                  t         j                  | j                  d¬«      }| j                  dj                  |«      |j                  dj                  |«      «      «       y c c}w c c}w )Nó   7777777éd   é   ©Úsegment_sizer   é€   )r   r   Úkey_128ÚMODE_CFBÚiv_128ÚencryptÚassertEqualÚjoin©ÚselfÚ
plaintextsÚcipherÚxÚciphertextss        r   Útest_unaligned_data_128z OfbTests.test_unaligned_data_1284   s(  € Ø!�^ cÑ)ˆ
ä—‘˜Ÿ™¤s§|¡|°T·[±[ÈqÔQˆØ3=Ö?¨a˜Ÿ™ qÕ)Ð?ˆÐ?Ü—‘˜Ÿ™¤s§|¡|°T·[±[ÈqÔQˆØ×Ñ˜Ÿ™ +Ó.°·±¸s¿x¹xÈ
Ó?SÓ0TÔUä—‘˜Ÿ™¤s§|¡|°T·[±[ÈsÔSˆØ3=Ö?¨a˜Ÿ™ qÕ)Ð?ˆÐ?Ü—‘˜Ÿ™¤s§|¡|°T·[±[ÈsÔSˆØ×Ñ˜Ÿ™ +Ó.°·±¸s¿x¹xÈ
Ó?SÓ0TÕUùò @ùò
 @ó   ÁF.ÄF3c                 óp  — dgdz  }t        j                  | j                  t         j                  | j                  d¬«      }|D �cg c]  }|j                  |«      ‘Œ }}t        j                  | j                  t         j                  | j                  d¬«      }| j                  dj                  |«      |j                  dj                  |«      «      «       t        j                  | j                  t         j                  | j                  d¬«      }|D �cg c]  }|j                  |«      ‘Œ }}t        j                  | j                  t         j                  | j                  d¬«      }| j                  dj                  |«      |j                  dj                  |«      «      «       y c c}w c c}w )Nr   r   r   r   r   é@   )r   r   Úkey_192r   Úiv_64r!   r"   r#   r$   s        r   Útest_unaligned_data_64zOfbTests.test_unaligned_data_64A   s,  € Ø!�^ cÑ)ˆ
Ü—‘˜$Ÿ,™,¬¯©°t·z±zÐPQÔRˆØ3=Ö?¨a˜Ÿ™ qÕ)Ð?ˆÐ?Ü—‘˜$Ÿ,™,¬¯©°t·z±zÐPQÔRˆØ×Ñ˜Ÿ™ +Ó.°·±¸s¿x¹xÈ
Ó?SÓ0TÔUä—‘˜$Ÿ,™,¬¯©°t·z±zÐPRÔSˆØ3=Ö?¨a˜Ÿ™ qÕ)Ð?ˆÐ?Ü—‘˜$Ÿ,™,¬¯©°t·z±zÐPRÔSˆØ×Ñ˜Ÿ™ +Ó.°·±¸s¿x¹xÈ
Ó?SÓ0TÕUùò @ùò
 @r+   N)
Ú__name__Ú
__module__Ú__qualname__r   ÚMODE_OFBÚaes_moder   Ú	des3_moder*   r0   © r   r   r   r   -   s    „ à�|‰|€HØ—‘€IòVó
Vr   r   )ÚNistBlockChainingVectorsc                   óT   — e Zd Zej                  Zej                  Zej                  Z	y)ÚNistOfbVectorsN)
r1   r2   r3   r   r4   r5   r   Údes_moder   r6   r7   r   r   r:   r:   P   s   „ Ø�|‰|€HØ�|‰|€HØ—‘�Ir   r:   )zOFBGFSbox128.rspzOFBGFSbox192.rspzOFBGFSbox256.rspzOFBKeySbox128.rspzOFBKeySbox192.rspzOFBKeySbox256.rspzOFBVarKey128.rspzOFBVarKey192.rspzOFBVarKey256.rspzOFBVarTxt128.rspzOFBVarTxt192.rspzOFBVarTxt256.rspzOFBMMT128.rspzOFBMMT192.rspzOFBMMT256.rsp)zOFBMCT128.rspzOFBMCT192.rspzOFBMCT256.rspc                 ó&   — | j                  |«       y ©N)Ú_do_kat_aes_test©r%   Ú	file_names     r   Únew_funcrA   q   ó   € Ø×Ñ˜iÕ(r   Ú	test_AES_c                 ó&   — | j                  |«       y r=   )Ú_do_mct_aes_testr?   s     r   rA   rA   v   rB   r   )zTOFBMMT2.rspzTOFBMMT3.rspzTOFBinvperm.rspzTOFBpermop.rspzTOFBsubtab.rspzTOFBvarkey.rspzTOFBvartext.rspc                 ó&   — | j                  |«       y r=   )Ú_do_tdes_testr?   s     r   rA   rA   †   s   € Ø×Ñ˜9Õ%r   Ú
test_TDES_c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚSP800TestVectorszPClass exercising the OFB test vectors found in Section F.4
    of NIST SP 800-3Ac                 ó´  — d}d}d}d}t        |«      }t        |«      }t        |«      }t        |«      }t        j                  |t        j                  |«      }| j	                  |j                  |«      |«       t        j                  |t        j                  |«      }| j	                  |j                  |«      |«       t        j                  |t        j                  |«      }| j	                  |j                  |d d «      |d d «       t        j                  |t        j                  |«      }| j	                  |j                  |d d «      |d d «       y )NÚ€6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710Ú€3b3fd92eb72dad20333449f8e83cfb4a7789508d16918f03f53c52dac54ed8259740051e9c5fecf64344f7a82260edcc304c6528f659c77866a510d9c1d6ae5eÚ 2b7e151628aed2a6abf7158809cf4f3cÚ 000102030405060708090a0b0c0d0e0féøÿÿÿ©r   r   r   r4   r"   r!   Údecrypt©r%   Ú	plaintextÚ
ciphertextÚkeyÚivr'   s         r   Útest_aes_128zSP800TestVectors.test_aes_128‘   s  € ð;ˆ	ð;ˆ
ð ;ˆØ:ˆä˜‹nˆÜ�r‹]ˆÜ˜iÓ(ˆ	Ü˜zÓ*ˆ
ä—‘˜œcŸl™l¨BÓ/ˆØ×Ñ˜Ÿ™¨	Ó2°JÔ?Ü—‘˜œcŸl™l¨BÓ/ˆØ×Ñ˜Ÿ™¨
Ó3°YÔ?ä—‘˜œcŸl™l¨BÓ/ˆØ×Ñ˜Ÿ™¨	°#°2¨Ó7¸ÀCÀR¸ÔIÜ—‘˜œcŸl™l¨BÓ/ˆØ×Ñ˜Ÿ™¨
°3°B¨Ó8¸)ÀCÀR¸.ÕIr   c                 ó´  — d}d}d}d}t        |«      }t        |«      }t        |«      }t        |«      }t        j                  |t        j                  |«      }| j	                  |j                  |«      |«       t        j                  |t        j                  |«      }| j	                  |j                  |«      |«       t        j                  |t        j                  |«      }| j	                  |j                  |d d «      |d d «       t        j                  |t        j                  |«      }| j	                  |j                  |d d «      |d d «       y )NrL   Ú€cdc80d6fddf18cab34c25909c99a4174fcc28b8d4c63837c09e81700c11004018d9a9aeac0f6596f559c6d4daf59a5f26d9f200857ca6c3e9cac524bd9acc92aÚ08e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7brO   rP   rQ   rS   s         r   Útest_aes_192zSP800TestVectors.test_aes_192¬   s  € ð;ˆ	ð;ˆ
ð KˆØ:ˆä˜‹nˆÜ�r‹]ˆÜ˜iÓ(ˆ	Ü˜zÓ*ˆ
ä—‘˜œcŸl™l¨BÓ/ˆØ×Ñ˜Ÿ™¨	Ó2°JÔ?Ü—‘˜œcŸl™l¨BÓ/ˆØ×Ñ˜Ÿ™¨
Ó3°YÔ?ä—‘˜œcŸl™l¨BÓ/ˆØ×Ñ˜Ÿ™¨	°#°2¨Ó7¸ÀCÀR¸ÔIÜ—‘˜œcŸl™l¨BÓ/ˆØ×Ñ˜Ÿ™¨
°3°B¨Ó8¸)ÀCÀR¸.ÕIr   c                 ó´  — d}d}d}d}t        |«      }t        |«      }t        |«      }t        |«      }t        j                  |t        j                  |«      }| j	                  |j                  |«      |«       t        j                  |t        j                  |«      }| j	                  |j                  |«      |«       t        j                  |t        j                  |«      }| j	                  |j                  |d d «      |d d «       t        j                  |t        j                  |«      }| j	                  |j                  |d d «      |d d «       y )NrL   Ú€dc7e84bfda79164b7ecd8486985d38604febdc6740d20b3ac88f6ad82a4fb08d71ab47a086e86eedf39d1c5bba97c4080126141d67f37be8538f5a8be740e484Ú@603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4rO   rP   rQ   rS   s         r   Útest_aes_256zSP800TestVectors.test_aes_256Ç   s  € ð;ˆ	ð;ˆ
ð [ˆØ:ˆä˜‹nˆÜ�r‹]ˆÜ˜iÓ(ˆ	Ü˜zÓ*ˆ
ä—‘˜œcŸl™l¨BÓ/ˆØ×Ñ˜Ÿ™¨	Ó2°JÔ?Ü—‘˜œcŸl™l¨BÓ/ˆØ×Ñ˜Ÿ™¨
Ó3°YÔ?ä—‘˜œcŸl™l¨BÓ/ˆØ×Ñ˜Ÿ™¨	°#°2¨Ó7¸ÀCÀR¸ÔIÜ—‘˜œcŸl™l¨BÓ/ˆØ×Ñ˜Ÿ™¨
°3°B¨Ó8¸)ÀCÀR¸.ÕIr   N)r1   r2   r3   Ú__doc__rX   r\   r`   r7   r   r   rJ   rJ   �   s   „ ñòJò6Jó6Jr   rJ   c                 ó˜   — g }|t        t        «      z  }| j                  d«      r|t        t        «      z  }|t        t        «      z  }|S )NÚ
slow_tests)r   r   Úgetr:   rJ   )ÚconfigÚtestss     r   Ú	get_testsrg   ã   sF   € Ø€EØ	Œ_œXÓ&Ñ&€EØ‡z�z�,ÔØ”¤Ó0Ñ0ˆØ	Œ_Ô-Ó.Ñ.€EØ€Lr   Ú__main__c                  ó<   — t        j                  t        «       «      S r=   )ÚunittestÚ	TestSuiterg   r7   r   r   ú<lambda>rl   í   s   € ”H×&Ñ&¤y£{Ó3€ r   Úsuite)ÚdefaultTest)!rj   Úbinasciir   ÚCrypto.SelfTest.st_commonr   ÚCrypto.Util.py3compatr   ÚCrypto.Cipherr   r   r   ÚCrypto.Hashr	   ÚCrypto.SelfTest.loaderr
   r   ÚCrypto.SelfTest.Cipher.test_CBCr   r   r8   r:   Únist_aes_kat_mmt_filesÚnist_aes_mct_filesr@   rA   ÚsetattrÚnist_tdes_filesÚTestCaserJ   rg   r1   rm   Úmainr7   r   r   ú<module>r|      s-  ðó> Ý å 5Ý )ß (Ñ (Ý  Ý ?ò8õ ?ôVÐ!ô VõB EôÐ-ô ðÐ ð&Ð ð (ò ?€IØ!*ó )áˆN˜K¨)Ñ3°XÕ>ð?ð
 $ò ?€IØ!*ó )áˆN˜K¨)Ñ3°XÕ>ð?ð ˆxð€ð !ò @€IØ!*ó &áˆN˜L¨9Ñ4°hÕ?ð@ôSJ�x×(Ñ(ô SJðl ó ð ˆzÒÙ3€EØ€H‡M�M˜gÖ&ð r   