cu-xdZddlZddlmZmZmZddlmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZGddZy)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)CaseInsensitiveDictRequestgenerate_token)CONTENT_TYPE_FORM_URLENCODEDSIGNATURE_HMAC_SHA1SIGNATURE_HMAC_SHA256SIGNATURE_HMAC_SHA512SIGNATURE_PLAINTEXTSIGNATURE_RSA_SHA1SIGNATURE_RSA_SHA256SIGNATURE_RSA_SHA512SIGNATURE_TYPE_AUTH_HEADERSIGNATURE_TYPE_BODYSIGNATURE_TYPE_QUERYerrors signatureutilsc4eZdZddZdZdZdZdZd dZy) BaseEndpointNc0||_|xst|_yN)request_validatorrtoken_generator)selfrrs H/usr/lib/python3/dist-packages/oauthlib/oauth1/rfc5849/endpoints/base.py__init__zBaseEndpoint.__init__s!2.@.c tj|jdd}tj|jd}tj|jd}g}|j ||j ||j |t tdt|tj|ft|tj|ft|tj|ff}t|dkDr9|Dcgc]}|d }}tjd d j!|f  |d\} }} | || fScc}w#t"$rtjd wxYw) zExtracts parameters from query, headers and body. Signature type is set to the source in which parameters were found. FT)headersexclude_oauth_signature with_realm)bodyr!) uri_queryr!c |dS)Nr)ss rz=BaseEndpoint._get_signature_type_and_params..,s !A$rrzFoauth_ params must come from only 1 signaturetype but were found in %sz,  description#Missing mandatory OAuth parameters.)rcollect_parametersr r#r$extendlistfilterrrfilter_oauth_paramsrrlenrInvalidRequestErrorjoin IndexError) rrequest header_params body_params query_paramsparams!signature_types_with_oauth_paramsr' found_typessignature_type oauth_paramss r_get_signature_type_and_paramsz+BaseEndpoint._get_signature_type_and_paramss "44W__MR_ce 22 KPR  33g>O>OLQS  m$ k" l#,0 '))-8 : &))+6 8 !6)),7 9 I 2 - ) 0 1A 5)JKA1Q4KKK,,9!YY{356 6  C3T4 0NFL v|33L C,,AC C Cs E E E<ct|xsi}d|vrt|dvrt||||}nt||d|}|j|\}}}t t |t |k7rt jdt |}|jd|_ |jd|_ |jd|_ |jd|_ |jd |_ |jd |_|jd |_|jd |_t |jd |_||_|D cgc]\} } | dk7s | | fc} } |_d |j(jddvr+|j&D cgc]\} } | d k7r| | fc} } |_|Scc} } wcc} } w)Nz Content-TypezDuplicate OAuth1 entries.r*oauth_signatureoauth_consumer_key oauth_token oauth_nonceoauth_timestampoauth_callbackoauth_verifieroauth_signature_methodrealm Authorization)rrrr?r2dictrr3getr client_keyresource_owner_keynonce timestamp redirect_uriverifiersignature_methodrJr>r:r ) ruri http_methodr#r r6r=r:r>kvs r_create_requestzBaseEndpoint._create_requestEs%gm4 g %,0GGc;g>Gc;G?)--.BC%1%5%5m%D"$((7 (,,->?+//0@A'++,<=#/#3#34L#M V ((1 +.4NTQq >*1..J"&!QAL !!fJGN OJs- G;G7Gc|jjr>|jjj dst j yy)Nzhttps://)r enforce_sslrUlower startswithrInsecureTransportError)rr6s r_check_transport_securityz&BaseEndpoint._check_transport_securitymsE  " " . .KK%%'22:>//1 1? /rcnt|j|j|j|j|j fst jd|j |jjvrDt jdj|j |jjd|jvr(|jddk7rt jdt|jdk7rt jd t|j}tt!j |z |jj"kDr-t jd |jj"z|jj'|jst jd |jj)|jst jd y#t$$rt jd wxYw) Nr,r*z"Invalid signature, {} not in {!r}. oauth_versionz1.0zInvalid OAuth version. zInvalid timestamp sizezCTimestamp given is invalid, differ from allowed by over %s seconds.zTimestamp must be an integer.zInvalid client key format.zInvalid nonce format.)allrrNrPrQrTrr3rallowed_signature_methodsInvalidSignatureMethodErrorformatr>r2intabstimetimestamp_lifetime ValueErrorcheck_client_key check_nonce)rr6tss r_check_mandatory_parametersz(BaseEndpoint._check_mandatory_parametersss G%%w'9'9MM7#4#4,,./,,AC C((&&@@A44@GG,,**DDFG G w33 3$$_5>,,46 6 w  !R ',,46 6 RW&&'B499;#$t'='='P'PP00"?%)%;%;%N%N"PRR%%66w7I7IJ,,8: :%%11'--@,,35 5A) =,,;= = =s $H H4cd|jtk(s&|jtk(s|jtk(r|jj |j |}|jtk(rtj||}|S|jtk(rtj||}|S|jtk(rtj||}|Sd}|S|jj|j |}d}|jre|r2|jj|j |j|}n1|jj|j |j|}|jtk(rtj |||}|S|jt"k(rtj$|||}|S|jt&k(rtj(|||}|S|jt*k(rtj,|||}|Sd}|S)NF)rTr r rr get_rsa_keyrNrverify_rsa_sha1verify_rsa_sha256verify_rsa_sha512get_client_secretrOget_request_token_secretget_access_token_secretrverify_hmac_sha1r verify_hmac_sha256r verify_hmac_sha512r verify_plaintext)rr6is_token_requestrsa_keyvalid_signature client_secretresource_owner_secrets r_check_signaturezBaseEndpoint._check_signaturesQ  # #'9 9  # #'; ;  # #'; ; ,,88""G-G''+=="+";";GW"Mba))-AA"+"="=gw"O^]))-AA"+"="=gw"OZW#(V?!22DD""G-M%) !))#..GG#..0J0J#%* ..FF#..0J0J#%* ''+>>"+"<"<],A#C))-BB"+">">],A#C))-BB"+">">],A#C ))-@@"+"<"<],A#C #(rr)F) __name__ __module__ __qualname__rr?rYr_rorr&rrrrs%A(4T&P2 @5D?rr)__doc__rioauthlib.commonrrrrArrr r r r r rrrrrrrrr&rrrs5 HH__r