HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/oauthlib/oauth1/rfc5849/endpoints/__pycache__/base.cpython-38.pyc
U

��I]�)�@stdZddlmZmZddlZddlmZmZmZddl	m
Z
mZmZm
Z
mZmZmZmZmZmZGdd�de�ZdS)	z�
oauthlib.oauth1.rfc5849.endpoints.base
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This module is an implementation of various logic needed
for signing and checking OAuth 1.0 RFC 5849 requests.
�)�absolute_import�unicode_literalsN)�CaseInsensitiveDict�Request�generate_token�)
�CONTENT_TYPE_FORM_URLENCODED�SIGNATURE_HMAC_SHA1�SIGNATURE_HMAC_SHA256�
SIGNATURE_RSA�SIGNATURE_TYPE_AUTH_HEADER�SIGNATURE_TYPE_BODY�SIGNATURE_TYPE_QUERY�errors�	signature�utilsc@s@eZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
d�ZdS)�BaseEndpointNcCs||_|pt|_dS�N)�request_validatorr�token_generator)�selfrr�r�H/usr/lib/python3/dist-packages/oauthlib/oauth1/rfc5849/endpoints/base.py�__init__szBaseEndpoint.__init__c

Cs�tj|jddd�}tj|jdd�}tj|jdd�}g}|�|�|�|�|�|�ttdd�t|t	�
|�ft|t	�
|�ft|t	�
|�ff��}t
|�dkr�d	d
�|D�}tjdd�|�fd
��z|d\}}}	Wn tk
r�tjdd
��YnX|||	fS)z�Extracts parameters from query, headers and body. Signature type
        is set to the source in which parameters were found.
        FT)�headers�exclude_oauth_signatureZ
with_realm)�bodyr)�	uri_queryrcSs|dS)Nrr)�srrr�<lambda>+�z=BaseEndpoint._get_signature_type_and_params.<locals>.<lambda>�cSsg|]}|d�qS)rr)�.0rrrr�
<listcomp>5sz?BaseEndpoint._get_signature_type_and_params.<locals>.<listcomp>zFoauth_ params must come from only 1 signaturetype but were found in %sz, �Zdescriptionr�#Missing mandatory OAuth parameters.)rZcollect_parametersrrr�extend�list�filterrrZfilter_oauth_paramsr
r�lenr�InvalidRequestError�join�
IndexError)
r�requestZ
header_paramsZbody_paramsZquery_params�paramsZ!signature_types_with_oauth_paramsZfound_types�signature_type�oauth_paramsrrr�_get_signature_type_and_paramssR���



����	����z+BaseEndpoint._get_signature_type_and_paramsc	Cs&t|pi�}d|kr0t|dkr0t||||�}nt||d|�}|�|�\}}}tt|��t|�krntjdd��t|�}|�d�|_	|�d�|_
|�d�|_|�d�|_|�d	�|_
|�d
�|_|�d�|_|�d�|_t|��d
�|_||_dd�|D�|_d
|j�dd�k�r"dd�|jD�|_|S)NzContent-Type�zDuplicate OAuth1 entries.r$�oauth_signatureZoauth_consumer_keyZoauth_tokenZoauth_nonceZoauth_timestampZoauth_callbackZoauth_verifierZoauth_signature_method�realmcSs g|]\}}|dkr||f�qS)r3r�r"�k�vrrrr#dsz0BaseEndpoint._create_request.<locals>.<listcomp>Z
AuthorizationcSs g|]\}}|dkr||f�qS)r4rr5rrrr#gs�)rrrr1r)�dictrr*�getr�
client_key�resource_owner_key�nonce�	timestampZredirect_uriZverifier�signature_methodr4r0r.r)	r�uriZhttp_methodrrr-r/r.r0rrr�_create_requestDs:
����zBaseEndpoint._create_requestcCs$|jjr |j���d�s t���dS)Nzhttps://)rZenforce_sslr?�lower�
startswithrZInsecureTransportError)rr-rrr�_check_transport_securityls�z&BaseEndpoint._check_transport_securitycCs&t|j|j|j|j|jf�s(tjdd��|j|jj	krPtj
d|j|jj	fd��d|jkrt|jddkrttjdd��t|j�dkr�tjdd��zt
|j�}Wn tk
r�tjd	d��Yn.Xtt��|�|jjkr�tjd
|jjd��|j�|j��stjdd��|j�|j��s"tjdd��dS)
Nr%r$z Invalid signature, %s not in %r.Z
oauth_versionz1.0zInvalid OAuth version.�
zInvalid timestamp sizezTimestamp must be an integer.zCTimestamp given is invalid, differ from allowed by over %s seconds.zInvalid client key format.zInvalid nonce format.)�allrr:r<r=r>rr*rZallowed_signature_methodsZInvalidSignatureMethodErrorr0r)�int�
ValueError�abs�timeZtimestamp_lifetimeZcheck_client_keyZcheck_nonce)rr-Ztsrrr�_check_mandatory_parametersrs^
�����
��������z(BaseEndpoint._check_mandatory_parametersFcCs�|jtkr(|j�|j|�}t�||�}n�|j�|j|�}d}|jrp|r\|j�	|j|j|�}n|j�
|j|j|�}|jtkr�t�|||�}n(|jt
kr�t�|||�}nt�|||�}|Sr)r>rrZget_rsa_keyr:rZverify_rsa_sha1Zget_client_secretr;Zget_request_token_secretZget_access_token_secretr	Zverify_hmac_sha1r
Zverify_hmac_sha256Zverify_plaintext)rr-Zis_token_requestZrsa_keyZvalid_signatureZ
client_secretZresource_owner_secretrrr�_check_signature�sL
�	���
�
��zBaseEndpoint._check_signature)N)F)	�__name__�
__module__�__qualname__rr1r@rCrJrKrrrrrs
*(Br)�__doc__Z
__future__rrrIZoauthlib.commonrrrr2rr	r
rrr
rrrr�objectrrrrr�<module>s
0