Ë
    (üàgBS  ã                   ó*  — d dl Z d dlmZmZ d dlmZ d dlmZmZ d dl	m
Z
mZ d dlmZmZ d dlmZ d„ Z G d	„ d
e j$                  «      Z G d„ de j$                  «      Z G d„ de j$                  «      Zi fd„Zedk(  rd„ Z e j2                  d¬«       yy)é    N)ÚhexlifyÚ	unhexlify)Úlist_test_cases)ÚtobytesÚbchr)ÚAESÚDES3)ÚSHAKE128ÚSHA256)ÚCounterc                 ó^   — 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_CTR.pyÚget_tag_randomr   (   s    € Ü�<‰<œW S›\Ô*×/Ñ/°Ó7Ð7ó    c                   ó"  — e Zd Z edd«      Z edd«      Z edd«      Z edd«      Z ej                  d	e¬
«      Z
 ej                  d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d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd „ Z y!)"ÚCtrTestsÚkey_128é   Úkey_192é   Únonce_32é   Únonce_64é   é    ©Úprefixé@   c                 ól  — t        j                  | j                  t         j                  | j                  ¬«      }t        dd«      }|j                  |«      }t        j                  | j                  t         j                  | j                  ¬«      }|j                  |«      }| j                  ||«       y )N©ÚcounterÚ	plaintexti@  )	r   r   r   ÚMODE_CTRÚctr_128r   ÚencryptÚdecryptÚassertEqual©ÚselfÚcipherÚptÚctÚpt2s        r   Útest_loopback_128zCtrTests.test_loopback_1284   sv   € Ü—‘˜Ÿ™¤s§|¡|¸T¿\¹\ÔJˆÜ˜K¨Ó2ˆØ�^‰^˜BÓˆä—‘˜Ÿ™¤s§|¡|¸T¿\¹\ÔJˆØ�n‰n˜RÓ ˆØ×Ñ˜˜SÕ!r   c                 ól  — t        j                  | j                  t         j                  | j                  ¬«      }t        dd«      }|j                  |«      }t        j                  | j                  t         j                  | j                  ¬«      }|j                  |«      }| j                  ||«       y )Nr%   r'   i   )	r	   r   r   r(   Úctr_64r   r*   r+   r,   r-   s        r   Útest_loopback_64zCtrTests.test_loopback_64=   sv   € Ü—‘˜$Ÿ,™,¬¯©¸t¿{¹{ÔKˆÜ˜K¨Ó1ˆØ�^‰^˜BÓˆä—‘˜$Ÿ,™,¬¯©¸t¿{¹{ÔKˆØ�n‰n˜RÓ ˆØ×Ñ˜˜SÕ!r   c                 ó  — | j                  t        t        j                  | j                  t
        j                  «       | j                  t        t
        j                  | j                  t
        j                  | j                  «       y ©N)	ÚassertRaisesÚ	TypeErrorr	   r   r   r   r(   r   r)   ©r.   s    r   Útest_invalid_counter_parameterz'CtrTests.test_invalid_counter_parameterF   sJ   € à×Ñœ)¤T§X¡X¨t¯|©|¼S¿\¹\ÔJð 	×Ñœ)¤S§W¡W¨d¯l©l¼C¿L¹LÈ$Ï,É,ÕWr   c                 ór  — t        j                  | j                  t         j                  | j                  ¬«      }| j                  |j                  | j                  «       t        j                  | j                  t        j                  | j                  ¬«      }| j                  |j                  | j                  «       t        j                  d| j                  | j                  ¬«      }t        j                  | j                  t        j                  |¬«      }| j                  t        |d«      «       y )Nr%   r#   )r"   ÚsuffixÚnonce)r	   r   r   r(   r5   r,   r?   r   r   r   r)   r   r   ÚassertFalseÚhasattr)r.   r/   r&   s      r   Útest_nonce_attributezCtrTests.test_nonce_attributeM   s»   € ä—‘˜$Ÿ,™,¬¯©¸t¿{¹{ÔKˆØ×Ñ˜Ÿ™ t§}¡}Ô5ô —‘˜Ÿ™¤s§|¡|¸T¿\¹\ÔJˆØ×Ñ˜Ÿ™ t§}¡}Ô5ô —+‘+˜b¨¯©¸t¿}¹}ÔMˆÜ—‘˜Ÿ™¤s§|¡|¸WÔEˆØ×Ñœ ¨Ó1Õ2r   c                 óÊ  — t        j                  | j                  t         j                  | j                  ¬«      }| j                  |j                  | j                  «       t        j                  d| j                  d¬«      }t        j                  | j                  t         j                  |¬«      }| j                  |j                  |j                  «       t        dd«      }| j                  |j                  |«      |j                  |«      «       t        j                  | j                  t         j                  «      j                  }t        j                  | j                  t         j                  «      j                  }| j                  ||«       | j                  t        |«      d«       t        j                  | j                  t         j                  d	¬«      }| j                  d	|j                  «       |j                  d
«       | j                  t        t         j                  | j                  t         j                  | j                  | j                  ¬«       y )N©r?   r#   r   ©r"   Úinitial_valuer%   r'   é   r   r   s,  000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)r&   r?   )r   r   r   r(   r   r,   r?   r   r   r*   ÚassertNotEqualÚlenr9   r:   r)   )r.   Úcipher1r&   Úcipher2r0   Únonce1Únonce2r/   s           r   Útest_nonce_parameterzCtrTests.test_nonce_parameter[   sƒ  € ä—'‘'˜$Ÿ,™,¬¯©¸D¿M¹MÔJˆØ×Ñ˜Ÿ™¨¯©Ô6ä—+‘+˜b¨¯©ÀaÔHˆÜ—'‘'˜$Ÿ,™,¬¯©¸gÔFˆØ×Ñ˜Ÿ™¨¯©Ô6ä˜K¨Ó/ˆØ×Ñ˜Ÿ™¨Ó,¨g¯o©o¸bÓ.AÔBô —‘˜Ÿ™¤s§|¡|Ó4×:Ñ:ˆÜ—‘˜Ÿ™¤s§|¡|Ó4×:Ñ:ˆØ×Ñ˜F FÔ+Ø×Ñœ˜V› aÔ(ô —‘˜Ÿ™¤s§|¡|¸3Ô?ˆØ×Ñ˜˜fŸl™lÔ+Ø�‰�xÔ ð 	×Ñœ)¤S§W¡W¨d¯l©l¼C¿L¹LØ"&§,¡,°d·m±mð 	õ 	Er   c                 ó¨  — t        j                  | j                  t         j                  | j                  d¬«      }t        j                  d| j                  d¬«      }t        j                  | j                  t         j                  |¬«      }t        dd«      }| j                  |j                  |«      |j                  |«      «       t        j                  | j                  t         j                  d¬«      }t        j                  d|j                  d¬«      }t        j                  | j                  t         j                  |¬«      }t        dd«      }| j                  |j                  |«      |j                  |«      «       | j                  t        t         j                  | j                  t         j                  | j                  d	¬
«       y )Néÿÿ  ©r?   rF   r#   rE   r%   r'   rG   ©rF   r   )r&   rF   )r   r   r   r(   r   r   r   r,   r*   r?   r9   r:   r)   )r.   rJ   r&   rK   r0   s        r   Útest_initial_value_parameterz%CtrTests.test_initial_value_parameterv   s4  € ä—'‘'˜$Ÿ,™,¬¯©Ø $§¡¸VôEˆä—+‘+˜b¨¯©ÀfÔMˆÜ—'‘'˜$Ÿ,™,¬¯©¸gÔFˆÜ˜K¨Ó/ˆØ×Ñ˜Ÿ™¨Ó,¨g¯o©o¸bÓ.AÔBô —'‘'˜$Ÿ,™,¬¯©Ø(.ô0ˆä—+‘+˜b¨¯©ÀfÔMˆÜ—'‘'˜$Ÿ,™,¬¯©¸gÔFˆÜ˜K¨Ó/ˆØ×Ñ˜Ÿ™¨Ó,¨g¯o©o¸bÓ.AÔBð 	×Ñœ)¤S§W¡W¨d¯l©l¼C¿L¹LØ"&§,¡,¸að 	õ 	Ar   c                 ó”  — t        j                  | j                  t         j                  | j                  d¬«      }t        j                  | j                  t         j                  | j                  d¬«      }t        dd«      }| j                  |j                  |«      |j                  |«      «       | j                  t        t         j                  | j                  t         j                  d¬«       | j                  t        t         j                  | j                  t         j                  | j                  d¬«       | j                  t        t         j                  | j                  t         j                  d	¬«       | j                  t        t         j                  | j                  t         j                  | j                  d
¬«       y )Nó         ÿÿrQ   rP   r'   rG   s   55555555555555555rR   s	   555555555s   555555555555555s   5555555)
r   r   r   r(   r   r   r,   r*   r9   Ú
ValueError)r.   rJ   rK   r0   s       r   Ú"test_initial_value_bytes_parameterz+CtrTests.test_initial_value_bytes_parameter‹   s4  € ä—'‘'˜$Ÿ,™,¬¯©Ø $§¡Ø(=ô?ˆô —'‘'˜$Ÿ,™,¬¯©Ø $§¡¸VôEˆä˜K¨Ó/ˆØ×Ñ˜Ÿ™¨Ó,¨g¯o©o¸bÓ.AÔBð 	×Ñœ*¤c§g¡g¨t¯|©|¼S¿\¹\Ø(/ð 	ô 	1à×Ñœ*¤c§g¡g¨t¯|©|¼S¿\¹\Ø $§¡¸Vð 	ô 	Eð 	×Ñœ*¤c§g¡g¨t¯|©|¼S¿\¹\Ø(/ð 	ô 	1à×Ñœ*¤c§g¡g¨t¯|©|¼S¿\¹\Ø $§¡¸Vð 	õ 	Er   c           	      óP  — | j                  t        t        j                  | j                  t        j
                  t        j                  d«      ¬«       | j                  t        t        j                  | j                  t        j
                  t        j                  d«      ¬«       y )Néx   r%   éˆ   )r9   rV   r   r   r   r(   r   r;   s    r   Útest_iv_with_matching_lengthz%CtrTests.test_iv_with_matching_length¡   sh   € Ø×Ñœ*¤c§g¡g¨t¯|©|¼S¿\¹\Ü")§+¡+¨cÓ"2ð 	ô 	4à×Ñœ*¤c§g¡g¨t¯|©|¼S¿\¹\Ü")§+¡+¨cÓ"2ð 	õ 	4r   c                 óÌ   — t        j                  | j                  t         j                  | j                  ¬«      }| j                  |j                  t         j                  «       y ©Nr%   )r   r   r   r(   r)   r,   Ú
block_size©r.   r/   s     r   Útest_block_size_128zCtrTests.test_block_size_128§   s:   € Ü—‘˜Ÿ™¤s§|¡|¸T¿\¹\ÔJˆØ×Ñ˜×*Ñ*¬C¯N©NÕ;r   c                 óÌ   — t        j                  | j                  t         j                  | j                  ¬«      }| j                  |j                  t         j                  «       y r]   )r	   r   r   r(   r5   r,   r^   r_   s     r   Útest_block_size_64zCtrTests.test_block_size_64«   s:   € Ü—‘˜$Ÿ,™,¬¯©¸t¿{¹{ÔKˆØ×Ñ˜×*Ñ*¬D¯O©OÕ<r   c                 óh  — dgdz  }t        j                  | j                  t         j                  | j                  ¬«      }|D �cg c]  }|j                  |«      ‘Œ }}t        j                  | j                  t         j                  | j                  ¬«      }| j                  dj                  |«      |j                  dj                  |«      «      «       t        j                  | j                  t         j                  | j                  ¬«      }|D �cg c]  }|j                  |«      ‘Œ }}t        j                  | j                  t         j                  | j                  ¬«      }| j                  dj                  |«      |j                  dj                  |«      «      «       y c c}w c c}w ©Ns   7777777éd   r%   r   )r   r   r   r(   r)   r*   r,   Újoin©r.   Ú
plaintextsr/   ÚxÚciphertextss        r   Útest_unaligned_data_128z CtrTests.test_unaligned_data_128¯   s   € Ø!�^ cÑ)ˆ
ä—‘˜Ÿ™¤s§|¡|¸T¿\¹\ÔJˆØ3=Ö?¨a˜Ÿ™ qÕ)Ð?ˆÐ?Ü—‘˜Ÿ™¤s§|¡|¸T¿\¹\ÔJˆØ×Ñ˜Ÿ™ +Ó.°·±¸s¿x¹xÈ
Ó?SÓ0TÔUä—‘˜Ÿ™¤s§|¡|¸T¿\¹\ÔJˆØ3=Ö?¨a˜Ÿ™ qÕ)Ð?ˆÐ?Ü—‘˜Ÿ™¤s§|¡|¸T¿\¹\ÔJˆØ×Ñ˜Ÿ™ +Ó.°·±¸s¿x¹xÈ
Ó?SÓ0TÕUùò @ùò
 @ó   ÁF*ÄF/c                 óh  — dgdz  }t        j                  | j                  t        j                  | j
                  ¬«      }|D �cg c]  }|j                  |«      ‘Œ }}t        j                  | j                  t        j                  | j
                  ¬«      }| j                  dj                  |«      |j                  dj                  |«      «      «       t        j                  | j                  t        j                  | j
                  ¬«      }|D �cg c]  }|j                  |«      ‘Œ }}t        j                  | j                  t        j                  | j
                  ¬«      }| j                  dj                  |«      |j                  dj                  |«      «      «       y c c}w c c}w rd   )	r	   r   r   r   r(   r5   r*   r,   rf   rg   s        r   Útest_unaligned_data_64zCtrTests.test_unaligned_data_64¼   s   € Ø!�^ cÑ)ˆ
Ü—‘˜$Ÿ,™,¬¯©¸d¿k¹kÔJˆØ3=Ö?¨a˜Ÿ™ qÕ)Ð?ˆÐ?Ü—‘˜$Ÿ,™,¬¯©¸d¿k¹kÔJˆØ×Ñ˜Ÿ™ +Ó.°·±¸s¿x¹xÈ
Ó?SÓ0TÔUä—‘˜$Ÿ,™,¬¯©¸d¿k¹kÔJˆØ3=Ö?¨a˜Ÿ™ qÕ)Ð?ˆÐ?Ü—‘˜$Ÿ,™,¬¯©¸d¿k¹kÔJˆØ×Ñ˜Ÿ™ +Ó.°·±¸s¿x¹xÈ
Ó?SÓ0TÕUùò @ùò
 @rl   c                 ó¦  — | j                  t        t        j                  | j                  t        j
                  d| j                  ¬«       | j                  t        t        j                  | j                  t        j
                  | j                  d¬«       t        j                  | j                  t        j
                  | j                  d¬«       y )Né   r%   )r&   ÚunknownF)r&   Ú	use_aesni)r9   r:   r   r   r   r(   r)   r;   s    r   Útest_unknown_parametersz CtrTests.test_unknown_parametersÈ   s‚   € Ø×Ñœ)¤S§W¡W¨d¯l©l¼C¿L¹LØ T§\¡\ð 	ô 	3à×Ñœ)¤S§W¡W¨d¯l©l¼C¿L¹LØ"&§,¡,¸ð 	ô 	;ô 	�‰�—‘œcŸl™l°D·L±LÈEÖRr   c                 óÎ   — dD ]`  }t        j                  | j                  t         j                  | j                  ¬«      } t        ||«      d«      }| j                  |d«       Œb y )N)r*   r+   r%   r   )r   r   r   r(   r)   Úgetattrr,   )r.   Úfuncr/   Úresults       r   Útest_null_encryption_decryptionz(CtrTests.test_null_encryption_decryptionÐ   sR   € Ø(ò 	*ˆDÜ—W‘W˜TŸ\™\¬3¯<©<ÀÇÁÔNˆFØ*”W˜V TÓ*¨3Ó/ˆFØ×Ñ˜V SÕ)ñ	*r   c                 ó´  — t        j                  | j                  t         j                  | j                  ¬«      }|j                  d«       | j                  t        |j                  d«       t        j                  | j                  t         j                  | j                  ¬«      }|j                  d«       | j                  t        |j
                  d«       y )Nr%   r   )	r   r   r   r(   r)   r*   r9   r:   r+   r_   s     r   Útest_either_encrypt_or_decryptz'CtrTests.test_either_encrypt_or_decryptÖ   s‚   € Ü—‘˜Ÿ™¤s§|¡|¸T¿\¹\ÔJˆØ�‰�sÔØ×Ñœ) V§^¡^°SÔ9ä—‘˜Ÿ™¤s§|¡|¸T¿\¹\ÔJˆØ�‰�sÔØ×Ñœ) V§^¡^°SÕ9r   c                 ó>  — t        j                  dt        d«      dz  ¬«      }d}t        j                  | j                  t        j
                  |¬«      }|j                  d|z  «       | j                  t        |j                  d«       t        j                  | j                  t        j
                  |¬«      }| j                  t        |j                  d|dz   z  «       t        j                  | j                  t        j
                  |¬«      }|j                  d|z  «       | j                  t        |j                  d«       t        j                  | j                  t        j
                  |¬«      }| j                  t        |j                  d|dz   z  «       y )	Nr   é	   é   r!   i   r%   ó   9é   )
r   r   r   r   r   r(   r*   r9   ÚOverflowErrorr+   )r.   r&   Ú	max_bytesr/   s       r   Útest_wrap_aroundzCtrTests.test_wrap_aroundß   s  € ä—+‘+˜a¬¨Q«°"©Ô5ˆØˆ	ä—‘˜Ÿ™¤s§|¡|¸WÔEˆØ�‰�t˜iÑ'Ô(Ø×Ñœ-¨¯©¸Ô>ä—‘˜Ÿ™¤s§|¡|¸WÔEˆØ×Ñœ-¨¯©¸ÀÈQÁÑ9OÔPä—‘˜Ÿ™¤s§|¡|¸WÔEˆØ�‰�t˜iÑ'Ô(Ø×Ñœ-¨¯©¸Ô>ä—‘˜Ÿ™¤s§|¡|¸WÔEˆØ×Ñœ-¨¯©¸ÀÈQÁÑ9OÕPr   c                 ól  — d}d}t        j                  | j                  t         j                  | j                  |¬«      }|j                  |«      }t        j                  | j                  t         j                  t        | j                  «      t        |«      ¬«      }|j                  t        |«      «      }| j                  ||«       | j                  |j                  |j                  «       t        j                  | j                  t         j                  | j                  |¬«      }|j                  |«      }t        j                  | j                  t         j                  t        | j                  «      t        |«      ¬«      }	|	j                  t        |«      «      }
| j                  ||
«       y )Ns   1111111111111111rU   rQ   )
r   r   r   r(   r   r*   Ú	bytearrayr,   r?   r+   )r.   r   ÚivrJ   Úref1rK   Úref2Úcipher3Úref3Úcipher4Úref4s              r   Útest_bytearrayzCtrTests.test_bytearrayò   s2  € ØˆØ&ˆô —'‘'˜$Ÿ,™,¬¯©Ø $§¡Ø(*ô,ˆð �‰˜tÓ$ˆä—'‘'˜$Ÿ,™,¬¯©Ü )¨$¯-©-Ó 8Ü(1°"«ô7ˆð �‰œy¨›Ó/ˆà×Ñ˜˜tÔ$Ø×Ñ˜Ÿ™¨¯©Ô6ô —'‘'˜$Ÿ,™,¬¯©Ø $§¡Ø(*ô,ˆð �‰˜tÓ$ˆä—'‘'˜$Ÿ,™,¬¯©Ü )¨$¯-©-Ó 8Ü(1°"«ô7ˆð �‰œy¨›Ó/ˆà×Ñ˜˜tÕ$r   c                 óâ   — t        j                  dt         j                  d¬«      }|j                  ddz  «      }t	        j                  |«      j                  «       }| j                  |d«       y )Ns    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAr   rD   ó   Bi@B Ú@96204fc470476561a3a8f3b6fe6d24be85c87510b638142d1d0fb90989f8a6a6)r   r   r(   r*   r   Ú	hexdigestr,   )r.   r/   r1   Údigests       r   Útest_very_long_datazCtrTests.test_very_long_data  sQ   € Ü—‘˜¤C§L¡L¸Ô<ˆØ�^‰^˜D 7™NÓ+ˆÜ—‘˜B“×)Ñ)Ó+ˆØ×Ñ˜Ð!cÕdr   c                 ó<  — d}t        j                  dt         j                  | j                  ¬«      }|j	                  |«      }t        d«      }t        j                  dt         j                  | j                  ¬«      }|j	                  ||¬«      }| j                  ||«       | j                  |d «       t        j                  dt         j                  | j                  ¬«      }|j                  ||¬«      }| j                  ||«       | j                  |d «       y ©Ns€   55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555ó   4444444444444444rD   é€   ©Úoutput)r   r   r(   r   r*   r„   r,   r+   )r.   r0   r/   r1   r˜   Úress         r   Útest_output_paramzCtrTests.test_output_param  sÐ   € àˆÜ—‘˜¤#§,¡,°d·m±mÔDˆØ�^‰^˜BÓˆä˜3“ˆÜ—‘˜¤#§,¡,°d·m±mÔDˆØ�n‰n˜R¨ˆnÓ/ˆØ×Ñ˜˜VÔ$Ø×Ñ˜˜dÔ#ä—‘˜¤#§,¡,°d·m±mÔDˆØ�n‰n˜R¨ˆnÓ/ˆØ×Ñ˜˜VÔ$Ø×Ñ˜˜dÕ#r   c                 ó  — d}t        j                  dt         j                  | j                  ¬«      }|j	                  |«      }t        t        d«      «      }t        j                  dt         j                  | j                  ¬«      }|j	                  ||¬«       | j                  ||«       t        j                  dt         j                  | j                  ¬«      }|j                  ||¬«       | j                  ||«       y r”   )	r   r   r(   r   r*   Ú
memoryviewr„   r,   r+   )r.   r0   r/   r1   r˜   s        r   Útest_output_param_memoryviewz%CtrTests.test_output_param_memoryview(  s±   € àˆÜ—‘˜¤#§,¡,°d·m±mÔDˆØ�^‰^˜BÓˆäœI c›NÓ+ˆÜ—‘˜¤#§,¡,°d·m±mÔDˆØ�‰�r &ˆÔ)Ø×Ñ˜˜VÔ$ä—‘˜¤#§,¡,°d·m±mÔDˆØ�‰�r &ˆÔ)Ø×Ñ˜˜VÕ$r   c                 óT  — d}d|z  }t        j                  dt         j                  | j                  ¬«      }|j	                  |«      }t        j                  dt         j                  | j                  ¬«      }| j                  t        |j                  |d|z  ¬«       t        j                  dt         j                  | j                  ¬«      }| j                  t        |j                  |d|z  ¬«       t        |dz
  «      }t        j                  dt         j                  | j                  ¬«      }| j                  t        |j                  ||¬«       t        j                  dt         j                  | j                  ¬«      }| j                  t        |j                  ||¬«       y )Nr–   ó   5r•   rD   ó   0r—   r   )
r   r   r(   r   r*   r9   r:   r+   r„   rV   )r.   ÚLEN_PTr0   r/   r1   Úshorter_outputs         r   Útest_output_param_negzCtrTests.test_output_param_neg7  s"  € Øˆà�F‰]ˆÜ—‘˜¤#§,¡,°d·m±mÔDˆØ�^‰^˜BÓˆä—‘˜¤#§,¡,°d·m±mÔDˆØ×Ñœ) V§^¡^°RÀÀvÁÐÔNä—‘˜¤#§,¡,°d·m±mÔDˆØ×Ñœ) V§^¡^°RÀÀvÁÐÔNä" 6¨A¡:Ó.ˆÜ—‘˜¤#§,¡,°d·m±mÔDˆØ×Ñœ* f§n¡n°bÀÐÔPÜ—‘˜¤#§,¡,°d·m±mÔDˆØ×Ñœ* f§n¡n°bÀÐÕPr   N)!Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r5   r)   r3   r6   r<   rB   rN   rS   rW   r[   r`   rb   rk   rn   rs   rx   rz   r‚   rŒ   r’   rš   r�   r£   © r   r   r   r   +   sÉ   „ á˜Y¨Ó+€GÙ˜Y¨Ó+€GÙ˜j¨!Ó,€HÙ˜j¨!Ó,€HØˆW�[‰[˜ HÔ-€FØˆg�k‰k˜" XÔ.€Gò"ò"òXò3òEò6Aò*Eò,4ò<ò=òVò
VòSò*ò:òQò&%ò>eò$ò"%óQr   r   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚSP800TestVectorszQClass exercising the CTR test vectors found in Section F.5
    of NIST SP 800-38Ac                 ó°  — d}d}d}t        j                  dt        d«      d¬«      }t        |«      }t        |«      }t        |«      }t        j                  |t        j                  |¬«      }| j                  |j                  |«      |«       t        j                  |t        j                  |¬«      }| j                  |j                  |«      |«       y )	NÚ€6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710Ú€874d6191b620e3261bef6864990db6ce9806f66b7970fdff8617187bb9fffdff5ae4df3edbd5d35e5b4f09020db03eab1e031dda2fbe03d1792170a0f3009ceeÚ 2b7e151628aed2a6abf7158809cf4f3cr   Úf0f1f2f3f4f5f6f7f8f9fafbfcfdéÿþ  ©Únbitsr"   rF   r%   ©r   r   r   r   r(   r,   r*   r+   ©r.   r'   Ú
ciphertextÚkeyr&   r/   s         r   Útest_aes_128zSP800TestVectors.test_aes_128O  s°   € ð;ˆ	ð;ˆ
ð ;ˆÜŸ™¨"Ü+4Ð5SÓ+TØ28ô:ˆô ˜‹nˆÜ˜iÓ(ˆ	Ü˜zÓ*ˆ
ä—‘˜œcŸl™l°GÔ<ˆØ×Ñ˜Ÿ™¨	Ó2°JÔ?Ü—‘˜œcŸl™l°GÔ<ˆØ×Ñ˜Ÿ™¨
Ó3°YÕ?r   c                 ó°  — d}d}d}t        j                  dt        d«      d¬«      }t        |«      }t        |«      }t        |«      }t        j                  |t        j                  |¬«      }| j                  |j                  |«      |«       t        j                  |t        j                  |¬«      }| j                  |j                  |«      |«       y )	Nr«   Ú€1abc932417521ca24f2b0459fe7e6e0b090339ec0aa6faefd5ccc2c6f4ce8e941e36b26bd1ebc670d1bd1d665620abf74f78a7f6d29809585a97daec58c6b050Ú08e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7br   r®   r¯   r°   r%   r²   r³   s         r   Útest_aes_192zSP800TestVectors.test_aes_192f  s±   € ð;ˆ	ð;ˆ
ð KˆÜŸ™¨"Ü+4Ð5SÓ+TØ28ô:ˆô ˜‹nˆÜ˜iÓ(ˆ	Ü˜zÓ*ˆ
ä—‘˜œcŸl™l°GÔ<ˆØ×Ñ˜Ÿ™¨	Ó2°JÔ?Ü—‘˜œcŸl™l°GÔ<ˆØ×Ñ˜Ÿ™¨
Ó3°YÕ?r   c                 ó°  — d}d}d}t        j                  dt        d«      d¬«      }t        |«      }t        |«      }t        |«      }t        j                  |t        j                  |¬«      }| j                  |j                  |«      |«       t        j                  |t        j                  |¬«      }| j                  |j                  |«      |«       y )	Nr«   Ú€601ec313775789a5b7a7f504bbf3d228f443e3ca4d62b59aca84e990cacaf5c52b0930daa23de94ce87017ba2d84988ddfc9c58db67aada613c2dd08457941a6Ú@603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4r   r®   r¯   r°   r%   r²   r³   s         r   Útest_aes_256zSP800TestVectors.test_aes_256}  s±   € ð;ˆ	ð;ˆ
ð [ˆÜŸ™¨"Ü+4Ð5SÓ+TØ28ô:ˆô ˜‹nˆÜ˜iÓ(ˆ	Ü˜zÓ*ˆ
ä—‘˜œcŸl™l°GÔ<ˆØ×Ñ˜Ÿ™¨	Ó2°JÔ?Ü—‘˜œcŸl™l°GÔ<ˆØ×Ñ˜Ÿ™¨
Ó3°YÕ?r   N)r¤   r¥   r¦   Ú__doc__r¶   rº   r¾   r§   r   r   r©   r©   K  s   „ ñò@ò.@ó.@r   r©   c                   óŽ   — e Zd ZdZg ZeD ].  Zej                  eD � ��cg c]  }t        |«      ‘Œ c}}} «       Œ0 d„ Zyc c}}} w )ÚRFC3686TestVectors)	)Ú 53696e676c6520626c6f636b206d7367Ú e4095d4fb7a7b3792d6175a3261311b8Ú ae6852f8121067cc4bf7a5765577f39eÚ000000300000000000000000)Ú@000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1fÚ@5104a106168a72d9790d41ee8edad388eb2e1efc46da57c8fce630df9141be28Ú 7e24067817fae0d743d6ce1f32539163Ú006cb6dbc0543b59da48d90b)ÚH000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223ÚHc1cf48a89f2ffdd9cf4652e9efdb72d74540a42bde6d7836d59a5ceaaef3105325b2072fÚ 7691be035e5020a8ac6e618529f9a0dcÚ00e0017b27777f3f4a1786f0)rÂ   Ú 4b55384fe259c9c84e7935a003cbe928Ú016af5b145fc9f579c175f93e3bfb0eed863d06ccfdb78515Ú0000004836733c147d6d93cb)rÆ   Ú@453243fc609b23327edfaafa7131cd9f8490701c5ad4a79cfc1fe0ff42f4fb00Ú07c5cb2401b3dc33c19e7340819e0f69c678c3db8e6f6a91aÚ0096b03b020c6eadc2cb500d)rÊ   ÚH96893fc55e5c722f540b7dd1ddf7e758d288bc95c69165884536c811662f2188abee0935Ú002bf391ee8ecb159b959617b0965279bf59b60a786d3e0feÚ0007bdfd5cbd60278dcc0912)rÂ   Ú 145ad01dbf824ec7560863dc71e3e0c0Ú@776beff2851db06f4c8a0542c8696f6c6a81af1eec96b4d37fc1d689e6c1c104Ú00000060db5672c97aa8f0b2)rÆ   Ú@f05e231b3894612c49ee000b804eb2a9b8306b508f839d6a5530831d9344af1cÚ@f6d66d6bd52d59bb0796365879eff886c66dd51a5b6a99744b50590c87a23884Ú00faac24c1585ef15a43d875)rÊ   ÚHeb6c52821d0bbbf7ce7594462aca4faab407df866569fd07f48cc0b583d6071f1ec0e6b8Ú@ff7a617ce69148e4f1726e2f43581de2aa62d9f805532edff1eed687fb54153dÚ001cc5b751a51d70a1c11148c                 ó  — | j                   D ]y  \  }}}}t        j                  d|¬«      }t        j                  |t        j                  |¬«      }|j                  |«      }| j                  t        |«      t        |«      «       Œ{ y )Nr    r!   r%   )Úbindatar   r   r   r(   r*   r,   r   )r.   r0   r1   rµ   r"   r&   r/   rw   s           r   ÚrunTestzRFC3686TestVectors.runTestÆ  sj   € Ø#'§<¡<ò 	;ÑˆB��C˜Ü—k‘k "¨VÔ4ˆGÜ—W‘W˜S¤#§,¡,¸Ô@ˆFØ—^‘^ BÓ'ˆFØ×ÑœW R›[¬'°&«/Õ:ñ		;r   N)	r¤   r¥   r¦   r   rá   ÚtvÚappendr   râ   )Ú.0ri   r   s   000r   rÁ   rÁ   ”  sH   „ ð%
€DðN €GØò 3ˆØ�‰¨b×1Ð1¨œ	 !�Ô1Õ2ð3ó;ùô 2s   ŸA rÁ   c                 ón   — g }|t        t        «      z  }|t        t        «      z  }|t        «       gz  }|S r8   )r   r   r©   rÁ   )ÚconfigÚtestss     r   Ú	get_testsré   Î  s<   € Ø€EØ	Œ_œXÓ&Ñ&€EØ	Œ_Ô-Ó.Ñ.€EØ	Ô!Ó#Ð%Ñ%€EØ€Lr   Ú__main__c                  ó<   — t        j                  t        «       «      S r8   )ÚunittestÚ	TestSuiteré   r§   r   r   ú<lambda>rî   ×  s   € ”H×&Ñ&¤y£{Ó3€ r   Úsuite)ÚdefaultTest)rì   Úbinasciir   r   ÚCrypto.SelfTest.st_commonr   ÚCrypto.Util.py3compatr   r   ÚCrypto.Cipherr   r	   ÚCrypto.Hashr
   r   ÚCrypto.Utilr   r   ÚTestCaser   r©   rÁ   ré   r¤   rï   Úmainr§   r   r   ú<module>rù      sŽ   ðó> ß 'å 5ß /ß #ß (Ý ò8ô]Qˆx× Ñ ô ]Qô@	F@�x×(Ñ(ô F@ôR7;˜×*Ñ*ô 7;ðt ó ð ˆzÒÙ3€EØ€H‡M�M˜gÖ&ð r   