403Webshell
Server IP : 104.21.21.239  /  Your IP : 216.73.216.55
Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.7
System : Linux ip-172-31-69-123.ec2.internal 6.1.177-224.371.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Jul 27 20:28:29 UTC 2026 x86_64
User : ec2-user ( 1000)
PHP Version : 8.4.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3.9/site-packages/awscli/botocore/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3.9/site-packages/awscli/botocore/__pycache__/auth.cpython-39.pyc
a

wA�iN��@s"ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlmZm
Z
mZmZmZmZmZmZmZddlmZmZmZmZddlmZmZmZe�e�Z dZ!dZ"d	Z#d
Z$gd�Z%dZ&d
Z'dd�Z(dd�Z)Gdd�d�Z*Gdd�de*�Z+Gdd�de*�Z,Gdd�de*�Z-Gdd�de*�Z.Gdd�de.�Z/Gdd�de/�Z0Gd d!�d!e0�Z1Gd"d#�d#e0�Z2Gd$d%�d%e.�Z3Gd&d'�d'e3�Z4Gd(d)�d)e.�Z5Gd*d+�d+e+�Z6ddl7Z8d,d-�Z9d.d/�Z:e,e.e8j;j<j=e3e-e-e/e4e5e8j;j<j>e8j;j<j?e0e2e1e6d0�Z@d1d2d3d4d5�ZAd6d7�eA�B�D�ZCdS)8�N)�
formatdate)�sha256)	�
MD5_AVAILABLE�HTTPHeaders�encodebytes�ensure_unicode�json�parse_qs�quote�urlsplit�
urlunsplit)�NoAuthTokenError�NoCredentialsError�UnknownSignatureVersionError� UnsupportedSignatureVersionError)�is_valid_ipv6_endpoint_url�normalize_url_path�percent_encode_sequenceZ@e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855iz%Y-%m-%dT%H:%M:%SZz%Y%m%dT%H%M%SZ)�expectztransfer-encodingz
user-agentzx-amzn-trace-idzUNSIGNED-PAYLOADz"STREAMING-UNSIGNED-PAYLOAD-TRAILERcCsZt|�}|j}t|�r"d|�d�}ddd�}|jdurV|j|�|j�krVd||jf}|S)N�[�]�Pi�)�http�httpsz%s:%d)r�hostnamer�port�get�scheme)�url�	url_parts�hostZ
default_ports�r!�8/usr/lib/python3.9/site-packages/awscli/botocore/auth.py�_host_from_urlEs

r#cCs:|j}t|t�r"t�|�d��}nt|t�r6t�|�}|S�N�utf-8)�data�
isinstance�bytesr�loads�decode�str)�requestr&r!r!r"�_get_body_as_dictXs


r-c@seZdZdZdZdd�ZdS)�
BaseSignerFcCstd��dS)N�add_auth)�NotImplementedError��selfr,r!r!r"r/iszBaseSigner.add_authN)�__name__�
__module__�__qualname__�REQUIRES_REGION�REQUIRES_TOKENr/r!r!r!r"r.esr.c@seZdZdZdd�ZdS)�TokenSignerTcCs
||_dS�N)�
auth_token)r2r:r!r!r"�__init__sszTokenSigner.__init__N)r3r4r5r7r;r!r!r!r"r8msr8c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�	SigV2Authz+
    Sign a request with Signature V2.
    cCs
||_dSr9��credentials�r2r>r!r!r"r;|szSigV2Auth.__init__cCst�d�t|j�}|j}t|�dkr*d}|j�d|j�d|�d�}tj	|j
j�d�t
d�}g}t|�D]H}|dkrvqht||�}	|�t|�d�dd	�d
t|	�d�dd	��qhd�|�}
||
7}t�d
|�|�|�d��t�|������d�}|
|fS)Nz$Calculating signature using v2 auth.r�/�
r%�Z	digestmod�	Signature���safe�=z-_~�&zString to sign: %s)�logger�debugrr�path�len�method�netloc�hmac�newr>�
secret_key�encoder�sortedr+�appendr
�join�update�base64�	b64encode�digest�stripr*)r2r,�params�splitrK�string_to_signZlhmac�pairs�key�value�qsZb64r!r!r"�calc_signatures6

����
zSigV2Auth.calc_signaturecCs�|jdurt��|jr|j}n|j}|jj|d<d|d<d|d<t�tt���|d<|jj	rh|jj	|d<|�
||�\}}||d<|S)	NZAWSAccessKeyId�2ZSignatureVersion�
HmacSHA256ZSignatureMethodZ	TimestampZ
SecurityTokenrC)r>rr&r[�
access_key�time�strftime�ISO8601�gmtime�tokenrb)r2r,r[ra�	signaturer!r!r"r/�s
zSigV2Auth.add_authN)r3r4r5�__doc__r;rbr/r!r!r!r"r<wsr<c@seZdZdd�Zdd�ZdS)�	SigV3AuthcCs
||_dSr9r=r?r!r!r"r;�szSigV3Auth.__init__cCs�|jdurt��d|jvr"|jd=tdd�|jd<|jjrZd|jvrL|jd=|jj|jd<tj|jj�d�t	d�}|�
|jd�d��t|����
�}d�|jjd|�d��}d	|jvr�|jd	=||jd	<dS)
N�DateT)Zusegmt�X-Amz-Security-Tokenr%rBz6AWS3-HTTPS AWSAccessKeyId={},Algorithm={},Signature={}rdzX-Amzn-Authorization)r>r�headersrrjrOrPrQrRrrVrrYrZ�formatrer*)r2r,Znew_hmacZencoded_signaturerkr!r!r"r/�s.


���
zSigV3Auth.add_authN)r3r4r5r;r/r!r!r!r"rm�srmc@s�eZdZdZdZdd�Zd1dd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0S)2�	SigV4Authz+
    Sign a request with Signature V4.
    TcCs||_||_||_dSr9)r>�_region_name�
_service_name)r2r>�service_name�region_namer!r!r"r;�szSigV4Auth.__init__FcCs:|rt�||�d�t���}nt�||�d�t���}|Sr$)rOrPrRr�	hexdigestrY)r2r_�msg�hexZsigr!r!r"�_sign�szSigV4Auth._signcCsLt�}|j��D] \}}|��}|tvr|||<qd|vrHt|j�|d<|S)zk
        Select the headers from the request that need to be included
        in the StringToSign.
        r )rrp�items�lower�SIGNED_HEADERS_BLACKLISTr#r)r2r,Z
header_map�namer`Zlnamer!r!r"�headers_to_sign�s
zSigV4Auth.headers_to_signcCs&|jr|�|j�S|�t|j��SdSr9)r[�_canonical_query_string_params�_canonical_query_string_urlrrr1r!r!r"�canonical_query_string�sz SigV4Auth.canonical_query_stringcCspg}|D].}t||�}|�t|dd�t|dd�f�qg}t|�D]\}}|�|�d|���qDd�|�}|S)Nz-_.~rErGrH)r+rTr
rSrU)r2r[�
key_val_pairsr_r`�sorted_key_valsr�r!r!r"r�s�
z(SigV4Auth._canonical_query_string_paramsc	Csvd}|jrrg}|j�d�D]"}|�d�\}}}|�||f�qg}t|�D]\}}|�|�d|���qJd�|�}|S)NrDrHrG)�queryr\�	partitionrTrSrU)	r2�partsr�r�Zpairr_�_r`r�r!r!r"r�s
z%SigV4Auth._canonical_query_string_urlcsZg}tt|��}|D]:}d��fdd�|�|�D��}|�|�dt|����qd�|�S)a

        Return the headers that need to be included in the StringToSign
        in their canonical form by converting all header keys to lower
        case, sorting them in alphabetical order and then joining
        them into a string, separated by newlines.
        �,c3s|]}��|�VqdSr9)�
_header_value)�.0�v�r2r!r"�	<genexpr>/sz.SigV4Auth.canonical_headers.<locals>.<genexpr>�:rA)rS�setrUZget_allrTr)r2rrpZsorted_header_namesr_r`r!r�r"�canonical_headers%s�zSigV4Auth.canonical_headerscCsd�|���S)N� )rUr\)r2r`r!r!r"r�5szSigV4Auth._header_valuecCs tdd�t|�D��}d�|�S)Ncss|]}|����VqdSr9)r|rZ)r��nr!r!r"r�>�z+SigV4Auth.signed_headers.<locals>.<genexpr>�;)rSr�rU)r2rrpr!r!r"�signed_headers=szSigV4Auth.signed_headerscCs0|j�di�}|�d�}t|t�o.|�d�dkS)N�checksum�request_algorithm�inZtrailer)�contextrr'�dict)r2r,�checksum_context�	algorithmr!r!r"�_is_streaming_checksum_payloadAs
z(SigV4Auth._is_streaming_checksum_payloadcCs�|�|�rtS|�|�stS|j}|r|t|d�r||��}t�|j	t
�}t�}t|d�D]}|�
|�qV|��}|�|�|S|r�t|���StSdS)N�seekr�)r��"STREAMING_UNSIGNED_PAYLOAD_TRAILER�_should_sha256_sign_payload�UNSIGNED_PAYLOAD�body�hasattr�tell�	functools�partial�read�PAYLOAD_BUFFERr�iterrVrwr��EMPTY_SHA256_HASH)r2r,Zrequest_bodyZpositionZread_chunksizer��chunkZhex_checksumr!r!r"�payloadFs&

�
zSigV4Auth.payloadcCs|j�d�sdS|j�dd�S)NrT�payload_signing_enabled)r�
startswithr�rr1r!r!r"r�`sz%SigV4Auth._should_sha256_sign_payloadcCs�|j��g}|�t|j�j�}|�|�|�|�|��|�|�}|�|�	|�d�|�|�
|��d|jvr||jd}n
|�|�}|�|�d�
|�S)NrA�X-Amz-Content-SHA256)rM�upper�_normalize_url_pathrrrKrTr�rr�r�rpr�rU)r2r,ZcrrKrZ
body_checksumr!r!r"�canonical_requestjs




zSigV4Auth.canonical_requestcCstt|�dd�}|S)Nz/~rE)r
r)r2rKZnormalized_pathr!r!r"r�yszSigV4Auth._normalize_url_pathcCsN|jjg}|�|jddd��|�|j�|�|j�|�d�d�|�S�N�	timestampr��aws4_requestr@)r>rerTr�rsrtrU�r2r,�scoper!r!r"r�}s

zSigV4Auth.scopecCsHg}|�|jddd��|�|j�|�|j�|�d�d�|�Sr�)rTr�rsrtrUr�r!r!r"�credential_scope�s
zSigV4Auth.credential_scopecCsHdg}|�|jd�|�|�|��|�t|�d�����d�|�S)z�
        Return the canonical StringToSign as well as a dict
        containing the original version of all headers that
        were included in the StringToSign.
        �AWS4-HMAC-SHA256r�r%rA)rTr�r�rrRrwrU)r2r,r��stsr!r!r"r]�s
zSigV4Auth.string_to_signcCsd|jj}|�d|�d�|jddd��}|�||j�}|�||j�}|�|d�}|j||dd�S)	NZAWS4r%r�rr�r�T)ry)r>rQrzrRr�rsrt)r2r]r,r_Zk_dateZk_regionZ	k_serviceZ	k_signingr!r!r"rk�s�zSigV4Auth.signaturecCs�|jdurt��tj��}|�t�|jd<|�|�|�|�}t	�
d�t	�
d|�|�||�}t	�
d|�|�||�}t	�
d|�|�
||�dS)Nr�z$Calculating signature using v4 auth.zCanonicalRequest:
%szStringToSign:
%sz
Signature:
%s)r>r�datetime�utcnowrg�SIGV4_TIMESTAMPr��_modify_request_before_signingr�rIrJr]rk�_inject_signature_to_request)r2r,�datetime_nowr�r]rkr!r!r"r/�s




zSigV4Auth.add_authcCsVd|�|���g}|�|�}|�d|�|����|�d|���d�|�|jd<|S)NzAWS4-HMAC-SHA256 Credential=zSignedHeaders=z
Signature=�, �
Authorization)r�rrTr�rUrp)r2r,rkZauth_strrr!r!r"r��s
�z&SigV4Auth._inject_signature_to_requestcCsrd|jvr|jd=|�|�|jjrDd|jvr6|jd=|jj|jd<|j�dd�snd|jvrd|jd=t|jd<dS)Nr�ror�Tr�)rp�_set_necessary_date_headersr>rjr�rr�r1r!r!r"r��s



z(SigV4Auth._modify_request_before_signingcCs|d|jvrV|jd=tj�|jdt�}ttt�|�	����|jd<d|jvrx|jd=n"d|jvrh|jd=|jd|jd<dS)Nrnr��
X-Amz-Date)
rpr��strptimer�r�r�int�calendarZtimegmZ	timetuple)r2r,Zdatetime_timestampr!r!r"r��s

��



z%SigV4Auth._set_necessary_date_headersN)F)r3r4r5rlr6r;rzrr�r�r�r�r�r�r�r�r�r�r�r�r�r]rkr/r�r�r�r!r!r!r"rr�s0




rrcs0eZdZ�fdd�Z�fdd�Zdd�Z�ZS)�S3SigV4Authcs2t��|�d|jvr|jd=|�|�|jd<dS)Nr�)�superr�rpr�r1��	__class__r!r"r��s
z*S3SigV4Auth._modify_request_before_signingcs�|j�d�}t|dd�}|dur$i}|�dd�}|dur<|Sd}|j�di�}|�d�}t|t�rx|�d�dkrx|d	}|j�d
�r�||jvr�dS|j�dd
�r�d
St��	|�S)N�
client_configZs3r�zContent-MD5r�r�r��headerr~rTZhas_streaming_inputF)
r�r�getattrr'r�rr�rpr�r�)r2r,r�Z	s3_configZsign_payloadZchecksum_headerr�r�r�r!r"r��s(

��z'S3SigV4Auth._should_sha256_sign_payloadcCs|Sr9r!�r2rKr!r!r"r�szS3SigV4Auth._normalize_url_path)r3r4r5r�r�r��
__classcell__r!r!r�r"r��s)r�cs8eZdZdZ�fdd�Z�fdd�Z�fdd�Z�ZS)�
S3ExpressAuthTcst��|||�||_dSr9)r�r;Z_identity_cache)r2r>rurv�identity_cacher�r!r"r;szS3ExpressAuth.__init__cst��|�dSr9)r�r/r1r�r!r"r/ szS3ExpressAuth.add_authcs:t��|�d|jvr$|jj|jd<d|jvr6|jd=dS)Nzx-amz-s3session-tokenro)r�r�rpr>rjr1r�r!r"r�#s


z,S3ExpressAuth._modify_request_before_signing)r3r4r5�REQUIRES_IDENTITY_CACHEr;r/r�r�r!r!r�r"r�sr�c@seZdZdZdd�ZdS)�S3ExpressPostAuthTcCsPtj��}|�t�|jd<i}|j�dd�dur:|jd}i}g}|j�dd�durv|jd}|�dd�durv|d}||d<d|d<|�|�|d<|jd|d<|�ddi�|�d|�|�i�|�d|jdi�|jj	du�r|jj	|d	<|�d	|jj	i�t
�t�
|��d
���d
�|d<|�|d|�|d<||jd<||jd<dS)
Nr��s3-presign-post-fields�s3-presign-post-policy�
conditionsr��x-amz-algorithm�x-amz-credential�
x-amz-date�X-Amz-S3session-Tokenr%�policy�x-amz-signature�r�r�rgr�r�rr�rTr>rjrWrXr�dumpsrRr*rk�r2r,r��fieldsr�r�r!r!r"r//s>



���
zS3ExpressPostAuth.add_authN)r3r4r5r�r/r!r!r!r"r�,sr�csJeZdZdZdZed��fdd�
Zdd�Zdd	�Zd
d�Zdd
�Z	�Z
S)�S3ExpressQueryAuthi,T)�expirescst�j||||d�||_dS)N)r��r�r;�_expires)r2r>rurvr�r�r�r!r"r;]s	�zS3ExpressQueryAuth.__init__c
Cs|j�d�}d}||kr |jd=|�|�|��}d|�|�|jd|j|d�}|jjdurf|jj|d<t	|j
�}t|jdd�}d	d
�|�
�D�}|jr�|�|j�i|_d}	|jr�|�t|��d|_|r�t|�d}	|	�t|���}
|}|d
|d|d|
|df}t|�|_
dS)N�content-type�0application/x-www-form-urlencoded; charset=utf-8r�r��zX-Amz-AlgorithmzX-Amz-Credentialr�z
X-Amz-ExpireszX-Amz-SignedHeadersr�T��keep_blank_valuescSsi|]\}}||d�qS�rr!�r��kr�r!r!r"�
<dictcomp>�r�zES3ExpressQueryAuth._modify_request_before_signing.<locals>.<dictcomp>rDrHr���)rprr�rr�r�r�r>rjrrr	r�r{r[rVr&r-rr)
r2r,�content_typeZblocklisted_content_typer��auth_paramsrZquery_string_parts�
query_dict�operation_params�new_query_string�p�
new_url_partsr!r!r"r�ns>��
�z1S3ExpressQueryAuth._modify_request_before_signingcCs|jd|��7_dS�Nz&X-Amz-Signature=�r�r2r,rkr!r!r"r��sz/S3ExpressQueryAuth._inject_signature_to_requestcCs|Sr9r!r�r!r!r"r��sz&S3ExpressQueryAuth._normalize_url_pathcCstSr9�r�r1r!r!r"r��szS3ExpressQueryAuth.payload)r3r4r5�DEFAULT_EXPIRESr�r;r�r�r�r�r�r!r!r�r"r�Ys	�Ar�cs4eZdZdZef�fdd�	Zdd�Zdd�Z�ZS)�SigV4QueryAuthicst��|||�||_dSr9r�)r2r>rurvr�r�r!r"r;�szSigV4QueryAuth.__init__cCs�|j�d�}d}||kr |jd=|�|�|��}d|�|�|jd|j|d�}|jjdurf|jj|d<t	|j
�}tdd�t|j
d	d
���D��}d}|jr�|�t|��d|_|r�t|�d}|t|�}	|}
|
d
|
d|
d|	|
df}t|�|_
dS)Nr�r�r�r�r�rocSsg|]\}}||df�qSr�r!r�r!r!r"�
<listcomp>�s�zASigV4QueryAuth._modify_request_before_signing.<locals>.<listcomp>Tr�rDrHrr�r�r�)rprr�rr�r�r�r>rjrrr�r	r�r{r&rVr-rr)r2r,r�Zblacklisted_content_typer�r�rr�r�r�r�r�r!r!r"r��sD��
����z-SigV4QueryAuth._modify_request_before_signingcCs|jd|��7_dSr�r�r�r!r!r"r�
sz+SigV4QueryAuth._inject_signature_to_request)r3r4r5r�r;r�r�r�r!r!r�r"r�s
�Crc@s eZdZdZdd�Zdd�ZdS)�S3SigV4QueryAuthaS3 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

    cCs|Sr9r!r�r!r!r"r� sz$S3SigV4QueryAuth._normalize_url_pathcCstSr9r�r1r!r!r"r�$szS3SigV4QueryAuth.payloadN)r3r4r5rlr�r�r!r!r!r"rsrc@seZdZdZdd�ZdS)�S3SigV4PostAuthz�
    Presigns a s3 post

    Implementation doc here:
    http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-UsingHTTPPOST.html
    cCsPtj��}|�t�|jd<i}|j�dd�dur:|jd}i}g}|j�dd�durv|jd}|�dd�durv|d}||d<d|d<|�|�|d<|jd|d<|�ddi�|�d|�|�i�|�d|jdi�|jj	du�r|jj	|d	<|�d	|jj	i�t
�t�
|��d
���d
�|d<|�|d|�|d<||jd<||jd<dS)
Nr�r�r�r�r�r�r�r�zx-amz-security-tokenr%r�r�r�r�r!r!r"r/4s:


��
zS3SigV4PostAuth.add_authN�r3r4r5rlr/r!r!r!r"r,src@seZdZdZdd�ZdS)�
BearerAuthz�
    Performs bearer token authorization by placing the bearer token in the
    Authorization header as specified by Section 2.1 of RFC 6750.

    https://datatracker.ietf.org/doc/html/rfc6750#section-2.1
    cCs>|jdurt��d|jj��}d|jvr0|jd=||jd<dS)NzBearer r�)r:r
rjrp)r2r,Zauth_headerr!r!r"r/ds

zBearerAuth.add_authNrr!r!r!r"r\srcCsX|D]D}|dkrt|S|tvr>t|}|tvrH|Sqt|d��qt|d��dS)N�smithy.api#noAuth��signature_version)�AUTH_TYPE_TO_SIGNATURE_VERSION�AUTH_TYPE_MAPSrr)Z
auth_traitZ	auth_typerr!r!r"�resolve_auth_typeus
rcs�dd�|D��dd�|D�}|r6t�dd�|����|�}�fdd�t�|�D�}|D]2}|dkrrt|St�|�}|tvrZ|SqZtd�t	���d��dS)	NcSsg|]}|�d�d�qS��#����r\�r�rr!r!r"r�r�z2resolve_auth_scheme_preference.<locals>.<listcomp>cSsg|]}|tvr|�qSr!)�AUTH_PREF_TO_SIGNATURE_VERSIONrr!r!r"r�s�z-Unsupported auth schemes in preference list: r�csg|]}|�vr|�qSr!r!r�Zservice_supportedr!r"r�s�ZnoAuthr)
rIrJrUr��fromkeysrrr
rrS)Zpreference_listZauth_optionsZunsupportedZcombinedZprioritized_schemesr�sig_versionr!rr"�resolve_auth_scheme_preference�s*��
�

�r)Zv2�v4�v4azv4-queryZv3Zv3httpsZs3v4z
s3v4-queryzs3v4-presign-postZs3v4azs3v4a-queryzv4-s3expresszv4-s3express-queryzv4-s3express-presign-post�bearerrrrZnone)zaws.auth#sigv4zaws.auth#sigv4azsmithy.api#httpBearerAuthrcCs i|]\}}|�d�d|�qSrr)r�Zauth_schemerr!r!r"r��s�r�)DrWr�r�r�rOZloggingrfZemail.utilsrZhashlibrZbotocore.compatrrrrrr	r
rrZbotocore.exceptionsr
rrrZbotocore.utilsrrrZ	getLoggerr3rIr�r�rhr�r}r�r�r#r-r.r8r<rmrrr�r�r�r�rrrrZbotocore.crt.authZbotocorerrZcrtZauthZCrtSigV4AsymAuthZCrtS3SigV4AsymAuthZCrtS3SigV4AsymQueryAuthr
r	r{rr!r!r!r"�<module>s�,
�

?6-hS0
#���

Youez - 2016 - github.com/yon3zu
LinuXploit