Ë
    (üàgãM  ã                   óŒ  — d dl Z 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
 d dlmZ d dlmZ d dlmZ d	„ Z G d
„ dej$                  «      Z G d„ dej$                  «      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j8                  d¬«       yy)é    N)Ú	unhexlify)Úlist_test_cases)Úload_test_vectors_wycheproof)ÚtobytesÚbchr)ÚAES)ÚSHAKE128)Ústrxorc                 ó^   — 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_SIV.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d	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)ÚSivTestsÚkey_256é    Úkey_384é0   Úkey_512é@   Ú	nonce_128é   r   é€   c                 óœ  — | j                   | j                  | j                  fD ]¦  }t        j                  |t        j
                  | j                  ¬«      }t        dd«      }|j                  |«      \  }}t        j                  |t        j
                  | j                  ¬«      }|j                  ||«      }| j                  ||«       Œ¨ y )N©ÚnonceÚ	plaintexti@  )r   r   r   r   r   ÚMODE_SIVÚnonce_96r   Úencrypt_and_digestÚdecrypt_and_verifyÚassertEqual)ÚselfÚkeyÚcipherÚptÚctÚmacÚpt2s          r   Útest_loopback_128zSivTests.test_loopback_1289   sš   € Ø—<‘< §¡¨t¯|©|Ð;ò 	&ˆCÜ—W‘W˜S¤#§,¡,°d·m±mÔDˆFÜ ¨XÓ6ˆBØ×/Ñ/°Ó3‰GˆB�ä—W‘W˜S¤#§,¡,°d·m±mÔDˆFØ×+Ñ+¨B°Ó4ˆCØ×Ñ˜R Õ%ñ	&r   c                 óî  — t        j                  | j                  t         j                  «       t        j                  | j                  t         j                  | j                  «      }|j                  | j                  «      \  }}t        j                  | j                  t         j                  | j                  ¬«      }|j                  | j                  «      \  }}| j                  ||z   ||z   «       y ©Nr    )r   r   r   r#   r$   r%   r   r'   )r(   r*   Úct1Útag1Úct2Útag2s         r   Ú
test_noncezSivTests.test_nonceC   sœ   € ä�‰�—‘œcŸl™lÔ+ä—‘˜Ÿ™¤s§|¡|°T·]±]ÓCˆØ×-Ñ-¨d¯i©iÓ8‰	ˆˆTä—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×-Ñ-¨d¯i©iÓ8‰	ˆˆTØ×Ñ˜˜t™ S¨4¡ZÕ0r   c                 ó„   — | j                  t        t        j                  | j                  t        j
                  d¬«       y )NÚtest12345678r    )ÚassertRaisesÚ	TypeErrorr   r   r   r#   ©r(   s    r   Útest_nonce_must_be_bytesz!SivTests.test_nonce_must_be_bytesN   s,   € Ø×Ñœ)¤S§W¡W¨d¯l©l¼C¿L¹LØ /ð 	õ 	1r   c                 ó@  — | j                  t        t        j                  | j                  t        j
                  d¬«       t        dd«      D ]O  }t        j                  | j                  t        j
                  t        d«      |z  ¬«      }|j                  d«       ŒQ y )Nr   r    é   r   ó   )	r9   Ú
ValueErrorr   r   r   r#   Úranger   r%   )r(   Úxr*   s      r   Útest_nonce_lengthzSivTests.test_nonce_lengthR   ss   € à×Ñœ*¤c§g¡g¨t¯|©|¼S¿\¹\Ø #ð 	ô 	%ô �q˜#“ò 	/ˆAÜ—W‘W˜TŸ\™\¬3¯<©<¼tÀA»wÈ¹{ÔKˆFØ×%Ñ% gÕ.ñ	/r   c                 óÌ   — t        j                  | j                  t         j                  | j                  ¬«      }| j                  |j                  t         j                  «       y r1   )r   r   r   r#   r$   r'   Ú
block_size©r(   r*   s     r   Útest_block_size_128zSivTests.test_block_size_128[   s:   € Ü—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×Ñ˜×*Ñ*¬C¯N©NÕ;r   c                 óR  — t        j                  | j                  t         j                  | j                  ¬«      }| j                  |j                  | j                  «       | j                  t        t        j                  | j                  t         j                  «      d«      «       y )Nr    r!   )	r   r   r   r#   r$   r'   r!   ÚassertFalseÚhasattrrF   s     r   Útest_nonce_attributezSivTests.test_nonce_attribute_   sb   € Ü—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×Ñ˜Ÿ™ t§}¡}Ô5ð 	×Ñœ¤§¡¨¯©´s·|±|Ó!DÀgÓNÕOr   c                 ó¤  — | j                  t        t        j                  | j                  t        j
                  | j                  d«       | j                  t        t        j                  | j                  t        j
                  | j                  d¬«       t        j                  | j                  t        j
                  | j                  d¬«       y )Né   )r!   ÚunknownF)r!   Ú	use_aesni)r9   r:   r   r   r   r#   r$   r;   s    r   Útest_unknown_parametersz SivTests.test_unknown_parametersf   s€   € Ø×Ñœ)¤S§W¡W¨d¯l©l¼C¿L¹LØŸ-™-¨ô	,à×Ñœ)¤S§W¡W¨d¯l©l¼C¿L¹LØ $§¡°qð 	ô 	:ô
 	�‰�—‘œcŸl™l°$·-±-Øö	!r   c                 ó  — t        j                  | j                  t         j                  | j                  ¬«      }|j                  | j                  «       | j                  t        |j                  | j                  «       t        j                  | j                  t         j                  | j                  ¬«      }|j                  | j                  «       | j                  t        |j                  | j                  | j                  «       y r1   )r   r   r   r#   r$   r%   r   r9   r:   Údecryptr&   rF   s     r   Útest_encrypt_excludes_decryptz&SivTests.test_encrypt_excludes_decryptq   s¡   € Ü—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×!Ñ! $§)¡)Ô,Ø×Ñœ) V§^¡^°T·Y±YÔ?ä—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×!Ñ! $§)¡)Ô,Ø×Ñœ) V×%>Ñ%>ØŸ)™) T§Y¡Yõ	0r   c                 ór  — t        j                  | j                  t         j                  | j                  ¬«      }| j                  t        |j                  d«       t        j                  | j                  t         j                  | j                  ¬«      }| j                  t        |j                  dd«       y )Nr    ztest1234567890-*s   xxxx)	r   r   r   r#   r$   r9   r:   Úencryptr&   rF   s     r   Útest_data_must_be_bytesz SivTests.test_data_must_be_bytes{   sr   € Ü—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×Ñœ) V§^¡^Ð5HÔIä—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×Ñœ) V×%>Ñ%>Ø-¨wõ	8r   c                 óê   — t        j                  | j                  t         j                  | j                  ¬«      }|j                  | j                  «      \  }}| j                  t        |«      d«       y )Nr    é   )	r   r   r   r#   r$   r%   r   r'   Úlen)r(   r*   Ú_r-   s       r   Útest_mac_lenzSivTests.test_mac_lenƒ   sL   € Ü—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×*Ñ*¨4¯9©9Ó5‰ˆˆ3Ø×Ñœ˜S› 2Õ&r   c                 óŠ  — ddl m} t        j                  | j                  t        j
                  | j                  ¬«      }|j                  | j                  «      \  }} ||d«      }t        j                  | j                  t        j
                  | j                  ¬«      }| j                  t        |j                  ||«       y )Nr   )Ústrxor_cr    r>   )ÚCrypto.Util.strxorr]   r   r   r   r#   r$   r%   r   r9   r@   r&   )r(   r]   r*   r,   r-   Úinvalid_macs         r   Útest_invalid_maczSivTests.test_invalid_macˆ   s‚   € Ý/Ü—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×+Ñ+¨D¯I©IÓ6‰ˆˆCá˜s DÓ)ˆä—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×Ñœ* f×&?Ñ&?ÀØ%õ	'r   c                 ó€  — t        j                  | j                  t         j                  | j                  ¬«      }|j                  «       }| j                  |j                  «       t        |«      «       t        j                  | j                  t         j                  | j                  ¬«      }|j                  |«       y r1   )
r   r   r   r#   r$   Ú	hexdigestr'   Údigestr   Ú	hexverify)r(   r*   Úmac_hexs      r   Útest_hex_maczSivTests.test_hex_mac“   su   € Ü—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×"Ñ"Ó$ˆØ×Ñ˜Ÿ™›¬)°GÓ*<Ô=ä—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×Ñ˜Õ!r   c                 ól  — t        | j                  «      }t        | j                  «      }t        | j                  «      }t        | j                  «      }t	        j
                  | j                  t        j                  | j                  ¬«      }|j                  | j                  «       |j                  | j                  «      \  }}t	        j
                  |t        j                  |¬«      }d|d d d|d d |j                  |«       d|d d |j                  |«      \  }	}
| j                  ||	«       | j                  ||
«       | j                  |j                  |j                  «       t        | j                  «      }t        | j                  «      }t        | j                  «      }t        |«      }t        |«      }t	        j
                  |t        j                  |¬«      }d|d d d|d d |j                  |«       d|d d |j                  ||«      }| j                  | j                  |«       y ©Nr    s   ÿÿÿé   )Ú	bytearrayr   r$   r   r   r   r#   Úupdater%   r'   r!   r&   ©r(   r)   r!   r   ÚheaderÚcipher1r,   r   Úcipher2Úct_testÚtag_testÚct_baÚtag_baÚcipher3Úpt_tests                  r   Útest_bytearrayzSivTests.test_bytearray›   sË  € ô ˜Ÿ™Ó%ˆÜ˜$Ÿ-™-Ó(ˆÜ˜Ÿ™Ó#ˆÜ˜4Ÿ9™9Ó%ˆä—'‘'˜$Ÿ,™,ÜŸ,™,Ø $§¡ô/ˆð 	�‰�t—y‘yÔ!Ø×,Ñ,¨T¯Y©YÓ7‰ˆˆCä—'‘'˜#ÜŸ,™,Ø %ô'ˆð "ˆˆBˆQˆØ#ˆˆbˆqˆ	Ø�‰�vÔØ$ˆˆr�ˆ
Ø#×6Ñ6°tÓ<Ñˆ�à×Ñ˜˜WÔ%Ø×Ñ˜˜hÔ'Ø×Ñ˜Ÿ™¨¯©Ô6ô ˜Ÿ™Ó%ˆÜ˜$Ÿ-™-Ó(ˆÜ˜4Ÿ9™9Ó%ˆÜ˜"“ˆÜ˜3“ˆä—'‘'˜#ÜŸ,™,Ø %ô'ˆð "ˆˆBˆQˆØ#ˆˆbˆqˆ	Ø�‰�vÔØ$ˆˆr�ˆ
Ø×,Ñ,¨U°FÓ;ˆà×Ñ˜Ÿ™ GÕ,r   c                 ó  — t        t        | j                  «      «      }t        t        | j                  «      «      }t        t        | j                  «      «      }t        t        | j                  «      «      }t        j                  | j                  t
        j                  | j                  ¬«      }|j                  | j                  «       |j                  | j                  «      \  }}t        j                  |t
        j                  |¬«      }d|d d d|d d |j                  |«       d|d d |j                  |«      \  }	}
| j                  ||	«       | j                  ||
«       | j                  |j                  |j                  «       t        t        | j                  «      «      }t        t        | j                  «      «      }t        t        | j                  «      «      }t        t        |«      «      }t        t        |«      «      }t        j                  |t
        j                  |¬«      }d|d d d|d d |j                  |«       d|d d |j                  ||«      }| j                  | j                  |«       y rh   )Ú
memoryviewrj   r   r$   r   r   r   r#   rk   r%   r'   r!   r&   rl   s                  r   Útest_memoryviewzSivTests.test_memoryviewÈ   sø  € ô œ 4§<¡<Ó0Ó1ˆÜœ9 T§]¡]Ó3Ó4ˆÜœ) D§I¡IÓ.Ó/ˆÜœI d§i¡iÓ0Ó1ˆä—'‘'˜$Ÿ,™,ÜŸ,™,Ø $§¡ô/ˆð 	�‰�t—y‘yÔ!Ø×,Ñ,¨T¯Y©YÓ7‰ˆˆCä—'‘'˜#ÜŸ,™,Ø %ô'ˆð "ˆˆBˆQˆØ#ˆˆbˆqˆ	Ø�‰�vÔØ$ˆˆr�ˆ
Ø"×5Ñ5°dÓ;Ñˆ�à×Ñ˜˜WÔ%Ø×Ñ˜˜hÔ'Ø×Ñ˜Ÿ™¨¯©Ô6ô œ 4§<¡<Ó0Ó1ˆÜœ9 T§]¡]Ó3Ó4ˆÜœI d§i¡iÓ0Ó1ˆÜœ9 R›=Ó)ˆÜœI c›NÓ+ˆä—'‘'˜#ÜŸ,™,Ø %ô'ˆð "ˆˆBˆQˆØ#ˆˆbˆqˆ	Ø�‰�vÔØ$ˆˆr�ˆ
Ø×,Ñ,¨U°FÓ;ˆà×Ñ˜Ÿ™ GÕ,r   c                 óª  — d}t        j                  | j                  t         j                  | j                  ¬«      }|j                  |«      \  }}t        d«      }t        j                  | j                  t         j                  | j                  ¬«      }|j                  ||¬«      \  }}| j                  ||«       | j                  |d «       | j                  ||«       t        j                  | j                  t         j                  | j                  ¬«      }|j                  |||¬«      }| j                  ||«       | j                  |d «       y ©Ns€   55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555r    r   ©Úoutput)	r   r   r   r#   r$   r%   rj   r'   r&   )r(   r+   r*   r,   r   r}   ÚresÚtag_outs           r   Útest_output_paramzSivTests.test_output_paramõ   sþ   € àˆÜ—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×+Ñ+¨BÓ/‰ˆˆCä˜3“ˆÜ—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×0Ñ0°¸FÐ0ÓC‰ˆˆWØ×Ñ˜˜VÔ$Ø×Ñ˜˜dÔ#Ø×Ñ˜˜gÔ&ä—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×'Ñ'¨¨C¸Ð'Ó?ˆØ×Ñ˜˜VÔ$Ø×Ñ˜˜dÕ#r   c                 óJ  — d}t        j                  | j                  t         j                  | j                  ¬«      }|j                  |«      \  }}t        t        d«      «      }t        j                  | j                  t         j                  | j                  ¬«      }|j                  ||¬«       | j                  ||«       t        j                  | j                  t         j                  | j                  ¬«      }|j                  |||¬«       | j                  ||«       y r{   )
r   r   r   r#   r$   r%   rx   rj   r'   r&   )r(   r+   r*   r,   r   r}   s         r   Útest_output_param_memoryviewz%SivTests.test_output_param_memoryview  sË   € àˆÜ—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×+Ñ+¨BÓ/‰ˆˆCäœI c›NÓ+ˆÜ—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×!Ñ! "¨VÐ!Ô4Ø×Ñ˜˜VÔ$ä—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×!Ñ! " c°&Ð!Ô9Ø×Ñ˜˜VÕ$r   c                 óÂ  — d}d|z  }t        j                  | j                  t         j                  | j                  ¬«      }|j                  |«      \  }}t        j                  | j                  t         j                  | j                  ¬«      }| j                  t        |j
                  |d|z  ¬«       t        j                  | j                  t         j                  | j                  ¬«      }| j                  t        |j                  ||d|z  ¬«       t        |dz
  «      }t        j                  | j                  t         j                  | j                  ¬«      }| j                  t        |j
                  ||¬«       t        j                  | j                  t         j                  | j                  ¬«      }| j                  t        |j                  |||¬«       y )Nr   ó   5r    ó   0r|   r>   )r   r   r   r#   r$   r%   r9   r:   r&   rj   r@   )r(   ÚLEN_PTr+   r*   r,   r   Úshorter_outputs          r   Útest_output_param_negzSivTests.test_output_param_neg  sM  € Øˆà�F‰]ˆÜ—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×+Ñ+¨BÓ/‰ˆˆCä—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×Ñœ) V×%>Ñ%>ÀÈ4ÐRXÉ=ÐÔYä—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×Ñœ) V×%>Ñ%>ÀÀCÐPTÐW]ÑP]ÐÔ^ä" 6¨A¡:Ó.ˆÜ—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×Ñœ* f×&?Ñ&?ÀÈNÐÔ[Ü—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×Ñœ* f×&?Ñ&?ÀÀSÐQ_ÐÕ`r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r$   r   r/   r6   r<   rC   rG   rK   rP   rS   rV   r[   r`   rf   rv   ry   r€   r‚   rˆ   © r   r   r   r   1   s—   „ á˜Y¨Ó+€GÙ˜Y¨Ó+€GÙ˜Y¨Ó+€GÙ˜k¨2Ó.€HÙ˜& #Ó&€Dò&ò	1ò1ò/ò<òPò	!ò0ò8ò'ò
	'ò"ò+-òZ+-òZ$ò$%óar   r   c                   óx   — e Zd Z edd«      Z edd«      Z edd«      Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zy)ÚSivFSMTestsr   r   r$   r   r   r   c                 óº   — t        j                  | j                  t         j                  | j                  ¬«      }| j                  t        |j                  d«       y ©Nr    s   xxx)r   r   r   r#   r$   r9   r:   rU   rF   s     r   Útest_invalid_init_encryptz%SivFSMTests.test_invalid_init_encrypt0  ó9   € ä—‘˜Ÿ™¤s§|¡|Ø#Ÿ}™}ô.ˆà×Ñœ) V§^¡^°VÕ<r   c                 óº   — t        j                  | j                  t         j                  | j                  ¬«      }| j                  t        |j                  d«       y r�   )r   r   r   r#   r$   r9   r:   rR   rF   s     r   Útest_invalid_init_decryptz%SivFSMTests.test_invalid_init_decrypt6  r’   r   c                 óš  — t        j                  | j                  t         j                  | j                  ¬«      }|j                  | j                  «       |j                  «       }t        j                  | j                  t         j                  | j                  ¬«      }|j                  | j                  «       |j                  |«       y r1   )	r   r   r   r#   r$   rk   r   rc   Úverify©r(   r*   r-   s      r   Ú$test_valid_init_update_digest_verifyz0SivFSMTests.test_valid_init_update_digest_verify<  s   € ô —‘˜Ÿ™¤s§|¡|Ø#Ÿ}™}ô.ˆà�‰�d—i‘iÔ Ø�m‰m‹oˆô —‘˜Ÿ™¤s§|¡|Ø#Ÿ}™}ô.ˆà�‰�d—i‘iÔ Ø�‰�cÕr   c                 ó˜   — t        j                  | j                  t         j                  | j                  ¬«      }|j                  «        y r1   )r   r   r   r#   r$   rc   rF   s     r   Útest_valid_init_digestz"SivFSMTests.test_valid_init_digestJ  s)   € ä—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ�‰�r   c                 ó.  — t        j                  | j                  t         j                  | j                  ¬«      }|j                  «       }t        j                  | j                  t         j                  | j                  ¬«      }|j                  |«       y r1   )r   r   r   r#   r$   rc   r–   r—   s      r   Útest_valid_init_verifyz"SivFSMTests.test_valid_init_verifyO  sU   € ä—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ�m‰m‹oˆä—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ�‰�cÕr   c                 ó  — t        j                  | j                  t         j                  | j                  ¬«      }|j                  | j                  «       |j                  «       }t        d«      D ]"  }| j                  ||j                  «       «       Œ$ t        j                  | j                  t         j                  | j                  ¬«      }|j                  | j                  «       t        d«      D ]  }|j                  |«       Œ y )Nr    é   é   )r   r   r   r#   r$   rk   r   rc   rA   r'   r–   )r(   r*   Ú	first_macrB   s       r   Ú$test_valid_multiple_digest_or_verifyz0SivFSMTests.test_valid_multiple_digest_or_verifyW  s³   € ä—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ�‰�d—i‘iÔ Ø—M‘M“Oˆ	Ü�q“ò 	9ˆAØ×Ñ˜Y¨¯©«Õ8ð	9ô —‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ�‰�d—i‘iÔ Ü�q“ò 	%ˆAØ�M‰M˜)Õ$ñ	%r   c                 óð  — t        j                  | j                  t         j                  | j                  ¬«      }|j                  | j                  «       |j                  | j                  «      \  }}t        j                  | j                  t         j                  | j                  ¬«      }|j                  | j                  «       |j                  ||«      }| j                  | j                  |«       y r1   )
r   r   r   r#   r$   rk   r   r%   r&   r'   )r(   r*   r,   r-   r+   s        r   Ú0test_valid_encrypt_and_digest_decrypt_and_verifyz<SivFSMTests.test_valid_encrypt_and_digest_decrypt_and_verifye  sž   € ä—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ�‰�d—i‘iÔ Ø×+Ñ+¨D¯I©IÓ6‰ˆˆCô —‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ�‰�d—i‘iÔ Ø×&Ñ& r¨3Ó/ˆØ×Ñ˜Ÿ™ BÕ'r   c                 óö   — t        j                  | j                  t         j                  | j                  ¬«      }|j                  | j                  «      \  }}| j                  t        |j
                  d«       y )Nr    r   )	r   r   r   r#   r$   r%   r   r9   r:   ©r(   r*   r,   r   s       r   Ú(test_invalid_multiple_encrypt_and_digestz4SivFSMTests.test_invalid_multiple_encrypt_and_digestq  sP   € Ü—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×+Ñ+¨D¯I©IÓ6‰ˆˆCØ×Ñœ) V×%>Ñ%>ÀÕDr   c                 ó�  — t        j                  | j                  t         j                  | j                  ¬«      }|j                  | j                  «      \  }}t        j                  | j                  t         j                  | j                  ¬«      }|j                  ||«       | j                  t        |j                  ||«       y r1   )
r   r   r   r#   r$   r%   r   r&   r9   r:   r¥   s       r   Ú(test_invalid_multiple_decrypt_and_verifyz4SivFSMTests.test_invalid_multiple_decrypt_and_verifyv  s€   € Ü—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×+Ñ+¨D¯I©IÓ6‰ˆˆCä—‘˜Ÿ™¤s§|¡|¸4¿=¹=ÔIˆØ×!Ñ! " cÔ*Ø×Ñœ) V×%>Ñ%>ÀÀCÕHr   N)r‰   rŠ   r‹   r   r   r$   r   r‘   r”   r˜   rš   rœ   r¡   r£   r¦   r¨   rŒ   r   r   rŽ   rŽ   *  sU   „ á˜Y¨Ó+€GÙ˜j¨"Ó-€HÙ˜& #Ó&€Dò=ò=òòò
ò%ò
(òEó
Ir   rŽ   c                 óè   — | d   j                  d«      D �cg c]  }t        |«      ‘Œ c}g}|| dd D �cg c]  }t        |«      ‘Œ c}z  }| d   rt        | d   «      }nd }||gz  }|S c c}w c c}w )Nr   ú-r>   rŸ   )Úsplitr   )ÚtvrB   Únew_tvr!   s       r   Ú	transformr®     sx   € Ø%'¨¡U§[¡[°Ó%5Ö6 Œy˜�|Ò6Ð7€FØ
 b¨¨1 gÖ. ”	˜!•Ò.Ñ.€FØ	ˆ!‚uÜ˜"˜Q™%Ó ‰àˆØ
�ˆiÑ€FØ€Mùò 7ùÚ.s
   —A*µA/c                   óf   — e Zd ZdZddgZeD � ��cg c]  }t        |«      ‘Œ c}}} Zd„ Zyc c}}} w )ÚTestVectorsz6Class exercising the SIV test vectors found in RFC5297)Ú0101112131415161718191a1b1c1d1e1f2021222324252627Ú112233445566778899aabbccddeeÚ40c02b9690c4dc04daef7f6afe5cÚ 85632d07c6e8f37f950acd320a2ecc93Ú@fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0f0f1f2f3f4f5f6f7f8f9fafbfcfdfeffN)ze00112233445566778899aabbccddeeffdeaddadadeaddadaffeeddccbbaa99887766554433221100-102030405060708090a0Ú^7468697320697320736f6d6520706c61696e7465787420746f20656e6372797074207573696e67205349562d414553Ú^cb900f2fddbe404326601965c889bf17dba77ceb094fa663b7a3f748ba8af829ea64ad544a272e9c485b62a3fd5c0dÚ 7bdb6e3b432667eb06f4d14bff2fbd0fÚ@7f7e7d7c7b7a79787776757473727170404142434445464748494a4b4c4d4e4fÚ 09f911029d74e35bd84156c5635688c0c                 óä  — | j                   D ]á  \  }}}}}}t        j                  |t        j                  |¬«      }|D ]  }|j	                  |«       Œ |j                  |«      \  }	}
| j                  ||	«       | j                  ||
«       t        j                  |t        j                  |¬«      }|D ]  }|j	                  |«       Œ |j                  ||«      }| j                  ||«       Œã y r1   )Útest_vectorsr   r   r#   rk   r%   r'   r&   )r(   Ú
assoc_datar+   r,   r-   r)   r!   r*   rB   r4   Úmac2r.   s               r   ÚrunTestzTestVectors.runTest°  sà   € Ø37×3DÑ3Dò 	&Ñ/ˆJ˜˜B  S¨%ô —W‘W˜S¤#§,¡,°eÔ<ˆFØò !�Ø—‘˜aÕ ð!à×1Ñ1°"Ó5‰IˆC�Ø×Ñ˜R Ô%Ø×Ñ˜S $Ô'ô —W‘W˜S¤#§,¡,°eÔ<ˆFØò !�Ø—‘˜aÕ ð!à×+Ñ+¨B°Ó4ˆCØ×Ñ˜R Õ%ñ	&r   N)r‰   rŠ   r‹   Ú__doc__Útest_vectors_hexr®   r¼   r¿   )Ú.0r¬   r®   s   000r   r°   r°   Š  s;   „ Ù@ðð
ðÐð, .>×?Ð? r”Y˜r•]Ô?€Ló&ùô @s   ‘,r°   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestVectorsWycheproofc                 óP   — t         j                  j                  | «       d| _        y ©NÚNone©ÚunittestÚTestCaseÚ__init__Ú_idr;   s    r   rË   zTestVectorsWycheproof.__init__Å  ó   € Ü×Ñ×"Ñ" 4Ô(Øˆ�r   c                 ó(   — t        ddd«      | _        y )N©ÚCipherÚ
wycheproofzaes_siv_cmac_test.jsonzWycheproof AES SIV©r   r¬   r;   s    r   ÚsetUpzTestVectorsWycheproof.setUpÉ  s   € Ü.Ð/GØ/GØ/CóEˆ�r   c                 ó   — | j                   S ©N©rÌ   r;   s    r   ÚshortDescriptionz&TestVectorsWycheproof.shortDescriptionÎ  ó   € Ø�x‰xˆr   c                 ód  — dt        |j                  «      z   | _        t        j                  |j
                  t        j                  «      }|j                  |j                  «       |j                  |j                  «      \  }}|j                  r | j                  ||z   |j                  «       y y )Nz!Wycheproof Encrypt AES-SIV Test #)ÚstrÚidrÌ   r   r   r)   r#   rk   Úaadr%   ÚmsgÚvalidr'   r,   ©r(   r¬   r*   r,   r   s        r   Útest_encryptz"TestVectorsWycheproof.test_encryptÑ  sz   € Ø6¼¸R¿U¹U»ÑCˆŒä—‘˜Ÿ™¤§¡Ó.ˆØ�‰�b—f‘fÔØ×+Ñ+¨B¯F©FÓ3‰ˆˆCØ�8Š8Ø×Ñ˜S 2™X r§u¡uÕ-ð r   c                 ó¸  — dt        |j                  «      z   | _        t        j                  |j
                  t        j                  «      }|j                  |j                  «       	 |j                  |j                  dd  |j                  d d «      }|j                  sJ ‚| j                  ||j                  «       y # t        $ r |j                  rJ ‚Y y w xY w)Nz!Wycheproof Decrypt AES_SIV Test #rX   )rÚ   rÛ   rÌ   r   r   r)   r#   rk   rÜ   r&   r,   rÞ   r'   rÝ   r@   ©r(   r¬   r*   r+   s       r   Útest_decryptz"TestVectorsWycheproof.test_decryptÚ  s©   € Ø6¼¸R¿U¹U»ÑCˆŒä—‘˜Ÿ™¤§¡Ó.ˆØ�‰�b—f‘fÔð	)Ø×*Ñ*¨2¯5©5°°¨:°r·u±u¸S¸b°zÓBˆBð —8’8ˆO�8Ø×Ñ˜R §¡Õ(øô	 ò 	 Ø—x’xÐ�<‘xð	 ús   Á(,B? Â?CÃCc                 ój   — | j                   D ]$  }| j                  |«       | j                  |«       Œ& y rÕ   ©r¬   rà   rã   ©r(   r¬   s     r   r¿   zTestVectorsWycheproof.runTestç  ó1   € à—'‘'ò 	"ˆBØ×Ñ˜bÔ!Ø×Ñ˜bÕ!ñ	"r   N©	r‰   rŠ   r‹   rË   rÓ   r×   rà   rã   r¿   rŒ   r   r   rÄ   rÄ   Ã  s!   „ òòEò
ò.ò)ó"r   rÄ   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestVectorsWycheproof2c                 óP   — t         j                  j                  | «       d| _        y rÆ   rÈ   r;   s    r   rË   zTestVectorsWycheproof2.__init__ð  rÍ   r   c                 ó(   — t        ddd«      | _        y )NrÏ   zaead_aes_siv_cmac_test.jsonzWycheproof AEAD SIVrÒ   r;   s    r   rÓ   zTestVectorsWycheproof2.setUpô  s   € Ü.Ð/GØ/LØ/DóFˆ�r   c                 ó   — | j                   S rÕ   rÖ   r;   s    r   r×   z'TestVectorsWycheproof2.shortDescriptionù  rØ   r   c                 ó®  — dt        |j                  «      z   | _        t        j                  |j
                  t        j                  |j                  ¬«      }|j                  |j                  «       |j                  |j                  «      \  }}|j                  r9| j                  ||j                  «       | j                  ||j                  «       y y )Nz&Wycheproof Encrypt AEAD-AES-SIV Test #r    )rÚ   rÛ   rÌ   r   r   r)   r#   Úivrk   rÜ   r%   rÝ   rÞ   r'   r,   r   rß   s        r   rà   z#TestVectorsWycheproof2.test_encryptü  s�   € Ø;¼cÀ"Ç%Á%»jÑHˆŒä—‘˜Ÿ™¤§¡°R·U±UÔ;ˆØ�‰�b—f‘fÔØ×+Ñ+¨B¯F©FÓ3‰ˆˆCØ�8Š8Ø×Ñ˜R §¡Ô'Ø×Ñ˜S "§&¡&Õ)ð r   c                 óÄ  — dt        |j                  «      z   | _        t        j                  |j
                  t        j                  |j                  ¬«      }|j                  |j                  «       	 |j                  |j                  |j                  «      }|j                  sJ ‚| j                  ||j                  «       y # t         $ r |j                  rJ ‚Y y w xY w)Nz&Wycheproof Decrypt AEAD-AES-SIV Test #r    )rÚ   rÛ   rÌ   r   r   r)   r#   rï   rk   rÜ   r&   r,   r   rÞ   r'   rÝ   r@   râ   s       r   rã   z#TestVectorsWycheproof2.test_decrypt  s£   € Ø;¼cÀ"Ç%Á%»jÑHˆŒä—‘˜Ÿ™¤§¡°R·U±UÔ;ˆØ�‰�b—f‘fÔð	)Ø×*Ñ*¨2¯5©5°"·&±&Ó9ˆBð —8’8ˆO�8Ø×Ñ˜R §¡Õ(øô	 ò 	 Ø—x’xÐ�<‘xð	 ús   Á4&C ÃCÃCc                 ój   — | j                   D ]$  }| j                  |«       | j                  |«       Œ& y rÕ   rå   ræ   s     r   r¿   zTestVectorsWycheproof2.runTest  rç   r   Nrè   rŒ   r   r   rê   rê   î  s!   „ òòFò
ò*ò)ó"r   rê   c                 óÈ   — | j                  d«      }g }|t        t        «      z  }|t        t        «      z  }|t	        «       gz  }|t        «       gz  }|t        «       gz  }|S )NÚwycheproof_warnings)Úgetr   r   rŽ   r°   rÄ   rê   )Úconfigró   Útestss      r   Ú	get_testsr÷     sk   € Ø Ÿ*™*Ð%:Ó;Ðà€EØ	Œ_œXÓ&Ñ&€EØ	Œ_œ[Ó)Ñ)€EØ	Œ{‹}ÐÑ€EØ	Ô$Ó&Ð(Ñ(€EØ	Ô%Ó'Ð)Ñ)€EØ€Lr   Ú__main__c                  ó<   — t        j                  t        «       «      S rÕ   )rÉ   Ú	TestSuiter÷   rŒ   r   r   ú<lambda>rû   '  s   € ”H×&Ñ&¤y£{Ó3€ r   Úsuite)ÚdefaultTest)ÚjsonrÉ   Úbinasciir   ÚCrypto.SelfTest.st_commonr   ÚCrypto.SelfTest.loaderr   ÚCrypto.Util.py3compatr   r   ÚCrypto.Cipherr   ÚCrypto.Hashr	   r^   r
   r   rÊ   r   rŽ   r®   r°   rÄ   rê   r÷   r‰   rü   ÚmainrŒ   r   r   ú<module>r     s¿   ðó> Û Ý å 5Ý ?ç /Ý Ý  å %ò8ôvaˆx× Ñ ô vaôrRI�(×#Ñ#ô RIòjô6&�(×#Ñ#ô 6&ôr("˜H×-Ñ-ô ("ôV)"˜X×.Ñ.ô )"ðX ó 	ð ˆzÒÙ3€EØ€H‡M�M˜gÖ&ð r   