403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/Cryptodome/SelfTest/Cipher/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/Cryptodome/SelfTest/Cipher/__pycache__/test_GCM.cpython-311.pyc
�

8�tcK�����ddlmZddlZddlmZddlmZddlmZm	Z	ddl
mZmZddl
mZddlmZmZdd	lmZd
�ZGd�dej��ZGd
�dej��ZGd�dej��ZGd�dej��ZGd�dej��ZGd�dej��Zeddddd�i��pgZeeddddd�i��pgz
Zee��D]7\ZZe ee!��r�efd�Z"e#ed eze"��e#ed eze"���8Gd!�d"ej��Z$Gd#�d$ej��Z%ifd%�Z&e'd&krd'�Z(ej)d(�)��dSdS)*�)�print_functionN��	unhexlify)�list_test_cases)�load_test_vectors�load_test_vectors_wycheproof)�tobytes�bchr)�AES)�SHAKE128�SHA256)�strxorc�l�tjt|������|��S)N)�data)r�newr	�read)�tag�lengths  �E/usr/lib/python3/dist-packages/Cryptodome/SelfTest/Cipher/test_GCM.py�get_tag_randomr.s)���<�W�S�\�\�*�*�*�/�/��7�7�7�c���eZdZedd��Zedd��Zedd��Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�GcmTests�key_128��	nonce_128��data_128c�R�tj|jtj|j���}tdd��}|�|��}tj|jtj|j���}|�|��}|�||��dS)N��nonce�	plaintexti@)	rrr�MODE_GCM�nonce_96r�encrypt�decrypt�assertEqual)�self�cipher�pt�ct�pt2s     r�test_loopback_128zGcmTests.test_loopback_1288s�������s�|�4�=�I�I�I��
�K��
2�
2��
�^�^�B�
�
������s�|�4�=�I�I�I���n�n�R� � ������S�!�!�!�!�!rc��tj|jtj��tj|jtj|j��}|�|j��}tj|jtj|j���}|�||�|j����dS�Nr )rrrr#r$r%r�assertEquals)r(r)r+s   r�
test_noncezGcmTests.test_nonceAs�������c�l�+�+�+�����s�|�T�]�C�C��
�^�^�D�M�
*�
*������s�|�4�=�I�I�I�����"�f�n�n�T�]�;�;�<�<�<�<�<rc�v�|�ttj|jtjd���dS)N�test12345678r )�assertRaises�	TypeErrorrrrr#�r(s r�test_nonce_must_be_bytesz!GcmTests.test_nonce_must_be_bytesKs:�����)�S�W�d�l�C�L� /�	�	1�	1�	1�	1�	1rc�L�|�ttj|jtjd���t
dd��D]Z}tj|jtjtd��|z���}|�td�����[dS)Nrr ��)	r4�
ValueErrorrrrr#�ranger
r%)r(�xr)s   r�test_nonce_lengthzGcmTests.test_nonce_lengthOs������*�c�g�t�|�S�\� #�	�	%�	%�	%��q�#���	$�	$�A��W�T�\�3�<�t�A�w�w��{�K�K�K�F��N�N�4��7�7�#�#�#�#�	$�	$rc��tj|jtj|j���}|�|jtj��dSr/)rrrr#r$r'�
block_size�r(r)s  r�test_block_size_128zGcmTests.test_block_size_128Xs?������s�|�4�=�I�I�I������*�C�N�;�;�;�;�;rc��tj|jtj|j���}|�|j|j��tj|jtj��j}tj|jtj��j}|�t|��d��|�||��dS)Nr r)	rrrr#r$r'r!�len�assertNotEqual)r(r)�nonce1�nonce2s    r�test_nonce_attributezGcmTests.test_nonce_attribute\s�������s�|�4�=�I�I�I�������t�}�5�5�5�����s�|�4�4�:������s�|�4�4�:������V���b�)�)�)����F�F�+�+�+�+�+rc�T�|�ttj|jtj|jd��|�ttj|jtj|jd���tj|jtj|jd���dS)N�)r!�unknownF)r!�	use_aesni)r4r5rrrr#r$r6s r�test_unknown_parametersz GcmTests.test_unknown_parametersfs������)�S�W�d�l�C�L��-��	,�	,�	,����)�S�W�d�l�C�L� $�
�q�	�	:�	:�	:�
	����c�l�$�-��	!�	!�	!�	!�	!�	!rc���dD]\}tj|jtj|j���}t||��d��}|�|d���]dS)N�r%r&r r)rrrr#r$�getattrr')r(�funcr)�results    r�test_null_encryption_decryptionz(GcmTests.test_null_encryption_decryptionqsi��(�	*�	*�D��W�T�\�3�<�t�}�M�M�M�F�*�W�V�T�*�*�3�/�/�F����V�S�)�)�)�)�	*�	*rc��tj|jtj|j���}|�d��|�t|jd��tj|jtj|j���}|�d��|�t|jd��dS)Nr r)	rrrr#r$r%r4r5r&rAs  r�test_either_encrypt_or_decryptz'GcmTests.test_either_encrypt_or_decryptws�������s�|�4�=�I�I�I�����s�������)�V�^�S�9�9�9�����s�|�4�=�I�I�I�����s�������)�V�^�S�9�9�9�9�9rc�6�tj|jtj|j���}|�t|jd��tj|jtj|j���}|�t|jd��dS)Nr ztest1234567890-*)	rrrr#r$r4r5r%r&rAs  r�test_data_must_be_bytesz GcmTests.test_data_must_be_bytes�sv������s�|�4�=�I�I�I�����)�V�^�5H�I�I�I�����s�|�4�=�I�I�I�����)�V�^�5H�I�I�I�I�Irc���|�ttj|jtj|jd���|�ttj|jtj|jd���tdd��D]n}tj|jtj|j|���}|�|j	��\}}|�
t|��|���otj|jtj|j���}|�|j	��\}}|�
t|��d��dS)N�)r!�mac_len��r r)r4r;rrrr#r$r<�encrypt_and_digestrr'rD)r(rZr)�_�macs     r�test_mac_lenzGcmTests.test_mac_len�s7�����*�c�g�t�|�S�\� $�
�q�	�	:�	:�	:����*�c�g�t�|�S�\� $�
�t�	�	=�	=�	=��Q��'�'�	0�	0�G��W�T�\�3�<�t�}�%,�.�.�.�F��.�.�t�}�=�=�F�A�s����S��X�X�w�/�/�/�/�����s�|�4�=�I�I�I���*�*�4�=�9�9���3�����S���2�&�&�&�&�&rc�T�ddlm}tj|jtj|j���}|�|j��\}}||d��}tj|jtj|j���}|�	t|j||��dS)Nr)�strxor_cr r9)�Cryptodome.Util.strxorrbrrrr#r$r]rr4r;�decrypt_and_verify)r(rbr)r+r_�invalid_macs      r�test_invalid_maczGcmTests.test_invalid_mac�s���3�3�3�3�3�3�����s�|�4�=�I�I�I���+�+�D�M�:�:���C��h�s�D�)�)������s�|�4�=�I�I�I�����*�f�&?��%�	'�	'�	'�	'�	'rc�n�tj|jtj|j���}|���}|�|���t|����tj|jtj|j���}|�	|��dSr/)
rrrr#r$�	hexdigestr'�digestr�	hexverify)r(r)�mac_hexs   r�test_hex_maczGcmTests.test_hex_mac�s�������s�|�4�=�I�I�I���"�"�$�$����������)�G�*<�*<�=�=�=�����s�|�4�=�I�I�I������!�!�!�!�!rc���tdd��}tdd��}tj|jtj|j���}|�|��|�|��\}}d�}dD]�}tj|jtj|j���}|||��D]}|�|���d}	|||��D]}|	|�|��z
}	�|�	||	��|�
|����dD]�}tj|jtj|j���}|||��D]}|�|���d}
|||��D]}|
|�|��z
}
�|�	||
��|�|�
��|����dS)Nzauthenticated data�r"r c�\�����fd�tdt������D��S)Nc�*��g|]}�||�z���S�rq)�.0�i�chunk_lengthrs  ��r�
<listcomp>zBGcmTests.test_message_chunks.<locals>.break_up.<locals>.<listcomp>�s3���#�#�#�q�D��1�\�>�)�*�#�#�#rr)r<rD)rrts``r�break_upz.GcmTests.test_message_chunks.<locals>.break_up�sJ����#�#�#�#�#�E�!�S��Y�Y� �5"�5"�#�#�#�
#r)
r9�rYrJ�
�
r�(�Pr:r)rrrrr#r$�updater]r&r'�verifyr%r0ri)r(�	auth_datar"r)�
ciphertext�ref_macrvrt�chunkr,�ct2s           r�test_message_chunkszGcmTests.test_message_chunks�s��#�#7��=�=�	�"�;��4�4�	�����s�|�4�=�I�I�I���
�
�i� � � �$�7�7�	�B�B��
�G�	#�	#�	#�
@�
	#�
	#�L��W�T�\�3�<�t�}�M�M�M�F�!��)�\�:�:�
%�
%���
�
�e�$�$�$�$��C�!��*�l�;�;�
-�
-���v�~�~�e�,�,�,������Y��,�,�,��M�M�'�"�"�"�"�@�
	8�
	8�L��W�T�\�3�<�t�}�M�M�M�F�!��)�\�:�:�
%�
%���
�
�e�$�$�$�$��C�!��)�\�:�:�
-�
-���v�~�~�e�,�,�,������Z��-�-�-����f�m�m�o�o�w�7�7�7�7�
	8�
	8rc��t|j��}t|j��}t|j��}t|j��}t	j|jtj|j���}|�|j��|�|j��}|�	��}t	j|tj|���}d|dd�<d|dd�<|�|��d|dd�<|�|��}	d|dd�<|�	��}
|�
||	��|�
||
��|�
|j|j��t|j��}t|j��}t|j��}~t	j|tj|���}d|dd�<d|dd�<|�|��d|dd�<|�t|	��t|
����}|�
|j|��dS�Nr s���rY)
�	bytearrayrr$rrrr#r|r%rir'r!rd)
r(�key_ba�nonce_ba�	header_ba�data_ba�cipher1r+r�cipher2�ct_test�tag_test�cipher4�pt_tests
             r�test_bytearrayzGcmTests.test_bytearray�s:���4�<�(�(���T�]�+�+���d�m�,�,�	��D�M�*�*���'�$�,��,� $�
�/�/�/��	���t�}�%�%�%�
�_�_�T�]�
+�
+���n�n�����'�&��,� (�*�*�*��%��r��r�
�&���!������y�!�!�!�'�	�"�1�"�
��/�/�'�*�*��%�������>�>�#�#������W�%�%�%�����h�'�'�'�������
�6�6�6��4�<�(�(���T�]�+�+���d�m�,�,�	���'�&��,� (�*�*�*��%��r��r�
�&���!������y�!�!�!�'�	�"�1�"�
��,�,�Y�w�-?�-?��8�AT�AT�U�U��������0�0�0�0�0rc�v�tt|j����}tt|j����}tt|j����}tt|j����}tj|jt
j|j���}|�|j��|�	|j��}|�
��}tj|t
j|���}d|dd�<d|dd�<|�|��d|dd�<|�	|��}	d|dd�<|�
��}
|�||	��|�||
��|�|j|j��tt|j����}tt|j����}tt|j����}~tj|t
j|���}d|dd�<d|dd�<|�|��d|dd�<|�
t|	��t|
����}|�|j|��dSr�)�
memoryviewr�rr$rrrr#r|r%rir'r!rd)
r(�key_mv�nonce_mv�	header_mv�data_mvr�r+rr�r�r�r�r�s
             r�test_memoryviewzGcmTests.test_memoryviewsr���I�d�l�3�3�4�4���i��
�6�6�7�7���y���7�7�8�8�	��Y�t�}�5�5�6�6���'�$�,��,� $�
�/�/�/��	���t�}�%�%�%�
�_�_�T�]�
+�
+���n�n�����'�&��,� (�*�*�*��%��r��r�
�&���!������y�!�!�!�'�	�"�1�"�
��/�/�'�*�*��%�������>�>�#�#������W�%�%�%�����h�'�'�'�������
�6�6�6��I�d�l�3�3�4�4���i��
�6�6�7�7���y���7�7�8�8�	���'�&��,� (�*�*�*��%��r��r�
�&���!������y�!�!�!�'�	�"�1�"�
��,�,�Z��-@�-@�*�X�BV�BV�W�W��������0�0�0�0�0rc�t�d}tj|jtj|j���}|�|��}|���}td��}tj|jtj|j���}|�||���}|�||��|�|d��tj|jtj|j���}|�	||���}|�||��|�|d��tj|jtj|j���}|�
||���\}}|�||��|�|d��|�||��tj|jtj|j���}|�|||���}|�||��|�|d��dS�N�5555555555555555r r��output)rrrr#r$r%rir�r'r&r]rd)r(r*r)r+rr��res�tag_outs        r�test_output_paramzGcmTests.test_output_param4s���
������s�|�4�=�I�I�I��
�^�^�B�
�
���m�m�o�o���2��������s�|�4�=�I�I�I���n�n�R��n�/�/������V�$�$�$�����d�#�#�#�����s�|�4�=�I�I�I���n�n�R��n�/�/������V�$�$�$�����d�#�#�#�����s�|�4�=�I�I�I���0�0��F�0�C�C���W�����V�$�$�$�����d�#�#�#�����g�&�&�&�����s�|�4�=�I�I�I���'�'��C��'�?�?������V�$�$�$�����d�#�#�#�#�#rc�"�d}tj|jtj|j���}|�|��}t
td����}tj|jtj|j���}|�||���|�||��tj|jtj|j���}|�	||���|�||��dSr�)
rrrr#r$r%r�r�r'r&)r(r*r)r+r�s     r�test_output_param_memoryviewz%GcmTests.test_output_param_memoryviewQs���
������s�|�4�=�I�I�I��
�^�^�B�
�
���I�b�M�M�*�*������s�|�4�=�I�I�I�����r�&��)�)�)�����V�$�$�$�����s�|�4�=�I�I�I�����r�&��)�)�)�����V�$�$�$�$�$rc��d}tj|jtj|j���}|�|��}tj|jtj|j���}|�t|j|d���tj|jtj|j���}|�t|j|d���td��}tj|jtj|j���}|�t|j||���tj|jtj|j���}|�t|j||���dS)Nr�r �0000000000000000r��)rrrr#r$r%r4r5r&r�r;)r(r*r)r+�shorter_outputs     r�test_output_param_negzGcmTests.test_output_param_neg`s1��
������s�|�4�=�I�I�I��
�^�^�B�
�
������s�|�4�=�I�I�I�����)�V�^�R���H�H�H�����s�|�4�=�I�I�I�����)�V�^�R���H�H�H�"�2��������s�|�4�=�I�I�I�����*�f�n�b���P�P�P�����s�|�4�=�I�I�I�����*�f�n�b���P�P�P�P�PrN)�__name__�
__module__�__qualname__rrr$rr-r1r7r>rBrHrMrSrUrWr`rfrlr�r�r�r�r�r�rqrrrr2so�������n�Y��+�+�G��~�k�2�.�.�H��~�j�"�-�-�H�"�"�"�=�=�=�1�1�1�$�$�$�<�<�<�,�,�,�	!�	!�	!�*�*�*�:�:�:�J�J�J�'�'�'�&	'�	'�	'�"�"�"�'8�'8�'8�R-1�-1�-1�^-1�-1�-1�^$�$�$�:
%�
%�
%�Q�Q�Q�Q�Qrrc��eZdZedd��Zedd��Zedd��Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�ZdS)�GcmFSMTestsrrrrrc�b�tj|jtj|j���}|�|j��}|���}tj|jtj|j���}|�|��|�	|��dSr/)
rrrr#r$r%rrir&r}�r(r)r+r_s    r�-test_valid_init_encrypt_decrypt_digest_verifyz9GcmFSMTests.test_valid_init_encrypt_decrypt_digest_verifyys�������s�|�#�}�.�.�.��
�^�^�D�M�
*�
*���m�m�o�o������s�|�#�}�.�.�.�����r�����
�
�c�����rc�l�tj|jtj|j���}|�|j��|���}tj|jtj|j���}|�|j��|�|��dSr/)	rrrr#r$r|rrir}�r(r)r_s   r�$test_valid_init_update_digest_verifyz0GcmFSMTests.test_valid_init_update_digest_verify�s�������s�|�#�}�.�.�.���
�
�d�m�$�$�$��m�m�o�o������s�|�#�}�.�.�.���
�
�d�m�$�$�$��
�
�c�����rc���tj|jtj|j���}|�|j��|�|j��}|���}tj|jtj|j���}|�|j��|�	|��|�
|��dSr/)rrrr#r$r|rr%rir&r}r�s    r�test_valid_full_pathz GcmFSMTests.test_valid_full_path�s�������s�|�#�}�.�.�.���
�
�d�m�$�$�$�
�^�^�D�M�
*�
*���m�m�o�o������s�|�#�}�.�.�.���
�
�d�m�$�$�$����r�����
�
�c�����rc��tj|jtj|j���}|���dSr/)rrrr#r$rirAs  r�test_valid_init_digestz"GcmFSMTests.test_valid_init_digest�s/������s�|�4�=�I�I�I���
�
�����rc��tj|jtj|j���}|���}tj|jtj|j���}|�|��dSr/)rrrr#r$rir}r�s   r�test_valid_init_verifyz"GcmFSMTests.test_valid_init_verify�s_������s�|�4�=�I�I�I���m�m�o�o������s�|�4�=�I�I�I���
�
�c�����rc��dD]�}dd|j|jdzfD]�}|�d}nt|��}tj|jtj|j���}|�|�|��t||��}||j��||j��||j��||j������dS)NrOs333�3r )	rrDrrrr#r$r|rP)r(�method_namer~�	assoc_lenr)�methods      r�&test_valid_multiple_encrypt_or_decryptz2GcmFSMTests.test_valid_multiple_encrypt_or_decrypt�s���/�	&�	&�K�"�F�D�M�"�m�d�2�4�
&�
&�	��$� $�I�I� #�I���I�����s�|�'+�}�6�6�6���(��M�M�)�,�,�,� ���5�5����t�}�%�%�%���t�}�%�%�%���t�}�%�%�%���t�}�%�%�%�%�
&�	&�	&rc��tj|jtj|j���}|�|j��|���}td��D]*}|�	||������+tj|jtj|j���}|�|j��td��D]}|�
|���dS)Nr �r\)rrrr#r$r|rrir<r'r})r(r)�	first_macr=s    r�$test_valid_multiple_digest_or_verifyz0GcmFSMTests.test_valid_multiple_digest_or_verify�s�������s�|�4�=�I�I�I���
�
�d�m�$�$�$��M�M�O�O�	��q���	9�	9�A����Y��
�
���8�8�8�8�����s�|�4�=�I�I�I���
�
�d�m�$�$�$��q���	%�	%�A��M�M�)�$�$�$�$�	%�	%rc��tj|jtj|j���}|�|j��|�|j��\}}tj|jtj|j���}|�|j��|�||��}|�	|j|��dSr/)
rrrr#r$r|rr]rdr')r(r)r+r_r*s     r�0test_valid_encrypt_and_digest_decrypt_and_verifyz<GcmFSMTests.test_valid_encrypt_and_digest_decrypt_and_verify�s�������s�|�4�=�I�I�I���
�
�d�m�$�$�$��+�+�D�M�:�:���C�����s�|�4�=�I�I�I���
�
�d�m�$�$�$�
�
&�
&�r�3�
/�
/��������+�+�+�+�+rc	�H�dD]�\}}dD]�}tj|jtj|j���}|r|�|j��t||��|j��|�tt||��|j������dS)N)rO)r&r%)TFr )
rrrr#r$r|rrPr4r5)r(�method1_name�method2_name�assoc_data_presentr)s     r�#test_invalid_mixing_encrypt_decryptz/GcmFSMTests.test_invalid_mixing_encrypt_decrypt�s���+C�		1�		1�&�L�,�&3�
1�
1�"�����s�|�'+�}�6�6�6��%�1��M�M�$�-�0�0�0�-����-�-�d�m�<�<�<��!�!�)�W�V�\�-J�-J�"&�-�1�1�1�1�

1�		1�		1rc��dD]�}tj|jtj|j���}|�|j��|���|�tt||��|j��tj|jtj|j���}|�|j����dS)N)r%r|r )rrrr#r$r%rrir4r5rPr])r(r�r)s   r�+test_invalid_encrypt_or_update_after_digestz7GcmFSMTests.test_invalid_encrypt_or_update_after_digest�s���.�	5�	5�K��W�T�\�3�<�t�}�M�M�M�F��N�N�4�=�)�)�)��M�M�O�O�O����i����)E�)E�"�m�
-�
-�
-��W�T�\�3�<�t�}�M�M�M�F��%�%�d�m�4�4�4�4�	5�	5rc��tj|jtj|j���}|�|j��}|���}dD]�}tj|jtj|j���}|�|��|�	|��|�
tt||��|j��tj|jtj|j���}|�
||��|�
tt||��|j����dS)Nr )r&r|)rrrr#r$r%rrir&r}r4r5rPrd)r(r)r+r_r�s     r�+test_invalid_decrypt_or_update_after_verifyz7GcmFSMTests.test_invalid_decrypt_or_update_after_verify�s&������s�|�4�=�I�I�I��
�^�^�D�M�
*�
*���m�m�o�o��.�
	-�
	-�K��W�T�\�3�<�t�}�M�M�M�F��N�N�2�����M�M�#�������i����)E�)E�"�m�
-�
-�
-��W�T�\�3�<�t�}�M�M�M�F��%�%�b�#�.�.�.����i����)E�)E�"�m�
-�
-�
-�
-�
	-�
	-rN)r�r�r�rrr$rr�r�r�r�r�r�r�r�r�r�r�rqrrr�r�ss��������n�Y��+�+�G��~�k�2�.�.�H��~�j�"�-�-�H���������� ���
���&�&�&�$%�%�%�
,�
,�
,�1�1�1�	5�	5�	5�-�-�-�-�-rr�c�8�eZdZdZgd�Zd�eD��Zd�ZdS)�TestVectorsz�Class exercising the GCM test vectors found in
       http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-revised-spec.pdf))�r�r�� 58e2fccefa7e3061367f1d57a4e7455a� 00000000000000000000000000000000�000000000000000000000000)r�r�� 0388dace60b6a392f328c2b971b2fe78� ab6e47d42cec13bdf53a67b21257bddfr�r�)r�ڀd9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255ڀ42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091473f5985� 4d5c2af327cd64a62cf35abd2ba6fab4� feffe9928665731c6d6a8f9467308308�cafebabefacedbaddecaf888)�(feedfacedeadbeeffeedfacedeadbeefabaddad2�xd9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39�x42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091� 5bc94fbc3221a5db94fae95ae7121a47r�r�)r�r��x61353b4c2806934a777ff51fa22a4755699b2a714fcdc6f83766e5f97b6c742373806900e49f24b22b097544d4896b424989b5e1ebac0f07c23f4598� 3612d2e79e3b0785561be14aaca2fccbr��cafebabefacedbad)r�r��x8ce24998625615b603a033aca13fb894be9112a5c3a211a8ba262a3cca7e2ca701e4a9a4fba43c90ccdcb281d48c7c6fd62875d2aca417034c34aee5� 619cc5aefffe0bfa462af43c1699d050r��x9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b)r�r�r�� cd33b28ac773f74ba00ed1f312572435�0000000000000000000000000000000000000000000000000r�)r�r�� 98e7247c07f0fe411c267e4384b0f600� 2ff58d80033927ab8ef4d4587514f0fbr�r�)r�r�ڀ3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710acade256� 9924a7c8587336bfb118024db8674a14�0feffe9928665731c6d6a8f9467308308feffe9928665731cr�)r�r��x3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710� 2519498e80f1478f37ba55bd6d27618cr�r�)r�r��x0f10f599ae14a154ed24b36e25324db8c566632ef2bbb34f8347280fc4507057fddc29df9a471f75c66541d4d4dad1c9e93a19a58e8b473fa0f062f7� 65dcc57fcf623a24094fcca40d3533f8r�r�)r�r��xd27e88681ce3243c4830165a8fdcf9ff1de9a1d8e6b447ef6ef7b79828666e4581e79012af34ddd9e2f037589b292db3e67c036745fa22e7e9b7373b� dcf566ff291c25bbb8568fc3d376a6d9r�r�)r�r�r�� 530f8afbc74536b9a963b4f1c4cb738b�@0000000000000000000000000000000000000000000000000000000000000000r�)r�r�� cea7403d4d606b6e074ec5d3baf39d18� d0d1c8a799996bf0265b98b5d48ab919r�r�)r�r�ڀ522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662898015ad� b094dac5d93471bdec1a502270e3cc6c�@feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308r�)r�r��x522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662� 76fc6ece0f4e1768cddf8853bb2d551br�r�)r�r��xc3762df1ca787d32ae47c13bf19844cbaf1ae14d0b976afac52ff7d79bba9de0feb582d33934a4f0954cc2363bc73f7862ac430e64abe499f47c9b1f� 3a337dbf46a792c45e454913fe2ea8f2r�r�)r�r��x5a8def2f0c9e53f1f75d7853659e2a20eeb2b22aafde6419a058ab4f6f746bf40fc0c3b780f244452da3ebf1c5d82cdea2418997200ef82e44ae7e3f� a44a8266ee1c8eb0c8b5d4cf5ae9f19ar�r�c�&�g|]}d�|D����S)c�,�g|]}t|����Srqr)rrr=s  rruz!TestVectors.<listcomp>.<listcomp>�s��.�.�.�a�Y�q�\�\�.�.�.rrq)rr�tvs  rruzTestVectors.<listcomp>�s'��J�J�J�2�.�.�2�.�.�.�J�J�Jrc	��|jD�]\}}}}}}tj|tj|t	|�����}|�|��|�|��\}}	|�||��|�||	��tj|tj|t	|�����}|�|��|�||��}
|�||
����dS)N)rZ)	�test_vectorsrrr#rDr|r]r'rd)r(�
assoc_datar*r+r_�keyr!r)r��mac2r,s           r�runTestzTestVectors.runTest�s��37�3D�
	&�
	&�/�J��B��S�%��W�S�#�,��s�3�x�x�H�H�H�F��M�M�*�%�%�%��1�1�"�5�5�I�C�����R��%�%�%����S�$�'�'�'��W�S�#�,��s�3�x�x�H�H�H�F��M�M�*�%�%�%��+�+�B��4�4�C����R��%�%�%�%�
	&�
	&rN)r�r�r��__doc__�test_vectors_hexrrrqrrr�r�s\������f�f�n�n�n��`K�J�9I�J�J�J�L�&�&�&�&�&rr�c��eZdZdZd�Zd�ZdS)�TestVectorsGueronKrasnovz�Class exercising the GCM test vectors found in
       'The fragility of AES-GCM authentication algorithm', Gueron, Krasnov
       https://eprint.iacr.org/2013/157.pdfc�4�td��}td��}td��}td��}tj|tj|���|��}|�||�����dS)N� 3da6c536d6295579c0959a7043efb503�2b926197d34e091ef722db94ڠ00000000000000000000000000000000000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f� 69dd586555ce3fcc89663801a71d957b)rrrr#r|r'ri)r(r�iv�aadrir)s      r�test_1zTestVectorsGueronKrasnov.test_1�s����:�;�;���2�3�3���;�<�<��
�=�>�>�����c�l�B�/�/�6�6�s�;�;�����������1�1�1�1�1rc��td��}td��}td��}td��}td��}td��}tj|tj|���|��}|�|��\}}	|�||��|�||	��dS)N� 843ffcf5d2b72694d19ed01d01249412�dbcca32ebf9b804617c3aa9e�@00000000000000000000000000000000101112131415161718191a1b1c1d1e1fڠ000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4fڠ6268c6fa2a80b2d137467f092f657ac04d89be2beaa623d61b5a868c8f03ff95d3dcee23ad2f1ab3a6c80eaf4b140eb05de3457f0fbc111a6b43d0763aa422a3013cf1dc37fe417d1fbfc449b75d4cc5� 3b629ccfbc1119b7319e1dce2cd6fd6d)rrrr#r|r]r')
r(rrrr*r+rir)r��digest2s
          r�test_2zTestVectorsGueronKrasnov.test_2�s����:�;�;���2�3�3���;�<�<���;�<�<��
�;�<�<��
�=�>�>�����c�l�B�/�/�6�6�s�;�;���0�0��4�4���W�����S�!�!�!������)�)�)�)�)rN)r�r�r�rrrrqrrrr�s<������/�/�2�2�2�*�*�*�*�*rrc��eZdZd�ZdS)�NISTTestVectorsGCMc�T�d|_tj�||��dS)NT��	use_clmul�unittest�TestCase�__init__�r(�as  rr$zNISTTestVectorsGCM.__init__s(�������"�"�4��+�+�+�+�+rN�r�r�r�r$rqrrrr�#������,�,�,�,�,rrc��eZdZd�ZdS)�NISTTestVectorsGCM_no_clmulc�T�d|_tj�||��dS)NFr r%s  rr$z$NISTTestVectorsGCM_no_clmul.__init__	s(�������"�"�4��+�+�+�+�+rNr'rqrrr*r*r(rr*)�CipherrzgcmDecrypt128.rspzGCM decrypt�countc� �t|��S�N��int�r=s r�<lambda>r3���C��F�F�rzgcmEncryptExtIV128.rspzGCM encryptc� �t|��Sr/r0r2s rr3r3r4rc��|j|_tj|jtj|jt|j��|j	���}|�
|j��d|jvr.|�
t|j|j|j��dS|�|j|j��}|�||j��dS)N)r!rZr!�FAIL)�desc�descriptionrrrr#rrDrr!r|r�othersr4r;rdr+r'r*)r(rr)r*s    r�single_testr; s����7���������R�U�%(���[�[�D�N�L�L�L���
�
�b�f�����R�Y������j�&�*C�"$�%���
1�
1�
1�
1�
1��*�*�2�5�"�&�9�9�B����R���'�'�'�'�'rztest_%dc�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�TestVectorsWycheproofc�n�tj�|��||_||_d|_dS)N�None)r"r#r$�_wycheproof_warnings�
_extra_params�_id)r(�wycheproof_warnings�extra_paramss   rr$zTestVectorsWycheproof.__init__3s4����"�"�4�(�(�(�$7��!�)�������rc�@�d�}tdddd|i���|_dS)Nc��|ddzS)N�tagSize�rq)�groups r�
filter_tagz/TestVectorsWycheproof.setUp.<locals>.filter_tag;s����#�q�(�(r)r,�
wycheproofzaes_gcm_test.jsonzWycheproof GCM�tag_size)�	group_tag)rr)r(rJs  r�setUpzTestVectorsWycheproof.setUp9sA��	)�	)�	)�/�/G�/B�/?�:D�j�9Q�S�S�S����rc��|jSr/)rBr6s r�shortDescriptionz&TestVectorsWycheproof.shortDescriptionCs	���x�rc�~�|jr3|jr.ddl}|�d|j�d|j�d���dSdSdS)NrzWycheproof warning: z (�))�warningr@�warnings�warnrB�comment)r(rrTs   rrUzTestVectorsWycheproof.warnFsd��
�:�	R�$�3�	R��O�O�O��M�M�M�4�8�8�8�R�Z�Z�Z�P�Q�Q�Q�Q�Q�	R�	R�	R�	Rrc�F�dt|j��z|_	tj|jtj|jfd|ji|j	��}nC#t$r6}t|j��dkrdt|��vrYd}~dS|�d}~wwxYw|�|j
��|�|j��\}}|jrM|�||j��|�||j��|�|��dSdS)NzWycheproof Encrypt GCM Test #rZr�Nonce cannot be empty)�str�idrBrrrr#rrLrAr;rDr|rr]�msg�validr'r+rrU)r(rr)�er+rs      r�test_encryptz"TestVectorsWycheproof.test_encryptKs,��2�S���Z�Z�?���	��W�R�V�S�\�2�5�.�.�"�+�.��,�.�.�F�F���	�	�	��2�5�z�z�Q���#:�c�!�f�f�#D�#D��������G�����	����
	�
�
�b�f�����+�+�B�F�3�3���C�
�8�	����R���'�'�'����S�"�&�)�)�)��I�I�b�M�M�M�M�M�	�	s�4A�
B�)B�B�Bc�L�dt|j��z|_	tj|jtj|jfd|ji|j	��}nC#t$r6}t|j��dkrdt|��vrYd}~dS|�d}~wwxYw|�|j
��	|�|j|j��}|jsJ�|�||j��|�|��dS#t$r
|jrJ�YdSwxYw)NzWycheproof Decrypt GCM Test #rZrrX)rYrZrBrrrr#rrLrAr;rDr|rrdr+rr\r'r[rU)r(rr)r]r*s     r�test_decryptz"TestVectorsWycheproof.test_decrypt]sF��2�S���Z�Z�?���	��W�R�V�S�\�2�5�.�.�"�+�.��,�.�.�F�F���	�	�	��2�5�z�z�Q���#:�c�!�f�f�#D�#D��������G�����	����
	�
�
�b�f����	��*�*�2�5�"�&�9�9�B��8�O�O�O����R���(�(�(��I�I�b�M�M�M�M�M���	 �	 �	 ��x�������	 ���s/�4A�
B�)B�B�B�1 D�D#�"D#c���dt|j��z|_t|j��dkst|j��dkrdSt
j|jtj	|jfd|j
i|j��}|�|j
��t|jdt|j��dz
zdz��}|�t |j||j��dS)Nz%Wycheproof Corrupt Decrypt GCM Test #rr9rZ��)rYrZrBrDrr+rrrr#rLrAr|rrr4r;rdr)r(rr)�
ct_corrupts    r�test_corrupt_decryptz*TestVectorsWycheproof.test_corrupt_decryptrs���:�S���Z�Z�G����r�u�:�:��?�?�c�"�%�j�j�1�n�n��F�������r�u�*�*�b�k�*��(�*�*���
�
�b�f�����B�E�7�c�"�%�j�j�1�n�#=��#G�H�H�
����*�f�&?��R�V�T�T�T�T�Trc��|jD]A}|�|��|�|��|�|���BdSr/)rr^r`re)r(rs  rrzTestVectorsWycheproof.runTest|s\���'�	*�	*�B����b�!�!�!����b�!�!�!��%�%�b�)�)�)�)�	*�	*rN)r�r�r�r$rNrPrUr^r`rerrqrrr=r=1s����������S�S�S����R�R�R�
���$���*U�U�U�*�*�*�*�*rr=c��eZdZd�Zd�ZdS)�TestVariableLengthc�R�tj�|��||_dSr/)r"r#r$rA)r(rDs  rr$zTestVariableLength.__init__�s'����"�"�4�(�(�(�)����rc���d}tj��}td��D]�}d�|���d��}t|��|z}t
j|tjfd|i|j��}|�	|��\}}|�
|��|�
|����|�|���d��dS)Nr��z{0:04d}zutf-8r!�@7b7eb1ffbe67a2e53a912067c0ec8e62ebc7ce4d83490ea7426941349811bdf4)
r
rr<�format�encoder
rr#rAr]r|r'rh)	r(r�hrr!rr)r+rs	         rrzTestVariableLength.runTest�s������J�L�L���C�j�j�	�	�F��$�$�V�,�,�3�3�G�<�<�E���<�<�&�(�D��W�S�#�,�R�R�e�R�t�?Q�R�R�F��/�/��5�5�G�B��
�H�H�R�L�L�L�
�H�H�S�M�M�M�M���������(j�k�k�k�k�krN)r�r�r�r$rrqrrrhrh�s7������*�*�*�l�l�l�l�lrrhc��ddlm}|�d��}g}|tt��z
}|tt
��z
}|t
��gz
}|t|��gz
}|tt��z
}|t��gz
}|�d��r|tt��z
}|���rV|t|d���gz
}|td���gz
}|�d��r|tt��z
}ntd��|S)Nr)�
_cpu_featuresrC�
slow_testsF)r!z%Skipping test of PCLMULDQD in AES GCM)�Cryptodome.Utilrq�getrrr�r�r=rrhr�
have_clmulr*�print)�configrqrC�testss    r�	get_testsry�sK��-�-�-�-�-�-� �*�*�%:�;�;���E�	�_�X�
&�
&�&�E�	�_�[�
)�
)�)�E�	�k�m�m�_��E�	�#�$7�8�8�
9�9�E�	�_�5�
6�
6�6�E�	� �"�"�
#�#�E�
�z�z�,���5�
��!3�4�4�4�����!�!�7�
�'�(;�u�M�M�M�N�N��
�$�u�5�5�5�6�6���:�:�l�#�#�	B��_�%@�A�A�A�E��
�5�6�6�6��Lr�__main__c�F�tjt����dSr/)r"�	TestSuiteryrqrr�suiter}�s����9�;�;�'�'�'�'�'rr})�defaultTest)*�
__future__rr"�binasciir�Cryptodome.SelfTest.st_commonr�Cryptodome.SelfTest.loaderrr�Cryptodome.Util.py3compatr	r
�Cryptodome.Cipherr�Cryptodome.Hashrr
rcrrr#rr�r�rrr*�test_vectors_nist�	enumerate�idxr�
isinstancerYr;�setattrr=rhryr�r}�mainrqrr�<module>r�s���>&�%�%�%�%�%�����������9�9�9�9�9�9�V�V�V�V�V�V�V�V�3�3�3�3�3�3�3�3�!�!�!�!�!�!�,�,�,�,�,�,�,�,�)�)�)�)�)�)�8�8�8�~Q�~Q�~Q�~Q�~Q�x� �~Q�~Q�~Q�B
R-�R-�R-�R-�R-�(�#�R-�R-�R-�jK&�K&�K&�K&�K&�(�#�K&�K&�K&�\'*�'*�'*�'*�'*�x�0�'*�'*�'*�T,�,�,�,�,��*�,�,�,�,�,�,�,�,�(�"3�,�,�,�&�%�)�+�%� �"2�"2�3�	5�5�;�9;�	��&�&�)�0�%� �"2�"2�3�	5�5�;�9;�	;���y�*�+�+�G�G�G�C���z�"�c������(�(�(�(��G��	�C���=�=�=��G�'��S��+�F�F�F�F�P*�P*�P*�P*�P*�H�-�P*�P*�P*�fl�l�l�l�l��*�l�l�l�*�����4�z���(�(�(��H�M�g�&�&�&�&�&�&��r

Youez - 2016 - github.com/yon3zu
LinuXploit