Ë
    >²Xj-  ã                   óx   — 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y)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                   ó4   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd	d„Zy)
ÚBaseEndpointNc                 ó0   — || _         |xs t        | _        y ©N)Úrequest_validatorr   Útoken_generator)Úselfr   r   s      úl/var/www/html/content_generation/venv/lib/python3.12/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 }|j                  |«       |j                  |«       |j                  |«       t        t        d„ t        |t        j                  |«      ft        |t        j                  |«      ft        |t        j                  |«      ff«      «      }t        |«      dkD  r9|D �cg c]  }|d   ‘Œ	 }}t        j                  d	d
j!                  |«      f¬«      ‚	 |d   \  }	}}
|	||
fS c c}w # t"        $ r t        j                  d¬«      ‚w xY w)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   é   r   zFoauth_ params must come from only 1 signaturetype but were found in %sz, ©Údescriptionú#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_paramsr'   Úfound_typesÚsignature_typeÚoauth_paramss              r   Ú_get_signature_type_and_paramsz+BaseEndpoint._get_signature_type_and_params   s‘  € ô "×4Ñ4¸W¿_¹_ØMRÐ_côeˆä×2Ñ2¸¿¹ØKPôRˆä ×3Ñ3¸g×>OÑ>OØLQôSˆð ˆØ�‰�mÔ$Ø�‰�kÔ"Ø�‰�lÔ#Ü,0´¹Ü'¨Ü×)Ñ)¨-Ó8ð:ä  &Ü×)Ñ)¨+Ó6ð8ä! 6Ü×)Ñ)¨,Ó7ð9ðI
ó 2ó -Ð)ô Ð0Ó1°AÒ5Ù)JÓKÑ)J A˜1˜Q›4Ð)JˆKÐKÜ×,Ñ,ð9à!ŸY™Y {Ó3ð5ô6ð 6ð
	CØ3TØñ4Ñ0ˆN˜F Lð ˜v |Ð3Ð3ùò Løô ò 	CÜ×,Ñ,ØAôCð Cð	Cús   ÄEÅ		E Å E<c                 óÂ  — t        |xs i «      }d|v rt        |d   v rt        ||||«      }nt        ||d|«      }| j                  |«      \  }}}t	        t        |«      «      t	        |«      k7  rt        j                  d¬«      ‚t        |«      }|j                  d«      |_	        |j                  d«      |_
        |j                  d«      |_        |j                  d«      |_        |j                  d	«      |_        |j                  d
«      |_        |j                  d«      |_        |j                  d«      |_        t        |«      j                  d«      |_        ||_        |D �	�
cg c]  \  }	}
|	dk7  sŒ|	|
f‘Œ c}
}	|_        d|j(                  j                  dd«      v r+|j&                  D �	�
cg c]  \  }	}
|	dk7  r|	|
f‘Œ c}
}	|_        |S c c}
}	w c c}
}	w )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ÚrealmÚAuthorization)r   r   r   r?   r2   Údictr   r3   Úgetr   Ú
client_keyÚresource_owner_keyÚnonceÚ	timestampÚredirect_uriÚverifierÚsignature_methodrJ   r>   r:   r    )r   ÚuriÚhttp_methodr#   r    r6   r=   r:   r>   ÚkÚvs              r   Ú_create_requestzBaseEndpoint._create_requestE   sÜ  € ä% g¢m°Ó4ˆØ˜WÑ$Ô)EÈÐQ_ÑI`Ñ)`Ü˜c ;°°gÓ>‰Gä˜c ;°°GÓ<ˆGà×/Ñ/°Ó8ñ 	-ˆ˜ ô
 Œt�LÓ!Ó"¤c¨,Ó&7Ò7Ü×,Ñ,Ø7ô9ð 9ô ˜LÓ)ˆØ(×,Ñ,Ð->Ó?ˆÔØ)×-Ñ-Ð.BÓCˆÔØ%1×%5Ñ%5°mÓ%DˆÔ"Ø$×(Ñ(¨Ó7ˆŒØ(×,Ñ,Ð->Ó?ˆÔØ+×/Ñ/Ð0@ÓAˆÔØ'×+Ñ+Ð,<Ó=ˆÔØ#/×#3Ñ#3Ð4LÓ#MˆÔ Ü˜V›×(Ñ(¨Ó1ˆŒØ+ˆÔñ .4ÔN©V¡T Q¨°qÐ<MÓ7M˜1˜aš&¨VÒNˆŒà�g—o‘o×)Ñ)¨/¸2Ó>Ñ>à*1¯.ª.ôJÙ*8¡$ ! Q¸AÀºLð  ! !šfØ*8òJˆGŒNð ˆùó OùóJs   Å-GÅ;GÆ7Gc                 ó¬   — | j                   j                  r>|j                  j                  «       j	                  d«      st        j                  «       ‚y y )Nzhttps://)r   Úenforce_sslrU   ÚlowerÚ
startswithr   ÚInsecureTransportError)r   r6   s     r   Ú_check_transport_securityz&BaseEndpoint._check_transport_securityk   sE   € à×"Ñ"×.Ò.Ø—K‘K×%Ñ%Ó'×2Ñ2°:Ô>Ü×/Ñ/Ó1Ð1ð ?ð /r   c                 ón  — t        |j                  |j                  |j                  |j                  |j
                  f«      st        j                  d¬«      ‚|j
                  | j                  j                  vrDt        j                  dj                  |j
                  | j                  j                  «      ¬«      ‚d|j                  v r(|j                  d   dk7  rt        j                  d¬«      ‚t        |j                  «      dk7  rt        j                  d¬«      ‚	 t        |j                  «      }t        t!        j                   «       |z
  «      | j                  j"                  kD  r-t        j                  d	| j                  j"                  z  ¬«      ‚| j                  j'                  |j                  «      st        j                  d¬«      ‚| j                  j)                  |j                  «      st        j                  d¬«      ‚y # t$        $ r t        j                  d
¬«      ‚w xY w)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   rN   rP   rQ   rT   r   r3   r   Úallowed_signature_methodsÚInvalidSignatureMethodErrorÚformatr>   r2   ÚintÚabsÚtimeÚtimestamp_lifetimeÚ
ValueErrorÚcheck_client_keyÚcheck_nonce)r   r6   Útss      r   Ú_check_mandatory_parametersz(BaseEndpoint._check_mandatory_parametersq   s	  € ô �G×%Ñ% w×'9Ñ'9Ø—M‘M 7×#4Ñ#4Ø×,Ñ,ð.ô /ô ×,Ñ,ØAôCð Cð ×$Ñ$¨D×,BÑ,B×,\Ñ,\Ñ\Ü×4Ñ4Ø@×GÑGØ×,Ñ,Ø×*Ñ*×DÑDóFôGð Gð ˜w×3Ñ3Ñ3Ø×$Ñ$ _Ñ5¸Ò>Ü×,Ñ,Ø4ô6ð 6ô ˆw× Ñ Ó! RÒ'Ü×,Ñ,Ø4ô6ð 6ð	RÜ�W×&Ñ&Ó'ˆBô ”4—9‘9“; Ñ#Ó$ t×'=Ñ'=×'PÑ'PÒPÜ×0Ñ0ð"?à%)×%;Ñ%;×%NÑ%Nñ"PôRð Rð ×%Ñ%×6Ñ6°w×7IÑ7IÔJÜ×,Ñ,Ø8ô:ð :ð ×%Ñ%×1Ñ1°'·-±-Ô@Ü×,Ñ,Ø3ô5ð 5ð Aøô) ò 	=Ü×,Ñ,Ø;ô=ð =ð	=ús   Ä$H È H4c                 ó,  — |j                   t        t        t        hv r«| j                  j                  |j                  |«      }|j                   t        k(  rt        j                  ||«      }|S |j                   t        k(  rt        j                  ||«      }|S |j                   t        k(  rt        j                  ||«      }|S d}|S | j                  j                  |j                  |«      }d }|j                  re|r2| j                  j                  |j                  |j                  |«      }n1| j                  j                  |j                  |j                  |«      }|j                   t        k(  rt        j                   |||«      }|S |j                   t"        k(  rt        j$                  |||«      }|S |j                   t&        k(  rt        j(                  |||«      }|S |j                   t*        k(  rt        j,                  |||«      }|S d}|S )NF)rT   r   r   r   r   Úget_rsa_keyrN   r   Úverify_rsa_sha1Úverify_rsa_sha256Úverify_rsa_sha512Úget_client_secretrO   Úget_request_token_secretÚget_access_token_secretr   Úverify_hmac_sha1r	   Úverify_hmac_sha256r
   Úverify_hmac_sha512r   Úverify_plaintext)r   r6   Úis_token_requestÚrsa_keyÚvalid_signatureÚclient_secretÚresource_owner_secrets          r   Ú_check_signaturezBaseEndpoint._check_signature²   s<  € à×#Ñ#Ô(:Ô<PÔRfÐ'gÑgð ×,Ñ,×8Ñ8Ø×"Ñ" Gó-ˆGð ×'Ñ'Ô+=Ò=Ü"+×";Ñ";¸GÀWÓ"M�ðb Ðða ×)Ñ)Ô-AÒAÜ"+×"=Ñ"=¸gÀwÓ"O�ð^ Ðð] ×)Ñ)Ô-AÒAÜ"+×"=Ñ"=¸gÀwÓ"O�ðZ ÐðW #(�ðV Ðð? !×2Ñ2×DÑDØ×"Ñ" Gó-ˆMð %)Ð!Ø×)Ò)Ù#à×.Ñ.×GÑGØ#×.Ñ.°×0JÑ0JØ#ó%ñ *ð ×.Ñ.×FÑFØ#×.Ñ.°×0JÑ0JØ#ó%ð *ð
 ×'Ñ'Ô+>Ò>Ü"+×"<Ñ"<Ø˜]Ð,Aó#C�ð Ðð ×)Ñ)Ô-BÒBÜ"+×">Ñ">Ø˜]Ð,Aó#C�ð Ðð ×)Ñ)Ô-BÒBÜ"+×">Ñ">Ø˜]Ð,Aó#C�ð Ðð ×)Ñ)Ô-@Ò@Ü"+×"<Ñ"<Ø˜]Ð,Aó#C�ð
 Ðð #(�àÐr   r   )F)	Ú__name__Ú
__module__Ú__qualname__r   r?   rY   r_   ro   r�   r&   r   r   r   r      s$   „ óAò(4òT$òL2ò?5ôB=r   r   )Ú__doc__ri   Úoauthlib.commonr   r   r   rA   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r&   r   r   Ú<module>r‡      s5   ðñó ç HÑ H÷÷ ÷ ÷ ÷Zò Zr   