§
    ZŠtj-  ã                   ó€   — d Z ddlZddlmZmZmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZ  G d„ d¦  «        ZdS )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.
é    N)ÚCaseInsensitiveDictÚRequestÚgenerate_tokené   )ÚCONTENT_TYPE_FORM_URLENCODEDÚSIGNATURE_HMAC_SHA1ÚSIGNATURE_HMAC_SHA256ÚSIGNATURE_HMAC_SHA512ÚSIGNATURE_PLAINTEXTÚSIGNATURE_RSA_SHA1ÚSIGNATURE_RSA_SHA256ÚSIGNATURE_RSA_SHA512ÚSIGNATURE_TYPE_AUTH_HEADERÚSIGNATURE_TYPE_BODYÚSIGNATURE_TYPE_QUERYÚerrorsÚ	signatureÚutilsc                   ó6   — e Zd Zd	d„Zd„ Zd„ Zd„ Zd„ Zd
d„ZdS )ÚBaseEndpointNc                 ó0   — || _         |pt          | _        d S ©N)Úrequest_validatorr   Útoken_generator)Úselfr   r   s      úd/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/oauthlib/oauth1/rfc5849/endpoints/base.pyÚ__init__zBaseEndpoint.__init__   s   € Ø!2ˆÔØ.Ð@µ.ˆÔÐÐó    c                 ó  — t          j        |j        dd¬¦  «        }t          j        |j        d¬¦  «        }t          j        |j        d¬¦  «        }g }|                     |¦  «         |                     |¦  «         |                     |¦  «         t          t          d„ t          |t          j
        |¦  «        ft          |t          j
        |¦  «        ft          |t          j
        |¦  «        ff¦  «        ¦  «        }t          |¦  «        dk    r6d„ |D ¦   «         }t          j        d	d
                     |¦  «        f¬¦  «        ‚	 |d         \  }}}	n## t"          $ r t          j        d¬¦  «        ‚w xY w|||	fS )z†Extracts parameters from query, headers and body. Signature type
        is set to the source in which parameters were found.
        FT)ÚheadersÚexclude_oauth_signatureÚ
with_realm)Úbodyr!   )Ú	uri_queryr!   c                 ó   — | d         S )Nr   © )Úss    r   ú<lambda>z=BaseEndpoint._get_signature_type_and_params.<locals>.<lambda>,   s
   € À!ÀAÄ$€ r   é   c                 ó   — g | ]
}|d          ‘ŒS )r   r&   )Ú.0r'   s     r   ú
<listcomp>z?BaseEndpoint._get_signature_type_and_params.<locals>.<listcomp>6   s   € ÐKÐKÐK A˜1˜Qœ4ÐKÐKÐKr   zFoauth_ params must come from only 1 signaturetype but were found in %sz, ©Údescriptionr   ú#Missing mandatory OAuth parameters.)r   Úcollect_parametersr    r#   r$   ÚextendÚlistÚfilterr   r   Úfilter_oauth_paramsr   r   Úlenr   ÚInvalidRequestErrorÚjoinÚ
IndexError)
r   ÚrequestÚheader_paramsÚbody_paramsÚquery_paramsÚparamsÚ!signature_types_with_oauth_paramsÚfound_typesÚsignature_typeÚoauth_paramss
             r   Ú_get_signature_type_and_paramsz+BaseEndpoint._get_signature_type_and_params   sÞ  € õ "Ô4¸W¼_ØMRÐ_cðeñ eô eˆåÔ2¸¼ØKPðRñ Rô Rˆå Ô3¸gÔ>OØLQðSñ Sô Sˆð ˆØ�Š�mÑ$Ô$Ð$Ø�Š�kÑ"Ô"Ð"Ø�Š�lÑ#Ô#Ð#Ý,0µ¸¸Ý'¨ÝÔ)¨-Ñ8Ô8ð:å  &ÝÔ)¨+Ñ6Ô6ð8å! 6ÝÔ)¨,Ñ7Ô7ð9ðI
ñ 2ô 2ñ -ô -Ð)õ Ð0Ñ1Ô1°AÒ5Ð5ØKÐKÐ)JÐKÑKÔKˆKÝÔ,ð9à!ŸYšY {Ñ3Ô3ð5ð6ñ 6ô 6ð 6ð
	CØ3TØô4Ñ0ˆN˜F L Løåð 	Cð 	Cð 	CÝÔ,ØAðCñ Cô Cð Cð	Cøøøð ˜v |Ð3Ð3s   ÅE Å E:c                 óð  — t          |pi ¦  «        }d|v r"t          |d         v rt          ||||¦  «        }nt          ||d|¦  «        }|                      |¦  «        \  }}}t	          t          |¦  «        ¦  «        t	          |¦  «        k    rt          j        d¬¦  «        ‚t          |¦  «        }|                     d¦  «        |_	        |                     d¦  «        |_
        |                     d¦  «        |_        |                     d¦  «        |_        |                     d	¦  «        |_        |                     d
¦  «        |_        |                     d¦  «        |_        |                     d¦  «        |_        t          |¦  «                             d¦  «        |_        ||_        d„ |D ¦   «         |_        d|j                             dd¦  «        v rd„ |j        D ¦   «         |_        |S )NzContent-TypeÚ zDuplicate OAuth1 entries.r-   Úoauth_signatureÚoauth_consumer_keyÚoauth_tokenÚoauth_nonceÚoauth_timestampÚoauth_callbackÚoauth_verifierÚoauth_signature_methodÚrealmc                 ó(   — g | ]\  }}|d k    ¯||f‘ŒS )rE   r&   ©r+   ÚkÚvs      r   r,   z0BaseEndpoint._create_request.<locals>.<listcomp>c   s+   € ÐNÐNÐN¡T Q¨°qÐ<MÒ7MÐ7M˜1˜a˜&Ð7MÐ7MÐ7Mr   ÚAuthorizationc                 ó(   — g | ]\  }}|d k    ¯||f‘ŒS )rM   r&   rO   s      r   r,   z0BaseEndpoint._create_request.<locals>.<listcomp>f   s3   € ð Jð Jð JÙ"& ! Q¸AÀºL¸Lð  ! !˜fØ<H¸L¸Lr   )r   r   r   rB   r5   Údictr   r6   Úgetr   Ú
client_keyÚresource_owner_keyÚnonceÚ	timestampÚredirect_uriÚverifierÚsignature_methodrM   rA   r=   r    )	r   ÚuriÚhttp_methodr#   r    r9   r@   r=   rA   s	            r   Ú_create_requestzBaseEndpoint._create_requestE   sÿ  € å% g m°Ñ4Ô4ˆØ˜WÐ$Ð$Õ)EÈÐQ_ÔI`Ð)`Ð)`Ý˜c ;°°gÑ>Ô>ˆGˆGå˜c ;°°GÑ<Ô<ˆGà×/Ò/°Ñ8Ô8ñ 	-ˆ˜ õ
 �t�LÑ!Ô!Ñ"Ô"¥c¨,Ñ&7Ô&7Ò7Ð7ÝÔ,Ø7ð9ñ 9ô 9ð 9õ ˜LÑ)Ô)ˆØ(×,Ò,Ð->Ñ?Ô?ˆÔØ)×-Ò-Ð.BÑCÔCˆÔØ%1×%5Ò%5°mÑ%DÔ%DˆÔ"Ø$×(Ò(¨Ñ7Ô7ˆŒØ(×,Ò,Ð->Ñ?Ô?ˆÔØ+×/Ò/Ð0@ÑAÔAˆÔØ'×+Ò+Ð,<Ñ=Ô=ˆÔØ#/×#3Ò#3Ð4LÑ#MÔ#MˆÔ Ý˜V™œ×(Ò(¨Ñ1Ô1ˆŒØ+ˆÔð OÐN¨VÐNÑNÔNˆŒà�g”o×)Ò)¨/¸2Ñ>Ô>Ð>Ð>ðJð JØ*1¬.ðJñ Jô JˆGŒNð ˆr   c                 ó    — | j         j        r?|j                             ¦   «                              d¦  «        st          j        ¦   «         ‚d S d S )Nzhttps://)r   Úenforce_sslr]   ÚlowerÚ
startswithr   ÚInsecureTransportError)r   r9   s     r   Ú_check_transport_securityz&BaseEndpoint._check_transport_securityk   sW   € àÔ"Ô.ð 	2Ø”K×%Ò%Ñ'Ô'×2Ò2°:Ñ>Ô>ð	2åÔ/Ñ1Ô1Ð1ð	2ð 	2ð 	2ð 	2r   c                 óÀ  — t          |j        |j        |j        |j        |j        f¦  «        st          j        d¬¦  «        ‚|j        | j        j	        vr8t          j
        d                     |j        | j        j	        ¦  «        ¬¦  «        ‚d|j        v r&|j        d         dk    rt          j        d¬¦  «        ‚t          |j        ¦  «        dk    rt          j        d¬¦  «        ‚	 t          |j        ¦  «        }t          t!          j        ¦   «         |z
  ¦  «        | j        j        k    r"t          j        d	| j        j        z  ¬¦  «        ‚n## t$          $ r t          j        d
¬¦  «        ‚w xY w| j                             |j        ¦  «        st          j        d¬¦  «        ‚| j                             |j        ¦  «        st          j        d¬¦  «        ‚d S )Nr/   r-   z"Invalid signature, {} not in {!r}.Úoauth_versionz1.0zInvalid OAuth version.é
   zInvalid timestamp sizezCTimestamp given is invalid, differ from allowed by over %s seconds.zTimestamp must be an integer.zInvalid client key format.zInvalid nonce format.)Úallr   rV   rX   rY   r\   r   r6   r   Úallowed_signature_methodsÚInvalidSignatureMethodErrorÚformatrA   r5   ÚintÚabsÚtimeÚtimestamp_lifetimeÚ
ValueErrorÚcheck_client_keyÚcheck_nonce)r   r9   Útss      r   Ú_check_mandatory_parametersz(BaseEndpoint._check_mandatory_parametersq   sS  € õ �GÔ% wÔ'9Ø”M 7Ô#4ØÔ,ð.ñ /ô /ð 	Cõ Ô,ØAðCñ Cô Cð Cð Ô$¨DÔ,BÔ,\Ð\Ð\ÝÔ4Ø@×GÒGØÔ,ØÔ*ÔDñFô FðGñ Gô Gð Gð ˜wÔ3Ð3Ð3ØÔ$ _Ô5¸Ò>Ð>ÝÔ,Ø4ð6ñ 6ô 6ð 6õ ˆwÔ Ñ!Ô! RÒ'Ð'ÝÔ,Ø4ð6ñ 6ô 6ð 6ð	RÝ�WÔ&Ñ'Ô'ˆBõ •4”9‘;”; Ñ#Ñ$Ô$ tÔ'=Ô'PÒPÐPÝÔ0ð"?à%)Ô%;Ô%Nñ"PðRñ Rô Rð Rð Qøõ ð 	=ð 	=ð 	=ÝÔ,Ø;ð=ñ =ô =ð =ð	=øøøð  Ô%×6Ò6°wÔ7IÑJÔJð 	:ÝÔ,Ø8ð:ñ :ô :ð :ð Ô%×1Ò1°'´-Ñ@Ô@ð 	5ÝÔ,Ø3ð5ñ 5ô 5ð 5ð	5ð 	5s   Ã+E Å E3Fc                 óš  — |j         t          t          t          hv r™| j                             |j        |¦  «        }|j         t          k    rt          j        ||¦  «        }�nh|j         t          k    rt          j	        ||¦  «        }�nA|j         t          k    rt          j
        ||¦  «        }�nd}�n| j                             |j        |¦  «        }d }|j        rO|r'| j                             |j        |j        |¦  «        }n&| j                             |j        |j        |¦  «        }|j         t          k    rt          j        |||¦  «        }nw|j         t"          k    rt          j        |||¦  «        }nP|j         t&          k    rt          j        |||¦  «        }n)|j         t*          k    rt          j        |||¦  «        }nd}|S )NF)r\   r   r   r   r   Úget_rsa_keyrV   r   Úverify_rsa_sha1Úverify_rsa_sha256Úverify_rsa_sha512Úget_client_secretrW   Úget_request_token_secretÚget_access_token_secretr   Úverify_hmac_sha1r	   Úverify_hmac_sha256r
   Úverify_hmac_sha512r   Úverify_plaintext)r   r9   Úis_token_requestÚrsa_keyÚvalid_signatureÚclient_secretÚresource_owner_secrets          r   Ú_check_signaturezBaseEndpoint._check_signature²   s  € àÔ#Õ(:Õ<PÕRfÐ'gÐgÐgð Ô,×8Ò8ØÔ" Gñ-ô -ˆGð Ô'Õ+=Ò=Ð=Ý"+Ô";¸GÀWÑ"MÔ"M�‘ØÔ)Õ-AÒAÐAÝ"+Ô"=¸gÀwÑ"OÔ"O�‘ØÔ)Õ-AÒAÐAÝ"+Ô"=¸gÀwÑ"OÔ"O�‘à"'�‘ð !Ô2×DÒDØÔ" Gñ-ô -ˆMð %)Ð!ØÔ)ð 
%Ø#ð 	%àÔ.×GÒGØ#Ô.°Ô0JØ#ñ%ô %ð *Ð)ð Ô.×FÒFØ#Ô.°Ô0JØ#ñ%ô %ð *ð
 Ô'Õ+>Ò>Ð>Ý"+Ô"<Ø˜]Ð,Añ#Cô #C��àÔ)Õ-BÒBÐBÝ"+Ô">Ø˜]Ð,Añ#Cô #C��àÔ)Õ-BÒBÐBÝ"+Ô">Ø˜]Ð,Añ#Cô #C��àÔ)Õ-@Ò@Ð@Ý"+Ô"<Ø˜]Ð,Añ#Cô #C��ð #(�àÐr   r   )F)	Ú__name__Ú
__module__Ú__qualname__r   rB   r_   re   ru   r‡   r&   r   r   r   r      s   € € € € € ðAð Að Að Að(4ð (4ð (4ðT$ð $ð $ðL2ð 2ð 2ð?5ð ?5ð ?5ðB=ð =ð =ð =ð =ð =r   r   )Ú__doc__ro   Úoauthlib.commonr   r   r   rD   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r&   r   r   ú<module>r�      s  ððð ð €€€à HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ Hðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðZð Zð Zð Zð Zñ Zô Zð Zð Zð Zr   