Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_hmac.cpython-311.opt-2.pyc
�

�Ke�e����ddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	ddl
mZ	ddl
Zddl
mZddl
mZddl
mZn#e$rdZdZdZdZYnwxYw	ddlZn
#e$rdZYnwxYwd�ZGd�d	ej��ZGd
�dej��ZGd�d
ej��ZGd�dej��ZGd�dej��Zedkrej ��dSdS)�N)�hashlib_helper�check_disallow_instantiation)�_compare_digest)�HMAC)�hmac_new)�compare_digestc�F��tj����fd���}|S)Nc���tj��5tjdt����|i|��cddd��S#1swxYwYdS)N�ignore)�category)�warnings�catch_warnings�filterwarnings�DeprecationWarning)�args�kwargs�funcs  ��8/usr/local/apps/python3/lib/python3.11/test/test_hmac.py�wrapperzignore_warning.<locals>.wrappers����
�
$�
&�
&�	)�	)��#�H�-?�
A�
A�
A�
A��4��(��(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s�#A�A	�A	)�	functools�wraps)rrs` r�ignore_warningrs8����_�T���)�)�)�)���)�
�N�c��eZdZd�Zd�Zejdd���d���Zejdd���d���Zd	�Z	ejd
d���d���Z
ejdd���d
���Zejdd���d���Zejdd���d���Z
ejd��d���Zd�ZdS)�TestVectorsTestCasec��|�|������|�����|�|���t	j|����|�|jd|����|�|j|��|�|j|��dS)Nzhmac-)	�assertEqual�	hexdigest�upper�digest�binascii�	unhexlify�name�digest_size�
block_size)�self�hr �hashnamer$r%s      r�assert_hmac_internalsz)TestVectorsTestCase.assert_hmac_internals*s���	
��������,�,�.�.������?�?�?���������X�%7��%?�%?�@�@�@������!3��!3�!3�4�4�4�������4�4�4������z�2�2�2�2�2rc�	�tj|||���}|�|||||��tj|||���}|�|||||��tj||���}|���}	|	�d��|�|��|�|������|�����tj|||���}|�|||||��tj|d|���}|�|��|�|������|�����tj||���}|�|��|�|������|�����tj|||���}|�|������|�����|�tj	|||���tj|����|�tj	|||���tj|����tj�tj��}|�
|||���|�|||||��t��et|||���}|�|||||��t||���}|���}	|	�d��|�|��|�|������|�����tt d|����}
t|||
���}|�|||||��tj�tj��}|�|||���|�|||||��dSdS)N��	digestmodstest update)r �openssl_)�hmacrr)�copy�updaterrr�newr r!r"�__new__�	_init_old�
c_hmac_new�getattr�_hashopenssl�
_init_hmac)r&�key�datar �hashfuncr(r$r%r'�h2rs           r�assert_hmaczTestVectorsTestCase.assert_hmac3sO��
�I�c�4�8�4�4�4���"�"�
�v�x��j�	
�	
�	
�
�I�c�4�8�4�4�4���"�"�
�v�x��j�	
�	
�	
�
�I�c�X�.�.�.��
�V�V�X�X��
�	�	�.�!�!�!�	���������������,�,�.�.������?�?�?��H�S�$�(�3�3�3���"�"�
�v�x��j�	
�	
�	
�
�H�S�$�(�3�3�3��	���������������,�,�.�.������?�?�?��H�S�H�-�-�-��	���������������,�,�.�.������?�?�?��H�S�$�(�3�3�3����������,�,�.�.������?�?�?�����K��T�(�3�3�3���v�&�&�	
�	
�	
�	
����K��T�(�3�3�3���v�&�&�	
�	
�	
�

�I���d�i�(�(��	���C����2�2�2��"�"�
�v�x��j�	
�	
�	
��!��3���9�9�9�A��&�&��6�8�[�*�
�
�
��3�(�3�3�3�A������B��I�I�n�%�%�%�
�H�H�T�N�N�N����Q�[�[�]�]�0�0�2�2�F�L�L�N�N�C�C�C��<�)>�H�)>�)>�?�?�D��3���5�5�5�A��&�&��6�8�[�*�
�
�
��	�!�!�$�)�,�,�A�
�L�L��d�h�L�7�7�7��&�&��6�8�[�*�
�
�
�
�
�)"�!r�md5T)�opensslc����fd�}|ddd��|ddd��|dd	d
��|ttdd����d
d��|ddd��|ddd��|ddd��dS)Nc	�T����|||tjddd���dS)Nr=��@�r:r(r$r%)r<�hashlibr=�r8r9r r&s   �r�md5testz5TestVectorsTestCase.test_md5_vectors.<locals>.md5test�s?�������T�6� �����
�
�
�
�
�
r��Hi There� 9294727A3638BB1C13F48EF8158BFC9D�Jefe�what do ya want for nothing?� 750c783e6ab0b503eaa86e310a5db738s�����������������2��������������������������������������������������� 56be34521d144c88dbb8c733f0e8b3f6���2��������������������������������������������������� 697eaf0aca3a3aea3a75164746ffaa79s�Test With Truncation� 56461ef2342edc00f9bab995690efd4c�P���������������������������������������������������������������������������������6Test Using Larger Than Block-Size Key - Hash Key First� 6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd�ITest Using Larger Than Block-Size Key and Larger Than One Block-Size Data� 6f630fad67cda0ee1fb1f562db3aa53e��bytes�range)r&rFs` r�test_md5_vectorsz$TestVectorsTestCase.test_md5_vectors}s
���	�	�	�	�	�	����2�	4�	4�	4�	���/�2�	4�	4�	4�	����2�	4�	4�	4�	���e�A�r�l�l�#�#��2�	4�	4�	4�	���'�2�	4�	4�	4�	���I�2�	4�	4�	4�	���8�2�	4�	4�	4�	4�	4r�sha1c����fd�}|ddd��|ddd��|dd	d
��|ttdd����d
d��|ddd��|ddd��|ddd��dS)Nc	�T����|||tjddd���dS)Nr^�rBrC)r<rDr^rEs   �r�shatestz5TestVectorsTestCase.test_sha_vectors.<locals>.shatest�s?�������T�6� �����
�
�
�
�
�
r�rH�(b617318655057264e28bc0b6fb378c8ef146be00rJrK�(effcdf6ae5eb2fa2d27416d5f184df9c259a7c79���������������������rM�(125d7342b9ac11cd91a39af48aa17b4f63f175d3rOrPrQ�(4c9007f4026250c6bc8414f9bf50c86c2d7235dasrS�(4c1a03424b55e07fe7f27be1d58bb9324a9a5a04rUrV�(aa4ae5e15272d00e95705637ce8a3b55ed402112rX�(e8e99d0f45237d786d6bbaa7965c7808bbff1a91rZ)r&rbs` r�test_sha_vectorsz$TestVectorsTestCase.test_sha_vectors�s
���	�	�	�	�	�	����:�	<�	<�	<�	���/�:�	<�	<�	<�	����:�	<�	<�	<�	���e�A�r�l�l�#�#��:�	<�	<�	<�	���'�:�	<�	<�	<�	���I�:�	<�	<�	<�	���8�:�	<�	<�	<�	<�	<rc�T�����������fd�}|ddtjdtjdtjdtjdi���|d	d
tjdtjdtjd
tjdi���|ddtjdtjdtjdtjdi���|td�t
dd��D����dtjdtjdtjdtjdi���|ddtjdtjd tjd!tjd"i���|dd#tjd$tjd%tjd&tjd'i���dS)(Nc	�P��|�}��|||�������dS)NrC)r<)	r8r9�
hexdigestsr r%r$�	hash_namer:r&s	    �����r�hmactestz9TestVectorsTestCase._rfc4231_test_cases.<locals>.hmactest�sG�����)�F�����T�6�!�"�'�%�
�
�
�
�
�
rrcrH�8896fb1128abbdf196832107cd49df33f47b4b1169912ba4f53684b22�@b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7�`afd03944d84895626b0825f4ab46907f15f9dadbe4101ec682aa034c7cebc59cfaea9ea9076ede7f4af152e8b2fa9cb6ڀ87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cdedaa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854)r8r9rorJrK�8a30e01098bc6dbbf45690f3a7e9e6d0f8bbea2a39e6148008fd05e44�@5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843�`af45d2e376484031617f78d2b58a6b1b9c7ef464f5a01b47e42ec3736322445e8e2240ca5e69e2c78b3239ecfab21649ڀ164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea2505549758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737rfrM�87fb3cb3588c6c1f6ffa9694d7d6ad2649365b0c1f65d69d1ec8333ea�@773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe�`88062608d3e6ad8a0aa2ace014c8a86f0aa635d947ac9febe83ef4e55966144b2a5ab39dc13814b94e3ab6e101a34f27ڀfa73b0089d56a284efb0f0756c890be9b1b5dbdd8ee81a3655f83e33b2279d39bf3e848279a722c806b485a47e67c807b946a337bee8942674278859e13292fbc3�K�|]}|V��dS�N�)�.0�xs  r�	<genexpr>z:TestVectorsTestCase._rfc4231_test_cases.<locals>.<genexpr>s"����<�<�1�Q�<�<�<�<�<�<rrOrPrQ�86c11506874013cac6a2abc1bb382627cec6a90d86efc012de7afec5a�@82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665b�`3e8a69b7783c25851933ab6290af6ca77a9981480850009cc5577c6e1f573b4e6801dd23c4a7d679ccf8a386c674cffbڀb0ba465637458c6990e5a8c5f61d4af7e576d97ff94b872de76f8050361ee3dba91ca5c11aa25eb4d679275cc5788063a5f19741120c4f2de2adebeb10a298dds������������������������������������������������������������������������������������������������������������������������������������rV�895e9a0db962095adaebe9b2d6f0dbce2d499f112f2d2b7273fa6870e�@60e431591ee0b67f0d8a26aacbf5b77f8e0bc6213728c5140546040f0ee37f54�`4ece084485813e9088d2c63a041bc5b44f9ef1012a2b588f3cd11f05033ac4c60c2ef6ab4030fe8296248df163f44952ڀ80b24263c7c1a3ebb71493c1dd7be8b49b46d1f41b4aeec1121b013783f8f3526b56d037e05f2598bd0fd2215d6a1e5295e64f73f63f0aec8b915a985d786598s�This is a test using a larger than block-size key and a larger than block-size data. The key needs to be hashed before being used by the HMAC algorithm.�83a854166ac5d9f023f54d517d0b39dbd946770db9c2b95c9f6f565d1�@9b09ffa71b942fcb27635fbcd5b0e944bfdc63644f0713938a7f51535c3a35e2�`6617178e941f020d351e2f254e8fd32c602420feb0b8fb9adccebb82461e99c5a678cc31e799176d3860e6110c46523eڀe37b6a775dc87dbaa4dfa9f96e5e3ffddebd71f8867289865df5a32d20cdc944b6022cac3c4982b10d5eeb55c3e4de15134676fb6de0446065c97440fa8c6a58)rD�sha224�sha256�sha384�sha512r[r\)r&r:rpr$r%rqs````` r�_rfc4231_test_casesz'TestVectorsTestCase._rfc4231_test_cases�sS�������		�		�		�		�		�		�		�		�		�	��z�#��>�$>��>�$F��>�$F��>�$F��	�	�	�	�"	��w�7��>�$>��>�$F��>�$F��>�$F��	�	�	�	�"	��z�"��>�$>��>�$F��>�$F��>�$F��	�	�	�	�"	��u�<�<��d�F�(;�(;�<�<�<�<�<�"��>�$>��>�$F��>�$F��>�$F��	�	�	�	�"	��{�2��>�$>��>�$F��>�$F��>�$F��	�	�	�	�$	��{�4��>�$>��>�$F��>�$F��>�$F��
	�	�	�	�	�	rr�c�J�|�tjddd��dS)Nr��rB)r�rDr��r&s r�test_sha224_rfc4231z'TestVectorsTestCase.test_sha224_rfc4231F�$��� � ����2�r�B�B�B�B�Brr�c�J�|�tjddd��dS)Nr�� rB)r�rDr�r�s r�test_sha256_rfc4231z'TestVectorsTestCase.test_sha256_rfc4231Jr�rr�c�J�|�tjddd��dS)Nr��0�)r�rDr�r�s r�test_sha384_rfc4231z'TestVectorsTestCase.test_sha384_rfc4231N�$��� � ����2�s�C�C�C�C�Crr�c�J�|�tjddd��dS)Nr�rBr�)r�rDr�r�s r�test_sha512_rfc4231z'TestVectorsTestCase.test_sha512_rfc4231Rr�rc�>�Gd�dt��}tj��5tjdt��|�t��5t
jdd|���|�d��ddd��n#1swxYwYd|_	|�t��5t
jdd|���|�d	��ddd��n#1swxYwYddd��dS#1swxYwYdS)
Nc�"�eZdZ	d�Zd�Zd�ZdS)�JTestVectorsTestCase.test_legacy_block_size_warnings.<locals>.MockCrazyHashc�N�tj|�|_|jj|_dSr)rDr��_xr$)r&rs  r�__init__zSTestVectorsTestCase.test_legacy_block_size_warnings.<locals>.MockCrazyHash.__init__Zs#��!�.�$�/���#'�7�#6�� � � rc�:�|j�|��dSr)r�r0)r&�vs  rr0zQTestVectorsTestCase.test_legacy_block_size_warnings.<locals>.MockCrazyHash.update]s������q�!�!�!�!�!rc�4�|j���Sr)r�r r�s rr zQTestVectorsTestCase.test_legacy_block_size_warnings.<locals>.MockCrazyHash.digest_s���w�~�~�'�'�'rN)�__name__�
__module__�__qualname__r�r0r r�rr�
MockCrazyHashr�XsD������5�
7�
7�
7�
"�
"�
"�
(�
(�
(�
(�
(rr��error�a�br+z)Expected warning about missing block_sizerOz'Expected warning about small block_size)
�objectr
r�simplefilter�RuntimeWarning�assertRaisesr.r�failr%)r&r�s  r�test_legacy_block_size_warningsz3TestVectorsTestCase.test_legacy_block_size_warningsVs��	(�	(�	(�	(�	(�F�	(�	(�	(��
$�
&�
&�		E�		E��!�'�>�:�:�:��"�"�>�2�2�
G�
G��	�$��
�>�>�>�>��	�	�E�F�F�F�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G����
G�
G�
G�
G�()�M�$��"�"�>�2�2�
E�
E��	�$��
�>�>�>�>��	�	�C�D�D�D�
E�
E�
E�
E�
E�
E�
E�
E�
E�
E�
E����
E�
E�
E�
E�		E�		E�		E�		E�		E�		E�		E�		E�		E�		E�		E�		E����		E�		E�		E�		E�		E�		EsY�5D�-B�	D�B	�D�B	�$D�-C:�.D�:C>	�>D�C>	�D�D�Dc���	|�td��5d}d}tj||d���ddd��n#1swxYwY|�td��5tj||��ddd��n#1swxYwY|�td��5tj||d���ddd��dS#1swxYwYdS)Nzrequired.*digestmodrGrHr+�)�msgr,)�assertRaisesRegex�	TypeErrorr.rr1)r&r8r9s   r�test_with_digestmod_no_defaultz2TestVectorsTestCase.test_with_digestmod_no_defaultms���C�
�
#�
#�I�/E�
F�
F�	1�	1��C��D��I�c�4�4�0�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1��
#�
#�I�/E�
F�
F�	 �	 ��H�S�$����	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 �
�
#�
#�I�/E�
F�
F�	3�	3��I�c�t�r�2�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	3�	3s5�A�A	�A	�+B
�
B�B�3C�C�CN)r�r�r�r)r<r�requires_hashdigestr]rlr�r�r�r�r�r�r�r�rrrr(s�������3�3�3�H�H�H�T(�^�'��t�<�<�<�'4�'4�=�<�'4�R(�^�'���=�=�=�%<�%<�>�=�%<�Nu�u�u�n(�^�'��$�?�?�?�C�C�@�?�C�(�^�'��$�?�?�?�C�C�@�?�C�(�^�'��$�?�?�?�D�D�@�?�D�(�^�'��$�?�?�?�D�D�@�?�D�(�^�'��1�1�E�E�2�1�E�,	3�	3�	3�	3�	3rrc���eZdZdZejd��d���Zejd��d���Zejd��d���Zejd��d���Z	ejd��d���Z
ejd��d���Zejd��d	���Ze
jed
ud��d���Ze
jed
ud
��d���Zd
S)�ConstructorTestCase�@6c845b47f52b3b47f6590c502db7825aad757bf4fadc8fa972f7cd2e76a5bdebr�c��	tjdd���dS#t$r|�d��YdSwxYw)N�keyr�r+z+Standard constructor call raised exception.)r.r�	Exceptionr�r�s r�test_normalzConstructorTestCase.test_normals^��	E��I�f��1�1�1�1�1�1���	E�	E�	E��I�I�C�D�D�D�D�D�D�	E���s��=�=c��|�t��5tjdd���}ddd��dS#1swxYwYdS�Nr8r�r+)r�r�r.r�r&r's  r�test_with_str_keyz%ConstructorTestCase.test_with_str_key�s����
�
�y�
)�
)�	5�	5��	�%�8�4�4�4�A�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�	5�	5��?�A�Ac��|�t��5tjdd���}ddd��dS#1swxYwYdSr�)r�r�r.r1r�s  r�test_dot_new_with_str_keyz-ConstructorTestCase.test_dot_new_with_str_key�s����
�
�y�
)�
)�	4�	4����(�3�3�3�A�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	4�	4r�c���	tjddd���}n%#t$r|�d��YnwxYw|�|���|j��dS)Nr��
hash this!r�r+z5Constructor call with text argument raised exception.)r.rr�r�rr�expectedr�s  r�
test_withtextz!ConstructorTestCase.test_withtext�s~��	O��	�&�-�8�D�D�D�A�A���	O�	O�	O��I�I�M�N�N�N�N�N�	O�������������
�6�6�6�6�6s��<�<c��	tjtd��td��d���}n%#t$r|�d��YnwxYw|�|���|j��dS)Nr�r�r�r+z;Constructor call with bytearray arguments raised exception.)r.r�	bytearrayr�r�rrr�r�s  r�test_with_bytearrayz'ConstructorTestCase.test_with_bytearray�s���	U��	�)�F�+�+�Y�}�-E�-E�$,�.�.�.�A�A���	U�	U�	U��I�I�S�T�T�T�T�T�	U�������������
�6�6�6�6�6s�14�A�Ac��	tjdtd��d���}n%#t$r|�d��YnwxYw|�|���|j��dS)Nr�r�r�r+z6Constructor call with memoryview msg raised exception.)r.r�
memoryviewr�r�rrr�r�s  r�test_with_memoryview_msgz,ConstructorTestCase.test_with_memoryview_msg�s���	P��	�&�*�]�";�";�x�P�P�P�A�A���	P�	P�	P��I�I�N�O�O�O�O�O�	P�������������
�6�6�6�6�6s�$'�A	�A	c��	tjddtj��}dS#t$r|�d��YdSwxYw)Nr�rz6Constructor call with hashlib.sha256 raised exception.)r.rrDr�r�r�r�s  r�test_withmodulez#ConstructorTestCase.test_withmodule�s\��	P��	�&�#�w�~�6�6�A�A�A���	P�	P�	P��I�I�N�O�O�O�O�O�O�	P���s� $�A�ANz
need _hashlibc��t|t��|�td��5dt_ddd��dS#1swxYwYdS)Nzimmutable type)r�C_HMACr�r��valuer�s r�test_internal_typesz'ConstructorTestCase.test_internal_types�s���	%�T�6�2�2�2�
�
#�
#�I�/?�
@�
@�	 �	 ��F�L�	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 �	 �	 s�
A�A�Azneed _sha256c�r�tjddtj���}|�|���|j��|�|jd��tjddtj��}|�|tj
|j����dS)Nr�r�r+zhmac-sha256)r.r�
sha256_moduler�rrr�r#r r!r")r&r'r s   r�test_with_sha256_modulez+ConstructorTestCase.test_with_sha256_module�s����I�f�m�}�7K�L�L�L�����������
�6�6�6�������/�/�/���V�]�M�4H�I�I�������!3�D�M�!B�!B�C�C�C�C�Cr)r�r�r�r�rr�r�r�r�r�r�r�r��unittest�
skipUnlessr�r�r�r�r�rrr�r�ys�������	K�
�(�^�'��1�1�E�E�2�1�E�(�^�'��1�1�5�5�2�1�5�(�^�'��1�1�4�4�2�1�4�(�^�'��1�1�7�7�2�1�7�(�^�'��1�1�7�7�2�1�7�(�^�'��1�1�7�7�2�1�7�(�^�'��1�1�P�P�2�1�P��X���t�+�_�=�=� � �>�=� ��X���d�2�N�C�C�D�D�D�C�D�D�Drr�c�@�eZdZejd��d���ZdS)�SanityTestCaser�c�"�	tjdd���}|�d��|���|���|���dS#t$r|�d��YdSwxYw)Ns
my secret keyr�r+scompute the hash of this text!z3Exception raised during normal usage of HMAC class.)r.rr0r rr/r�r�r�s  r�test_exercise_all_methodsz(SanityTestCase.test_exercise_all_methods�s���	M��	�*�h�?�?�?�A�
�H�H�6�7�7�7�
�H�H�J�J�J�
�K�K�M�M�M�
�F�F�H�H�H�H�H���	M�	M�	M��I�I�K�L�L�L�L�L�L�	M���s�A'A+�+B�
BN)r�r�r�rr�r�r�rrr�r��s@������'�^�'��1�1�
M�
M�2�1�
M�
M�
Mrr�c�:�eZdZejd��d���Zejd��d���Zeje	dud��ejd��d�����Z
ejd��d���Zejd��d���ZdS)	�CopyTestCaser�c��tj�tj��}|�ddd���|���}|�t
|j��t
|j��d��|�t
|j��t
|j��d��dS)Nr��msgr�r+zTypes of inner don't match.zTypes of outer don't match.)	r.rr2r3r/r�type�_inner�_outer�r&�h1r;s   r�test_attributes_oldz CopyTestCase.test_attributes_old�s����Y�
�
�t�y�
)�
)��
���V�V�x��8�8�8�
�W�W�Y�Y������b�i���$�r�y�/�/�)�	+�	+�	+�����b�i���$�r�y�/�/�)�	+�	+�	+�	+�	+rc�F�tj�tj��}|�ddd���|���}|�t
|��t
|��kd��|�t
|j��t
|j��kd��|�t
|j��t
|j��kd��|�	|j
d��dS)Nr�r�r�r+�"No real copy of the HMAC instance.z&No real copy of the attribute 'inner'.z&No real copy of the attribute 'outer'.)r.rr2r3r/�
assertTrue�idr�r��assertIs�_hmacr�s   r�test_realcopy_oldzCopyTestCase.test_realcopy_old�s����Y�
�
�t�y�
)�
)��
���V�V�x��8�8�8�
�W�W�Y�Y������2���"�R�&�&�(�*N�O�O�O�����2�9�
�
��B�I���6�4�	6�	6�	6�����2�9�
�
��B�I���6�4�	6�	6�	6��
�
�b�h��%�%�%�%�%rNztest requires _hashopensslc�*�tj�tj��}|�ddd���|���}|�t
|j��t
|j��k��dS)Nr�r�r�r+)r.rr2r7r/r�r�r�r�s   r�test_realcopy_hmaczCopyTestCase.test_realcopy_hmac�sm���Y�
�
�t�y�
)�
)��
�
�
�f�f��
�9�9�9�
�W�W�Y�Y������2�8����2�8���4�5�5�5�5�5rc�p�tjdd���}|�d��|���}|�|���|���d��|�|���|���d��dS)Nr�r�r+�some random text�-Digest of copy doesn't match original digest.�3Hexdigest of copy doesn't match original hexdigest.)r.rr0r/rr rr�s   r�
test_equalityzCopyTestCase.test_equality�s����Y�v��
2�
2�
2��
�	�	�%�&�&�&�
�W�W�Y�Y����������b�i�i�k�k�;�	=�	=�	=��������������A�	C�	C�	C�	C�	Crc���tjdd���}|�d��|���}|�t|��t|��kd��|�|���|���d��|�|���|���d��dS)Nr�r�r+r�r�r�r�)	r.r1r0r/r�r�rr rr�s   r�test_equality_newzCopyTestCase.test_equality_news����X�f��
1�
1�
1��
�	�	�%�&�&�&�
�W�W�Y�Y������r�F�F�b��f�f��B�	
�	
�	
�	
��������b�i�i�k�k�;�	=�	=�	=��������������A�	C�	C�	C�	C�	Cr)
r�r�r�rr�r�r�r��skipIfr6r�r�rr�rrr�r��s������'�^�'��1�1�+�+�2�1�+�(�^�'��1�1�&�&�2�1�&��X�_�\�T�)�+G�H�H�'�^�'��1�1�6�6�2�1�I�H�6�(�^�'��1�1�C�C�2�1�C�(�^�'��1�1�C�C�2�1�C�C�Crr�c�X�eZdZd�Zd�Zejedud��d���Zd�Z	dS)�CompareDigestTestCasec���|�tj��t�'|�tjt��dS|�tjt
��dSr)�_test_compare_digestr.r�openssl_compare_digestr��operator_compare_digestr�s r�test_hmac_compare_digestz.CompareDigestTestCase.test_hmac_compare_digests[���!�!�$�"5�6�6�6�!�-��M�M�$�-�/E�F�F�F�F�F��M�M�$�-�/F�G�G�G�G�Grc�:�|�t��dSr)rrr�s r�test_operator_compare_digestz2CompareDigestTestCase.test_operator_compare_digests���!�!�"9�:�:�:�:�:rNztest requires _hashlibc�:�|�t��dSr)rrr�s r�test_openssl_compare_digestz1CompareDigestTestCase.test_openssl_compare_digest!s���!�!�"8�9�9�9�9�9rc�"�d\}}|�t|||��d\}}|�t|||��d\}}|�t|||��d\}}|�t|||��d\}}|�t|||��d\}}|�|||����d\}}|�|||����d\}}|�|||����d	\}}|�|||����d
\}}|�|||����d\}}|�|||����t	d��t	d��}}|�|||����t	d��t	d
��}}|�|||����t	d��t	d��}}|�|||����t	d��d}}|�|||����|�|||����t	d��d
}}|�|||����|�|||����t	d��d}}|�|||����|�|||����d\}}|�|||����d\}}|�|||����d\}}|�|||����d\}}|�t|||��d\}}|�t|||��d\}}|�t|||��d\}}|�t|||��d\}}|�t|||��Gd�dt
��}|d��|d��}}|�|||����|d��d}}|�|||����|d��|d��}}|�|||����Gd�dt��}|d��|d��}}|�|||����|d��d}}|�|||����|d��|d��}}|�|||����dS)N)�d��)r�foobar)rr)�foobarr)rr)r�foo)�ޭ��sޭ)r�foobaz)rs���)rr)rrrrr)rr)�foor)r�foobaz)rrO)�fooärc��eZdZd�ZdS)�9CompareDigestTestCase._test_compare_digest.<locals>.mystrc��dS�NFr��r&�others  r�__eq__z@CompareDigestTestCase._test_compare_digest.<locals>.mystr.__eq__y����urN�r�r�r�rr�rr�mystrrx�#������
�
�
�
�
rr"rrc��eZdZd�ZdS)�;CompareDigestTestCase._test_compare_digest.<locals>.mybytesc��dSrr�rs  rrzBCompareDigestTestCase._test_compare_digest.<locals>.mybytes.__eq__�r rNr!r�rr�mybytesr%�r#rr')r�r��assertFalser�r��strr[)r&r�a�br"r's      rrz*CompareDigestTestCase._test_compare_digest%s#�����1����)�^�Q��:�:�:����1����)�^�Q��:�:�:����1����)�^�Q��:�:�:�"���1����)�^�Q��:�:�:�"���1����)�^�Q��:�:�:�!���1�������1�-�-�.�.�.�/���1�������1�-�-�.�.�.�$���1�������1�-�-�.�.�.�7���1�������1�-�-�.�.�.�$���1������q�!�,�,�-�-�-�7���1������q�!�,�,�-�-�-���#�#�Y�y�%9�%9�1�������q�!�,�,�-�-�-���#�#�Y�v�%6�%6�1��������1�-�-�.�.�.���#�#�Y�y�%9�%9�1��������1�-�-�.�.�.���#�#�Y�1�������q�!�,�,�-�-�-������q�!�,�,�-�-�-���#�#�V�1��������1�-�-�.�.�.�������1�-�-�.�.�.���#�#�Y�1��������1�-�-�.�.�.�������1�-�-�.�.�.�"���1������q�!�,�,�-�-�-����1�������1�-�-�.�.�.�"���1�������1�-�-�.�.�.�#���1����)�^�Q��:�:�:�"���1����)�^�Q��:�:�:����1����)�^�Q��:�:�:����1����)�^�Q��:�:�:����1����)�^�Q��:�:�:�	�	�	�	�	�C�	�	�	��u�X�����h���1�������q�!�,�,�-�-�-��u�X����1�������q�!�,�,�-�-�-��u�X�����h���1��������1�-�-�.�.�.�	�	�	�	�	�e�	�	�	��w�y�!�!�7�7�9�#5�#5�1�������q�!�,�,�-�-�-��w�y�!�!�9�1�������q�!�,�,�-�-�-��w�y�!�!�7�7�9�#5�#5�1��������1�-�-�.�.�.�.�.r)
r�r�r�r	rr�rrr
rr�rrrrs{������H�H�H�;�;�;��X�_�+�t�3�5M�N�N�:�:�O�N�:�g/�g/�g/�g/�g/rr�__main__)!r!rr.rDr��
unittest.mockr
�test.supportrr�	_operatorrr�_hashlibr6rr�rr4rr�ImportError�_sha256r�r�TestCaserr�r�r�rr��mainr�rr�<module>r5sv������������������������������E�E�E�E�E�E�E�E�@�@�@�@�@�@�	"�#�#�#�#�'�'�'�'�'�'�/�/�/�/�/�/�A�A�A�A�A�A�A���"�"�"��L�
�F��J�!����	"�����#�#�#�#�#�������M�M�M��������N3�N3�N3�N3�N3�(�+�N3�N3�N3�b
LD�LD�LD�LD�LD�(�+�LD�LD�LD�^
M�
M�
M�
M�
M�X�&�
M�
M�
M� :C�:C�:C�:C�:C�8�$�:C�:C�:C�zw/�w/�w/�w/�w/�H�-�w/�w/�w/�t�z����H�M�O�O�O�O�O��s#�A�
A�A�A�A&�%A&