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_CCM.cpython-311.pyc
�

8�tc ���F�ddlZddlmZddlmZddlmZddlmZm	Z	ddl
mZddlm
Z
ddlmZd	�ZGd
�dej��ZGd�d
ej��ZGd�dej��ZGd�dej��Zifd�Zedkrd�Zejd���dSdS)�N��	unhexlify)�list_test_cases)�load_test_vectors_wycheproof)�tobytes�bchr)�AES)�SHAKE128)�strxorc�l�tjt|������|��S)N)�data)r
�newr�read)�tag�lengths  �E/usr/lib/python3/dist-packages/Cryptodome/SelfTest/Cipher/test_CCM.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�Zd�Zd�Zd�Zd�ZdS)�CcmTests�key_128��	nonce_128��data_128c�R�tj|jtj|j���}tdd��}|�|��}tj|jtj|j���}|�|��}|�||��dS)N��nonce�	plaintexti@)	r	rr�MODE_CCM�nonce_96r�encrypt�decrypt�assertEqual)�self�cipher�pt�ct�pt2s     r�test_loopback_128zCcmTests.test_loopback_1285s�������s�|�4�=�I�I�I��
�K��
2�
2��
�^�^�B�
�
������s�|�4�=�I�I�I���n�n�R� � ������S�!�!�!�!�!rc�^�tj|jtj��}|j}tj|jtj��}|j}|�t
|��d��|�||��tj|jtj|j��}|�	|j
��}tj|jtj|j���}|�||�	|j
����dS)N�r)r	rrr rr$�len�assertNotEqualr!r"r�assertEquals)r%r&�nonce1�nonce2r(s     r�
test_noncezCcmTests.test_nonce>s�������s�|�4�4���������s�|�4�4���������V���b�)�)�)����F�F�+�+�+�����s�|�T�]�C�C��
�^�^�D�M�
*�
*������s�|�4�=�I�I�I�����"�f�n�n�T�]�;�;�<�<�<�<�<rc�v�|�ttj|jtjd���dS)N�test12345678r)�assertRaises�	TypeErrorr	rrr �r%s r�test_nonce_must_be_bytesz!CcmTests.test_nonce_must_be_bytesMs:�����)�S�W�d�l�C�L� /�	�	1�	1�	1�	1�	1rc	�(�|�ttj|jtjd���|�ttj|jtjt
d��dz���|�ttj|jtjt
d��dz���tdd��D]8}tj|jtjt
d��|z����9dS)Nrr����)r5�
ValueErrorr	rrr r�range)r%�xs  r�test_nonce_lengthzCcmTests.test_nonce_lengthQs������*�c�g�t�|�S�\� #�	�	%�	%�	%����*�c�g�t�|�S�\� $�Q���!��	�	-�	-�	-����*�c�g�t�|�S�\� $�Q���"��	�	.�	.�	.��q�&�!�!�	C�	C�A��G�D�L�#�,�d�1�g�g��k�B�B�B�B�B�	C�	Crc��tj|jtj|j���}|�|jtj��dS�Nr)r	rrr r!r$�
block_size�r%r&s  r�test_block_sizezCcmTests.test_block_size[s?������s�|�4�=�I�I�I������*�C�N�;�;�;�;�;rc��tj|jtj|j���}|�|j|j��tj|jtj��j}tj|jtj��j}|�t|��d��|�||��dS)Nrr,)	r	rrr r!r$rr-r.)r%r&r0r1s    r�test_nonce_attributezCcmTests.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)Nr=)r�unknownF)r�	use_aesni)r5r6r	rrr r!r7s r�test_unknown_parametersz CcmTests.test_unknown_parametersis������)�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#rr)r	rrr r!�getattrr$)r%�funcr&�results    r�test_null_encryption_decryptionz(CcmTests.test_null_encryption_decryptiontsi��(�	*�	*�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)Nrr)	r	rrr r!r"r5r6r#rEs  r�test_either_encrypt_or_decryptz'CcmTests.test_either_encrypt_or_decryptzs�������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)Nrztest1234567890-*)	r	rrr r!r5r6r"r#rEs  r�test_data_must_be_bytesz CcmTests.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	��tddd��D]@}|�ttj|jtj|j|����Atddd��D]n}tj|jtj|j|���}|�|j	��\}}|�
t|��|���otj|jtj|j���}|�|j	��\}}|�
t|��d��dS)	N���)r�mac_len��rr)r?r5r>r	rrr r!�encrypt_and_digestrr$r-)r%r[r&�_�macs     r�test_mac_lenzCcmTests.test_mac_len�s-���Q���*�*�	D�	D�G����j�#�'�4�<���$(�M�7�
�
D�
D�
D�
D��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_crr:)�Cryptodome.Util.strxorrcr	rrr r!r^rr5r>�decrypt_and_verify)r%rcr&r(r`�invalid_macs      r�test_invalid_maczCcmTests.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���}|�	|��dSrC)
r	rrr r!�	hexdigestr$�digestr�	hexverify)r%r&�mac_hexs   r�test_hex_maczCcmTests.test_hex_mac�s�������s�|�4�=�I�I�I���"�"�$�$����������)�G�*<�*<�=�=�=�����s�|�4�=�I�I�I������!�!�!�!�!rc�D�tj|jtj|jd���}|�t|jd��tj|jtj|jd���}|�t|j|j��dS)Nr�r�	assoc_len�1�)	r	rrr r!r5r>�updaterrEs  r�$test_longer_assoc_data_than_declaredz-CcmTests.test_longer_assoc_data_than_declared�s�������s�|�4�=�#$�&�&�&�����*�f�m�T�:�:�:�����s�|�4�=�#%�'�'�'�����*�f�m�T�]�C�C�C�C�Crc��tj|jtj|jd���}|�|j��|�t|j	|j��tj|jtj|jd���}|�|j��|�t|j
��tj|jtj|jd���}|�|j��|�t|j|j��tj|jtj|j���}|�|j��|�
��}tj|jtj|jd���}|�|j��|�t|j|��dS)Nr]ror)
r	rrr r!rsrr5r>r"rjr#�verify�r%r&r`s   r�%test_shorter_assoc_data_than_expectedz.CcmTests.test_shorter_assoc_data_than_expected�s�������s�|�4�=�#%�'�'�'���
�
�d�m�$�$�$����*�f�n�d�m�D�D�D�����s�|�4�=�#%�'�'�'���
�
�d�m�$�$�$����*�f�m�4�4�4�����s�|�4�=�#%�'�'�'���
�
�d�m�$�$�$����*�f�n�d�m�D�D�D�����s�|�4�=�I�I�I���
�
�d�m�$�$�$��m�m�o�o������s�|�4�=�#%�'�'�'���
�
�d�m�$�$�$����*�f�m�S�9�9�9�9�9rc�v�tj|jtj|jd���}|�|j��|�t|j	��tj|jtj|jd���}|�t|j|j��dS)Nr]�r�msg_lenrr)
r	rrr r!r"rr5r>rjrEs  r�/test_shorter_and_longer_plaintext_than_declaredz8CcmTests.test_shorter_and_longer_plaintext_than_declared�s�������s�|�4�=�!#�%�%�%�����t�}�%�%�%����*�f�m�4�4�4�����s�|�4�=�!#�%�%�%�����*�f�n�d�m�D�D�D�D�Drc���tj|jtj|j���}|�|j��\}}tj|jtj|jd���}|�|��|�t|j
|��tj|jtj|jd���}|�t|j|��dS)Nrr]rzrr)r	rrr r!r^rr#r5r>rv)r%r&r(r`s    r�%test_shorter_ciphertext_than_declaredz.CcmTests.test_shorter_ciphertext_than_declared�s�������s�|�4�=�I�I�I���+�+�D�M�:�:���C�����s�|�4�=�!#�%�%�%�����r�������*�f�m�S�9�9�9�����s�|�4�=�!#�%�%�%�����*�f�n�b�9�9�9�9�9rc���tdd��}tdd��}tj|jtj|j���}|�|��|�|��\}}d�}dD]�}tj|jtj|jdd���}|||��D]}|�|���d}	|||��D]}|	|�|��z
}	�|�	||	��|�
|����dD]�}tj|jtj|jdd���}|||��D]}|�|���d}
|||��D]}|
|�|��z
}
�|�	||
��|�|�
��|����dS)	Nzauthenticated data�rrc�\�����fd�tdt������D��S)Nc�*��g|]}�||�z���S�r�)�.0�i�chunk_lengthr
s  ��r�
<listcomp>zBCcmTests.test_message_chunks.<locals>.break_up.<locals>.<listcomp>�s3���#�#�#�q�D��1�\�>�)�*�#�#�#rr)r?r-)r
r�s``r�break_upz.CcmTests.test_message_chunks.<locals>.break_up�sJ����#�#�#�#�#�E�!�S��Y�Y� �5"�5"�#�#�#�
#r)
r:rZrXr=�
�
r�(�P��rr{rpr)rr	rrr r!rsr^r#r$rvr"r/rj)r%�	auth_datarr&�
ciphertext�ref_macr�r��chunkr)�ct2s           r�test_message_chunkszCcmTests.test_message_chunks�s*��#�#7��=�=�	�"�;��4�4�	�����s�|�4�=�I�I�I���
�
�i� � � �$�7�7�	�B�B��
�G�	#�	#�	#�
@�	#�	#�L��W�T�\�3�<�t�}�%(�C�9�9�9�F�"��)�\�:�:�
%�
%���
�
�e�$�$�$�$��C�!��*�l�;�;�
-�
-���v�~�~�e�,�,�,������Y��,�,�,��M�M�'�"�"�"�"�@�	8�	8�L��W�T�\�3�<�t�}�%(�C�9�9�9�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�Nrs���rX)
�	bytearrayrr!rr	rr rsr"rjr$rre)
r%�key_ba�nonce_ba�	header_ba�data_ba�cipher1r(r�cipher2�ct_test�tag_test�cipher4�pt_tests
             r�test_bytearrayzCcmTests.test_bytearrays:���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!rr	rr rsr"rjr$rre)
r%�key_mv�nonce_mv�	header_mv�data_mvr�r(rr�r�r�r�r�s
             r�test_memoryviewzCcmTests.test_memoryviewHsr���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�5555555555555555rr��output)r	rrr r!r"rjr�r$r#r^re)r%r'r&r(rr��res�tag_outs        r�test_output_paramzCcmTests.test_output_paramws���
������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�)
r	rrr r!r"r�r�r$r#)r%r'r&r(r�s     r�test_output_param_memoryviewz%CcmTests.test_output_param_memoryview�s���
������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�rs0000000000000000r�rr)r	rrr r!r"r5r6r#r�r>)r%r'r&r(�shorter_outputs     r�test_output_param_negzCcmTests.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*r2r8rArFrHrLrRrTrVrargrmrtrxr|r~r�r�r�r�r�r�r�rrrr/s��������n�Y��+�+�G��~�k�2�.�.�H��~�j�"�-�-�H�"�"�"�
=�
=�
=�1�1�1�C�C�C�<�<�<�,�,�,�	!�	!�	!�*�*�*�:�:�:�J�J�J�'�'�'�$	'�	'�	'�"�"�"�	D�	D�	D�:�:�:�:E�E�E�:�:�:�)8�)8�)8�V-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�Zd�ZdS)�CcmFSMTestsrrrrrc	��dD]�}dt|j��fD]�}tj|jtj|j||���}|�|j��}|���}tj|jtj|j||���}|�	|��|�
|������dS�N)Nr�rrpr{)r-rr	rrr r!r"rjr#rv�r%rpr{r&r(r`s      r�-test_valid_init_encrypt_decrypt_digest_verifyz9CcmFSMTests.test_valid_init_encrypt_decrypt_digest_verify�s���"�	#�	#�I� �#�d�m�"4�"4�5�
#�
#������s�|�'+�}�+4�)0�2�2�2���^�^�D�M�2�2���m�m�o�o������s�|�'+�}�+4�)0�2�2�2�����r�"�"�"��
�
�c�"�"�"�"�
#�	#�	#rc	��dt|j��fD]�}dD]�}tj|jtj|j||���}|�|j��|���}tj|jtj|j||���}|�|j��|�	|������dSr�)
r-rr	rrr r!rsrjrv)r%rpr{r&r`s     r�$test_valid_init_update_digest_verifyz0CcmFSMTests.test_valid_init_update_digest_verify�s�����D�M� 2� 2�3�	#�	#�I�$�
#�
#������s�|�'+�}�+4�)0�2�2�2���
�
�d�m�,�,�,��m�m�o�o������s�|�'+�}�+4�)0�2�2�2���
�
�d�m�,�,�,��
�
�c�"�"�"�"�
#�	#�	#rc	�:�dt|j��fD�]}dt|j��fD]�}tj|jtj|j||���}|�|j��|�|j��}|�	��}tj|jtj|j||���}|�|j��|�
|��|�|�����dS)Nr�)r-rr	rrr r!rsr"rjr#rvr�s      r�test_valid_full_pathz CcmFSMTests.test_valid_full_path�s����D�M� 2� 2�3�	#�	#�I� �#�d�m�"4�"4�5�
#�
#������s�|�'+�}�+4�)0�2�2�2���
�
�d�m�,�,�,��^�^�D�M�2�2���m�m�o�o������s�|�'+�}�+4�)0�2�2�2���
�
�d�m�,�,�,����r�"�"�"��
�
�c�"�"�"�"�#
#�	#�	#rc��tj|jtj|j���}|���dSrC)r	rrr r!rjrEs  r�test_valid_init_digestz"CcmFSMTests.test_valid_init_digest�s/������s�|�4�=�I�I�I���
�
�����rc��tj|jtj|j���}|���}tj|jtj|j���}|�|��dSrC)r	rrr r!rjrvrws   r�test_valid_init_verifyz"CcmFSMTests.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|jd|���}|�|�|��t||��}||j��||j��||j��||j������dS)NrNs333�3�@r�)	rr-r	rrr r!rsrO)r%�method_namer�rpr&�methods      r�&test_valid_multiple_encrypt_or_decryptz2CcmFSMTests.test_valid_multiple_encrypt_or_decrypts���/�	&�	&�K�"�F�D�M�"�m�d�2�4�
&�
&�	��$� $�I�I� #�I���I�����s�|�'+�}�)+�+4�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)Nrr\�)r	rrr r!rsrrjr?r$rv)r%r&�	first_macr@s    r�$test_valid_multiple_digest_or_verifyz0CcmFSMTests.test_valid_multiple_digest_or_verifys�������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|��dSrC)
r	rrr r!rsrr^rer$)r%r&r(r`r's     r�0test_valid_encrypt_and_digest_decrypt_and_verifyz<CcmFSMTests.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�*�dD]�}dD]�}tj|jtj|j���}|r|�|j��t||��}||j��|�t||j������dS)NrN�TFr�
r	rrr r!rsrrOr5r6)r%r��assoc_data_presentr&r�s     r�5test_invalid_multiple_encrypt_decrypt_without_msg_lenzACcmFSMTests.test_invalid_multiple_encrypt_decrypt_without_msg_len6s���/�	D�	D�K�&3�
D�
D�"�����s�|�'+�}�6�6�6��%�1��M�M�$�-�0�0�0� ���5�5����t�}�%�%�%��!�!�)�V�T�]�C�C�C�C�
D�	D�	Drc	�J�dD]�\}}dD]�}tj|jtj|jd���}|r|�|j��t||��|j��|�tt||��|j������dS)N)rN)r#r"r�� rzr�)r%�method1_name�method2_namer�r&s     r�#test_invalid_mixing_encrypt_decryptz/CcmFSMTests.test_invalid_mixing_encrypt_decryptBs���+C�
	1�
	1�&�L�,�&3�
1�
1�"�����s�|�'+�}�)+�-�-�-��&�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"rsr)r	rrr r!r"rrjr5r6rOr^)r%r�r&s   r�+test_invalid_encrypt_or_update_after_digestz7CcmFSMTests.test_invalid_encrypt_or_update_after_digestPs���.�	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#rs)r	rrr r!r"rrjr#rvr5r6rOre)r%r&r(r`r�s     r�+test_invalid_decrypt_or_update_after_verifyz7CcmFSMTests.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�r�r�rrr�r��s��������n�Y��+�+�G��~�k�2�.�.�H��~�j�"�-�-�H�#�#�#�(#�#�#�(#�#�#�,���
���&�&�&�*%�%�%�
,�
,�
,�
D�
D�
D�1�1�1�	5�	5�	5�-�-�-�-�-rr�c���eZdZdZdddd�d�edd��D����d	zd
ddd
dfdddddddddddddddddd d!d"d#d$d%d&gZd'�eD��Zd(�Zd)S)*�TestVectorsz`Class exercising the CCM test vectors found in Appendix C
    of NIST SP 800-38C and in RFC 3610)�0001020304050607�20212223�7162015b�4dac255d� 404142434445464748494a4b4c4d4e4f�10111213141516)� 000102030405060708090a0b0c0d0e0f� 202122232425262728292a2b2c2d2e2f� d2a1f0e051ea5f62081a7792073d593d�1fc64fbfaccdr��1011121314151617)�(000102030405060708090a0b0c0d0e0f10111213�0202122232425262728292a2b2c2d2e2f3031323334353637�0e3b201a9f5b71a7a9b1ceaeccd97e70b6176aad9a4428aa5�484392fbc1b09951r��101112131415161718191a1b�c�J�g|] }tdd��D]
}d|dz|zz���!S)rrz%02X)r?)r�r@�ys   rr�zTestVectors.<listcomp>�s:��P�P�P�!�E�!�B�K�K�P�P�q�F�a��d�1�f�%�P�P�P�Prrr��@202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f�@69915dad1e84c6376a68c2967e4dab615ae0fd1faec44cc484828529463ccf72�b4ac6bec93e8598e7f0dadbcea5br��101112131415161718191a1b1c)r��.08090a0b0c0d0e0f101112131415161718191a1b1c1d1e�.588c979a61c663d2f066d0c2c0f989806d5f6b61dac384�17e8d12cfdf926e0� c0c1c2c3c4c5c6c7c8c9cacbcccdcecf�00000003020100a0a1a2a3a4a5)r��008090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f�072c91a36e135f8cf291ca894085c87e3cc15c439c9e43a3b�a091d56e10400916r�00000004030201a0a1a2a3a4a5)r��208090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20�251b1e5f44a197d1da46b0f8e2d282ae871e838bb64da859657�4adaa76fbd9fb0c5r�00000005040302A0A1A2A3A4A5)�000102030405060708090a0b�&0c0d0e0f101112131415161718191a1b1c1d1e�&a28c6865939a9a79faaa5c4c2a9d4a91cdac8c�96c861b9c9e61ef1r�00000006050403a0a1a2a3a4a5)r
�(0c0d0e0f101112131415161718191a1b1c1d1e1f�(dcf1fb7b5d9e23fb9d4e131253658ad86ebdca3e�51e83f077d9c2d93r�00000007060504a0a1a2a3a4a5)r
�*0c0d0e0f101112131415161718191a1b1c1d1e1f20�*6fc1b011f006568b5171a42d953d469b2570a4bd87�405a0443ac91cb94r�00000008070605a0a1a2a3a4a5)r�r��.0135d1b2c95f41d5d1d4fec185d166b8094e999dfed96c�048c56602c97acbb7490r�00000009080706a0a1a2a3a4a5)r�r�07b75399ac0831dd2f0bbd75879a2fd8f6cae6b6cd9b7db24�c17b4433f434963f34b4r�0000000a090807a0a1a2a3a4a5)r�r�282531a60cc24945a4b8279181ab5c84df21ce7f9b73f42e197�ea9c07e56b5eb17e5f4er�0000000b0a0908a0a1a2a3a4a5)r
r�&07342594157785152b074098330abb141b947b�566aa9406b4d999988ddr�0000000c0b0a09a0a1a2a3a4a5)r
r�(676bb20380b0e301e8ab79590a396da78b834934�f53aa2e9107a8b6c022cr�0000000d0c0b0aa0a1a2a3a4a5)r
r�*c0ffa0d6f05bdb67f24d43a4338d2aa4bed7b20e43�cd1aa31662e7ad65d6dbr�0000000e0d0c0ba0a1a2a3a4a5)�0be1a88bace018b1�.08e8cf97d820ea258460e96ad9cf5289054d895ceac47c�.4cb97f86a2a4689a877947ab8091ef5386a6ffbdd080f8�e78cf7cb0cddd7b3� d7828d13b2b0bdc325a76236df93cc6b�00412b4ea9cdbe3c9696766cfa)�63018f76dc8a1bcb�09020ea6f91bdd85afa0039ba4baff9bfb79c7028949cd0ec�04ccb1e7ca981befaa0726c55d378061298c85c92814abc33�c52ee81d7d77c08ar-�0033568ef7b2633c9696766cfa)�aa6cfa36cae86b40�2b916e0eacc1c00d7dcec68ec0b3bbb1a02de8a2d1aa346132e�2b1d23a2220ddc0ac900d9aa03c61fcf4a559a4417767089708�a776796edb723506r-�00103fe41336713c9696766cfa)�d0d0735c531e1becf049c244�&12daac5630efa5396f770ce1a66b21f7b2101c�&14d253c3967b70609b7cbb7c49916028324526�9a6f49975bcadeafr-�00764c63b8058e3c9696766cfa)�77b60f011c03e1525899bcae�(e88b6a46c78d63e52eb8c546efb5de6f75e9cc0d�(5545ff1a085ee2efbf52b2e04bee1e2336c73e3f�762c0c7744fe7e3cr-�00f8b678094e3b3c9696766cfa)�cd9044d2b71fdb8120ea60c0�*6435acbafb11a82e2f071d7ca4a5ebd93a803ba87f�*009769ecabdf48625594c59251e6035722675e04c8�47099e5ae0704551r-�00d560912d3f703c9696766cfa)�d85bc7e69f944fb8�.8a19b950bcf71a018e5e6701c91787659809d67dbedd18�.bc218daa947427b6db386a99ac1aef23ade0b52939cb6a�637cf9bec2408897c6bar-�0042fff8f1951c3c9696766cfa)�74a0ebc9069f5b37�01761433c37c5a35fc1f39f406302eb907c6163be38c98437�05810e6fd25874022e80361a478e3e9cf484ab04f447efff6�f0a477cc2fc9bf548944r-�00920f40e56cdc3c9696766cfa)�44a3aa3aae6475ca�2a434a8e58500c6e41530538862d686ea9e81301b5ae4226bfa�2f2beed7bc5098e83feb5b31608f8e29c38819a89c8e776f154�4d4151a4ed3a8b87b9cer-�0027ca0c7120bc3c9696766cfa)�ec46bb63b02520c33c49fd70�&b96b49e21d621741632875db7f6c9243d2d7c2�&31d750a09da3ed7fddd49a2032aabf17ec8ebf�7d22c8088c666be5c197r-�005b8ccbcd9af83c9696766cfa)�47a65ac78b3d594227e85e71�(e2fcfbb880442c731bf95167c8ffd7895e337076�(e882f1dbd38ce3eda7c23f04dd65071eb41342ac�df7e00dccec7ae52987dr-�003ebe94044b9a3c9696766cfa)�6e37a6ef546d955d34ab6059�*abf21c0b02feb88f856df4a37381bce3cc128517d4�*f32905b88a641b04b9c9ffb58cc390900f3da12ab1�6dce9e82efa16da62059r-�008d493b30ae8b3c9696766cfac�&�g|]}d�|D����S)c�,�g|]}t|����Sr�r)r�r@s  rr�z!TestVectors.<listcomp>.<listcomp>&s��.�.�.�a�Y�q�\�\�.�.�.rr�)r��tvs  rr�zTestVectors.<listcomp>&s'��J�J�J�2�.�.�2�.�.�.�J�J�Jrc	��|jD�]\}}}}}}tj|tj|t	|�����}|�|��|�|��\}}	|�||��|�||	��tj|tj|t	|�����}|�|��|�||��}
|�||
����dS)N)r[)	�test_vectorsr	rr r-rsr^r$re)r%�
assoc_datar'r(r`�keyrr&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__�joinr?�test_vectors_hexrjrnr�rrr�r�ms������*�*�	�	�	&��7�7�P�P�u�u�Q�r�{�{�P�P�P�Q�Q�SV�
V�
L�
L�
(�
,�
&�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�Ml��\K�J�9I�J�J�J�L�
&�
&�
&�
&�
&rr�c�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�TestVectorsWycheproofc�n�tj�|��||_||_d|_dS)N�None)�unittest�TestCase�__init__�_wycheproof_warnings�
_extra_params�_id)r%�wycheproof_warnings�extra_paramss   rrxzTestVectorsWycheproof.__init__:s4����"�"�4�(�(�(�$7��!�)�������rc�@�d�}tdddd|i���|_dS)Nc��|ddzS)N�tagSize�r�)�groups r�
filter_tagz/TestVectorsWycheproof.setUp.<locals>.filter_tagBs����#�q�(�(r)�Cipher�
wycheproofzaes_ccm_test.jsonzWycheproof AES CCM�tag_size)�	group_tag)rrh)r%r�s  r�setUpzTestVectorsWycheproof.setUp@sA��	)�	)�	)�/�/G�/B�/C�:D�j�9Q�S�S�S����rc��|jS�N)r{r7s r�shortDescriptionz&TestVectorsWycheproof.shortDescriptionJs	���x�rc�~�|jr3|jr.ddl}|�d|j�d|j�d���dSdSdS)NrzWycheproof warning: z (�))�warningry�warnings�warnr{�comment)r%rhr�s   rr�zTestVectorsWycheproof.warnMsd��
�:�	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���dt|j��z|_	tj|jtj|jfd|ji|j	��}n�#t$r�}t|j��tddd��vr dt|��vr|j
rJ�Yd}~dS|jtddd��vr d	t|��vr|j
rJ�Yd}~dS|�d}~wwxYw|�|j��|�|j��\}}|j
rM|�||j��|�||j��|�|��dSdS)
NzWycheproof Encrypt CCM Test #r[r=r<rZ�Length of parameter 'nonce'r\r]�Parameter 'mac_len')�str�idr{r	rrlr �ivr�rzr>r-r?�validrs�aadr^�msgr$r(rr�)r%rhr&�er(rs      r�test_encryptz"TestVectorsWycheproof.test_encryptRs���2�S���Z�Z�?���
	��W�R�V�S�\�2�5�6�6�"�+�6�"&�"4�6�6�F�F���	�	�	��2�5�z�z��q�&�!�!4�!4�4�4�9V�Z]�^_�Z`�Z`�9`�9`��8�#�#�#��������{�%��6�1�"5�"5�5�5�:O�SV�WX�SY�SY�:Y�:Y��8�#�#�#��������G�����	����	�
�
�b�f�����+�+�B�F�3�3���C�
�8�	����R���'�'�'����S�"�&�)�)�)��I�I�b�M�M�M�M�M�	�	s#�4A�
C!�?C�"2C�C�C!c���dt|j��z|_	tj|jtj|jfd|ji|j	��}n�#t$r�}t|j��tddd��vr dt|��vr|j
rJ�Yd}~dS|jtddd��vr d	t|��vr|j
rJ�Yd}~dS|�d}~wwxYw|�|j��	|�|j|j��}|j
sJ�|�||j��|�|��dS#t$r
|j
rJ�YdSwxYw)
NzWycheproof Decrypt CCM Test #r[r=r<rZr�r\r]r�)r�r�r{r	rrlr r�r�rzr>r-r?r�rsr�rer(rr$r�r�)r%rhr&r�r's     r�test_decryptz"TestVectorsWycheproof.test_decrypths���2�S���Z�Z�?���
	��W�R�V�S�\�2�5�6�6�"�+�6�"&�"4�6�6�F�F���	�	�	��2�5�z�z��q�&�!�!4�!4�4�4�9V�Z]�^_�Z`�Z`�9`�9`��8�#�#�#��������{�%��6�1�"5�"5�5�5�:O�SV�WX�SY�SY�:Y�:Y��8�#�#�#��������G�����	����	�
�
�b�f����	��*�*�2�5�"�&�9�9�B��8�O�O�O����R���(�(�(��I�I�b�M�M�M�M�M���	 �	 �	 ��x�������	 ���s5�4A�
C!�?C�"2C�C�C!�? E�E1�0E1c��dt|j��z|_t|j��tddd��vst|j��dkrdStj|j	tj
|jfd|ji|j��}|�
|j��t|jdt|j��dz
zd	z��}|�t"|j||j��dS)
Nz%Wycheproof Corrupt Decrypt CCM Test #r=r<rZrr[�r:�)r�r�r{r-r�r?r(r	rrlr r�rzrsr�rr5r>rer)r%rhr&�
ct_corrupts    r�test_corrupt_decryptz*TestVectorsWycheproof.test_corrupt_decrypt�s���:�S���Z�Z�G����r�u�:�:�U�1�f�a�0�0�0�0�C���J�J�!�O�O��F�������r�u�2�2�b�k�2�"�0�2�2���
�
�b�f�����B�E�7�c�"�%�j�j�1�n�#=��#G�H�H�
����*�f�&?��R�V�T�T�T�T�Trc��|jD]A}|�|��|�|��|�|���BdSr�)rhr�r�r�)r%rhs  rrnzTestVectorsWycheproof.runTest�s\���'�	*�	*�B����b�!�!�!����b�!�!�!��%�%�b�)�)�)�)�	*�	*rN)r�r�r�rxr�r�r�r�r�r�rnr�rrrsrs8s����������S�S�S����R�R�R�
���,���2U�U�U�*�*�*�*�*rrsc���|�d��}g}|tt��z
}|tt��z
}|t	��gz
}|t|��gz
}|S)Nr|)�getrrr�r�rs)�configr|�testss   r�	get_testsr��sj�� �*�*�%:�;�;���E�	�_�X�
&�
&�&�E�	�_�[�
)�
)�)�E�	�k�m�m�_��E�	�#�$7�8�8�
9�9�E��Lr�__main__c�F�tjt����dSr�)rv�	TestSuiter�r�rr�suiter��s����9�;�;�'�'�'�'�'rr�)�defaultTest)rv�binasciir�Cryptodome.SelfTest.st_commonr�Cryptodome.SelfTest.loaderr�Cryptodome.Util.py3compatrr�Cryptodome.Cipherr	�Cryptodome.Hashr
rdrrrwrr�r�rsr�r�r��mainr�rr�<module>r�s���>����������9�9�9�9�9�9�C�C�C�C�C�C�3�3�3�3�3�3�3�3�!�!�!�!�!�!�$�$�$�$�$�$�)�)�)�)�)�)�8�8�8�DQ�DQ�DQ�DQ�DQ�x� �DQ�DQ�DQ�Nt-�t-�t-�t-�t-�(�#�t-�t-�t-�nH&�H&�H&�H&�H&�(�#�H&�H&�H&�VX*�X*�X*�X*�X*�H�-�X*�X*�X*�v�	�	�	�	��z���(�(�(��H�M�g�&�&�&�&�&�&��r

Youez - 2016 - github.com/yon3zu
LinuXploit