HEX
Server: LiteSpeed
System: Linux server.nevid-deploma.com 4.18.0-553.111.1.lve.el8.x86_64 #1 SMP Fri Mar 13 13:42:17 UTC 2026 x86_64
User: smilepac (1037)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cppython/lib/python3.8/site-packages/botocore/__pycache__/httpchecksum.cpython-38.pyc
U

KD�g�H�@sdZddlZddlZddlZddlmZddlmZmZddl	m
Z
mZmZddl
mZmZmZddlmZddlmZdd	lmZmZmZe
r�dd
lmZndZe�e�ZdZGdd
�d
�Z Gdd�de �Z!Gdd�de �Z"Gdd�de �Z#Gdd�de �Z$Gdd�de �Z%Gdd�de �Z&Gdd�d�Z'Gdd�de�Z(dd�Z)d<d d!�Z*d"d#�Z+d$d%�Z,d&d'�Z-d(d)�Z.d=d*d+�Z/d,d-�Z0d.d/�Z1d0d1�Z2e!e%e&d2�Z3d3d4d5gZ4e
�r�e"e#d6�Z5ed7��r�e$e5d5<e3�6e5�e7d8d9�e5�8�D���s�t9�e:e3�8��Z;d5d4d3d:d;gZ<dS)>aBThe 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�has_minimum_crt_version�urlparse)�AwsChunkedWrapperError�FlexibleChecksumError�MissingDependencyException)�StructureShape)�
StreamingBody)�conditionally_calculate_md5�determine_content_length�has_checksum_header)�	checksumsZCRC32c@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�BaseChecksum�cCsdS�N���self�chunkrr�B/opt/cppython/lib/python3.8/site-packages/botocore/httpchecksum.py�update7szBaseChecksum.updatecCsdSrr�rrrr�digest:szBaseChecksum.digestcCs|��}t�|��d�S)N�ascii)r�base64�	b64encode�decode)r�bsrrr�	b64digest=szBaseChecksum.b64digestcs:���}t��fdd�d�D]}��|�q��|�dS)Ncs���j�Sr)�read�_CHUNK_SIZEr��fileobjrrr�<lambda>C�z.BaseChecksum._handle_fileobj.<locals>.<lambda>r')�tell�iterr�seek)rr%Zstart_positionrrr$r�_handle_fileobjAszBaseChecksum._handle_fileobjcCs,t|ttf�r|�|�n
|�|�|��Sr)�
isinstance�bytes�	bytearrayrr+r!)r�bodyrrr�handleGs
zBaseChecksum.handleN)	�__name__�
__module__�__qualname__r#rrr!r+r0rrrrr4src@s$eZdZdd�Zdd�Zdd�ZdS)�
Crc32ChecksumcCs
d|_dS�Nr��
_int_crc32rrrr�__init__PszCrc32Checksum.__init__cCst||j�d@|_dS�Nl��)rr7rrrrrSszCrc32Checksum.updatecCs|jjddd�S�N��big��	byteorder�r7�to_bytesrrrrrVszCrc32Checksum.digestN�r1r2r3r8rrrrrrr4Osr4c@s$eZdZdd�Zdd�Zdd�ZdS)�CrtCrc32ChecksumcCs
d|_dSr5r6rrrrr8\szCrtCrc32Checksum.__init__cCst�||j�}|d@|_dSr9)�
crt_checksumsrr7�rrZnew_checksumrrrr_szCrtCrc32Checksum.updatecCs|jjddd�Sr:r?rrrrrcszCrtCrc32Checksum.digestNrArrrrrBZsrBc@s$eZdZdd�Zdd�Zdd�ZdS)�CrtCrc32cChecksumcCs
d|_dSr5)�_int_crc32crrrrr8iszCrtCrc32cChecksum.__init__cCst�||j�}|d@|_dSr9)rC�crc32crFrDrrrrlszCrtCrc32cChecksum.updatecCs|jjddd�Sr:)rFr@rrrrrpszCrtCrc32cChecksum.digestNrArrrrrEgsrEc@s$eZdZdd�Zdd�Zdd�ZdS)�CrtCrc64NvmeChecksumcCs
d|_dSr5)�_int_crc64nvmerrrrr8vszCrtCrc64NvmeChecksum.__init__cCst�||j�}|d@|_dS)Nl����)rC�	crc64nvmerIrDrrrryszCrtCrc64NvmeChecksum.updatecCs|jjddd�S)N�r<r=)rIr@rrrrr}szCrtCrc64NvmeChecksum.digestNrArrrrrHtsrHc@s$eZdZdd�Zdd�Zdd�ZdS)�Sha1ChecksumcCst�|_dSr)r�	_checksumrrrrr8�szSha1Checksum.__init__cCs|j�|�dSr�rMrrrrrr�szSha1Checksum.updatecCs
|j��Sr�rMrrrrrr�szSha1Checksum.digestNrArrrrrL�srLc@s$eZdZdd�Zdd�Zdd�ZdS)�Sha256ChecksumcCst�|_dSr)rrMrrrrr8�szSha256Checksum.__init__cCs|j�|�dSrrNrrrrr�szSha256Checksum.updatecCs
|j��SrrOrrrrr�szSha256Checksum.digestNrArrrrrP�srPc@sFeZdZdZddd�Zdd�Zdd	d
�Zddd�Zd
d�Zdd�Z	dS)�AwsChunkedWrapperrN�x-amz-checksumcCs2||_||_||_|��|dkr(|j}||_dSr)�_raw�_checksum_name�
_checksum_cls�_reset�_DEFAULT_CHUNK_SIZE�_chunk_size)r�raw�checksum_cls�
checksum_name�
chunk_sizerrrr8�szAwsChunkedWrapper.__init__cCs&d|_d|_d|_|jr"|��|_dS)Nr'F)�
_remaining�	_completerMrUrrrrrV�s
zAwsChunkedWrapper._resetrcCs2|dks|dkrtdd��|��|j�d�dS)Nrz Can only seek to start of stream��	error_msg)rrVrSr*)r�offset�whencerrrr*�s�zAwsChunkedWrapper.seekcCs�|dk	r|dkrd}|jr$|js$dS|dkp8|t|j�k}|jsn|rn|j|��7_|dkpj|t|j�k}q:|dkr�t|j�}|jd|�}|j|d�|_|S)Nrr')r^r]�len�_make_chunk)r�sizeZwant_more_bytesZ	to_returnrrrr"�s

zAwsChunkedWrapper.readcCs�|j�|j�}tt|��dd��d�}||_|jrB|j�|�|jrv|jrv|j	�d�}|j�
��d�}d||fSd||fS)N�rs0
%s:%s

s%s
%s
)rSr"rX�hexrc�encoder^rMrrTr!)rZ	raw_chunk�hex_len�name�checksumrrrrd�szAwsChunkedWrapper._make_chunkccs|js|��VqdSr)r^rdrrrr�__iter__�szAwsChunkedWrapper.__iter__)NrRN)r)N)
r1r2r3rWr8rVr*r"rdrlrrrrrQ�s�


rQcs2eZdZ�fdd�Zd�fdd�	Zdd�Z�ZS)	�StreamingChecksumBodycst��||�||_||_dSr)�superr8rM�	_expected)rZ
raw_stream�content_lengthrk�expected��	__class__rrr8�szStreamingChecksumBody.__init__Ncs:t�j|d�}|j�|�|dks.|s6|dkr6|��|S)N)�amtr)rnr"rMr�_validate_checksum)rrtrrrrrr"�s
zStreamingChecksumBody.readcCs<|j��t�|j�kr8d|j�d|j����}t|d��dS)N�Expected checksum �$ did not match calculated checksum: r_)rMrr�	b64decoderor!r	)rr`rrrru�s�z(StreamingChecksumBody._validate_checksum)N)r1r2r3r8r"ru�
__classcell__rrrrrrm�srmcCst|||�t|||�dSr)�"resolve_request_checksum_algorithm�$resolve_response_checksum_algorithms)�request�operation_model�paramsrrr�resolve_checksum_context�src
Cs^t|�rdS|d�di�}|ddj}|j}|jp>|�d�}|�d�}|r�||kr�|dkrbt}||��}	|	|kr�ts�|	tkr�t	d|	�
��d�d��td	|	��d
��nR|s�|r�|dkr�|d�d�r�dSt��}	t
|||�}
|
dk	r�|
td
�|d<ndSd}|j�r4t|d�jdk�r4|ddjdk�r4d}|	|d|	��d�}||d<||dd<dS)N�contextrkZ
client_configZrequestChecksumRequiredZrequestAlgorithmMemberzUsing za requires an additional dependency. You will need to pip install botocore[crt] before proceeding.)�msgz Unsupported checksum algorithm: r_Zwhen_supportedZis_presign_request)rj�value�request_algorithm_header�header�url�httpsZs3�trailer�x-amz-checksum-)�	algorithm�inrj�request_algorithm)r�get�request_checksum_calculation�
http_checksumZhttp_checksum_required�_SUPPORTED_CHECKSUM_ALGORITHMS�lowerr�_CRT_CHECKSUM_ALGORITHMSr
�upperr	�DEFAULT_CHECKSUM_ALGORITHM�$_get_request_algorithm_member_headerZhas_streaming_inputr�schemeZsignature_version)
r|r}r~�supported_algorithms�checksum_contextr�r�Zrequest_checksum_required�algorithm_memberZalgorithm_nameZalgorithm_member_headerZ
location_typer�rrrrzsl��
���������rzcCs4|j}t|t�sdS|j�|�}|r0|j�d�SdS)zDGet the name of the header targeted by the "requestAlgorithmMember".Nrj)Zinput_shaper,r�membersr�Z
serialization)r}r|r�Zoperation_input_shapeZalgorithm_member_shaperrrr�Rs
�r�cCs�|�di��di�}|�d�}|s&dS|dkr8t|�n@|ddkrNt|�n*|ddkrdt|�ntd�|d�d	��d
|kr�|d
}|d|d|d
<dS)Nr�rkr�zconditional-md5r�r�r�zUnknown checksum variant: {}r_r�r��headersrj)r�r
�_apply_request_header_checksum�_apply_request_trailer_checksumr	�format)r|r�r�r�rrr�apply_request_checksumbs"



��r�cCsd|�di��di�}|�d�}|d}||dkr6dSt�|d�}|��|d�}||d|<dS)Nr�rkr�rjr�r�r/)r��
_CHECKSUM_CLSr0)r|r�r��
location_namerZrrrrr�{s
r�cCs�|�di��di�}|�d�}|d}t�|d�}|d}|d}||krPdSd|d	<d
|krr|d
d7<nd|d
<||d
<t|�}|dk	r�t|�|d<d|kr�|d=t�d�t|ttf�r�t	�
|�}t|||d�|d<dS)Nr�rkr�rjr�r�r/�chunkedzTransfer-EncodingzContent-Encodingz,aws-chunkedzaws-chunkedz
X-Amz-TrailerzX-Amz-Decoded-Content-LengthzContent-LengthzVRemoving the Content-Length header since 'chunked' is specified for Transfer-Encoding.)rZr[)r�r�r�str�logger�debugr,r-r.�io�BytesIOrQ)r|r�r�r�rZr�r/rprrrr��s8
�
�r�c
Cs�|j}|�d�}|r�||kr�|dkr(t}dd�|�dg�D�}g}tD] }||krTqF||krF|�|�qF|d�di�}	||	d<|	|dd<dS)NZrequestValidationModeMembercSsh|]}|���qSr)r�)�.0�arrr�	<setcomp>�sz7resolve_response_checksum_algorithms.<locals>.<setcomp>ZresponseAlgorithmsr�rk�response_algorithms)r�r�r��_ALGORITHMS_PRIORITY_LIST�append)
r|r}r~r�r�Zmode_memberr�Zusable_algorithmsr�r�rrrr{�s"

�r{c	Cs�|d}|�di�}|�d�}|s&dS|D]v}d|��}||krBq*d||krPq*|jrht|||�|d<nt|||�|d<|d�di�}||d<||dd<dSt�d	|�d
��dS)Nr�rkr�r��-r/r�Zresponse_algorithmzXSkipping checksum validation. Response did not contain one of the following algorithms: �.)r�Zhas_streaming_output�_handle_streaming_response�_handle_bytes_responser�r�)	�
http_response�responser�r}r�r�Z
algorithmsr��header_namerrr�handle_checksum_body�s:

�
�
�r�cCs8t�|�}d|��}t|j|d�d�|�|d|�S)Nr�r�zcontent-length)r�r�rmrY)r�r�r�rZr�rrrr��s


�r�c	Csj|j}d|��}t�|�}|�}|�|�|d|}|��t�|�krfd|�d|����}t|d��|S)Nr�r�rvrwr_)	�contentr�r�rrrrxr!r	)	r�r�r�r/r�rZrkrqr`rrrr��s


�
r�)rrrrrGrJ)rrG)r�r;ccs|]}|tkVqdSr)r�)r�rjrrr�	<genexpr>"sr�rr)N)N)=�__doc__rr��logging�binasciir�hashlibrrZbotocore.compatrrrZbotocore.exceptionsrr	r
Zbotocore.modelrZbotocore.responserZbotocore.utilsr
rrZawscrtrrC�	getLoggerr1r�r�rr4rBrErHrLrPrQrmrrzr�r�r�r�r{r�r�r�r�r�Z_CRT_CHECKSUM_CLSr�all�keys�AssertionError�listr�r�rrrr�<module>sj



R	�
N-�
)�
�

�