§ <ˆj[+ãó*—ddlmZddlZddlZddlZddlmZmZddlm Z m Z m Z m Z ddl mZmZmZmZddlmZmZddlmZerdd lmZmZGd „d ¦«Ze¦«ZejZejZejZejZejZejZej Z dS) é)Ú annotationsN)Ú TYPE_CHECKINGÚAnyé)Ú AlgorithmÚget_default_algorithmsÚ has_cryptoÚrequires_cryptography)Ú DecodeErrorÚInvalidAlgorithmErrorÚInvalidSignatureErrorÚInvalidTokenError)Úbase64url_decodeÚbase64url_encode)ÚRemovedInPyjwt3Warning)ÚAllowedPrivateKeysÚAllowedPublicKeyscó¾—eZdZdZ d:d;d „Zedd„Zd?d„Z d@d„Z dAdBd%„Z dCdDd-„Z dCdEd/„Z dFd0„ZdGd2„Z dHdId6„ZdJd7„ZdKd9„ZdS)LÚPyJWSÚJWTNÚ algorithmsúlist[str] | NoneÚoptionsúdict[str, Any] | NoneÚreturnÚNonecó6—t¦«|_|�t|¦«nt|j¦«|_t |j ¦«¦«D]}||jvr|j|=Œ|€i}i| ¦«¥|¥|_dS)N)rÚ _algorithmsÚsetÚ _valid_algsÚlistÚkeysÚ_get_default_optionsr)ÚselfrrÚkeys úB/opt/cloudlinux/venv/lib64/python3.11/site-packages/jwt/api_jws.pyÚ__init__zPyJWS.__init__s¤€õ 2Ñ3Ô3ˆÔà)Ð5�C� ‰OŒOˆO½3¸tÔ?OÑ;PÔ;Pð Ôõ ˜Ô(×-Ò-Ñ/Ô/Ñ0Ô0ð *ð *ˆCؘ$Ô*Ð*Ð*ØÔ$ SÐ)øà ˆ?؈GØA˜$×3Ò3Ñ5Ô5ÐA¸ÐAˆŒ ˆ ˆ óúdict[str, bool]có —ddiS)NÚverify_signatureT©r,r(r&r#zPyJWS._get_default_options1s €à" DÐ)Ð)r(Úalg_idÚstrÚalg_objrcóÆ—||jvrtd¦«‚t|t¦«st d¦«‚||j|<|j |¦«dS)zW Registers a new Algorithm for use when creating and verifying tokens. z Algorithm already has a handler.z!Object is not of type `Algorithm`N)rÚ ValueErrorÚ isinstancerÚ TypeErrorr Úadd)r$r-r/s r&Úregister_algorithmzPyJWS.register_algorithm5sm€ð �TÔ%Ð %Ð %ÝÐ?Ñ@Ô@Ð @å˜'¥9Ñ-Ô-ð AÝÐ?Ñ@Ô@Ð @à#*ˆÔ˜Ñ Ø Ô×Ò˜VÑ$Ô$Ð$Ð$Ð$r(cóz—||jvrtd¦«‚|j|=|j |¦«dS)z� Unregisters an Algorithm for use when creating and verifying tokens Throws KeyError if algorithm is not registered. zJThe specified algorithm could not be removed because it is not registered.N)rÚKeyErrorr Úremove)r$r-s r&Úunregister_algorithmzPyJWS.unregister_algorithmBsS€ð ˜Ô)Ð )Ð )Ýð1ñôð ð Ô ˜VÐ $Ø Ô×Ò Ñ'Ô'Ð'Ð'Ð'r(ú list[str]có*—t|j¦«S)zM Returns a list of supported values for the 'alg' parameter. )r!r )r$s r&Úget_algorithmszPyJWS.get_algorithmsPs€õ�DÔ$Ñ%Ô%Ð%r(Úalg_namecóª— |j|S#t$r9}ts|tvrt d|›d�¦«|‚t d¦«|‚d}~wwxYw)zœ For a given string name, return the matching Algorithm object. Example usage: >>> jws_obj.get_algorithm_by_name("RS256") z Algorithm 'z9' could not be found. Do you have cryptography installed?úAlgorithm not supportedN)rr7r r ÚNotImplementedError)r$r=Úes r&Úget_algorithm_by_namezPyJWS.get_algorithm_by_nameVs‚€ð HØÔ# HÔ-Ð -øÝð Hð Hð HÝð  (Õ.CÐ"CÐ"CÝ)Øe (ÐeÐeÐeñôàðõ&Ð&?Ñ@Ô@ÀaÐ Gøøøøð  Høøøs‚ � A™4A Á AÚHS256FTÚpayloadÚbytesr%ú AllowedPrivateKeys | str | bytesÚ algorithmú str | NoneÚheadersÚ json_encoderútype[json.JSONEncoder] | NoneÚis_payload_detachedÚboolÚ sort_headerscód—g}|�|nd} |r:| d¦«} | r|d} | d¦«} | durd}|j| dœ} |r*| |¦«|  |¦«| ds| d=|rd| d<nd| vr| d=t j| d||¬ ¦« ¦«} | t| ¦«¦«|r|}nt|¦«}| |¦«d   |¦«}|  | ¦«}|  |¦«}|  ||¦«}| t|¦«¦«|rd |d <d   |¦«}|  d ¦«S)NÚnoneÚalgÚb64FT)ÚtyprQrS)ú,ú:)Ú separatorsÚclsÚ sort_keysó.r(rúutf-8)ÚgetÚ header_typÚ_validate_headersÚupdateÚjsonÚdumpsÚencodeÚappendrÚjoinrBÚ prepare_keyÚsignÚdecode)r$rDr%rGrIrJrLrNÚsegmentsÚ algorithm_Ú headers_algÚ headers_b64ÚheaderÚ json_headerÚ msg_payloadÚ signing_inputr/Ú signatureÚencoded_strings r&raz PyJWS.encodegsñ€ðˆð(1Ð'<˜)˜)À&ˆ ð ð +Ø!Ÿ+š+ eÑ,Ô,ˆKØð ,Ø$ Uœ^� à!Ÿ+š+ eÑ,Ô,ˆKؘeÐ#Ð#Ø&*Ð#ð*.¬ÀÐ!LÐ!Lˆà ð #Ø × "Ò " 7Ñ +Ô +Ð +Ø �MŠM˜'Ñ "Ô "Ð "à�eŒ}ð Ø�u� à ð Ø!ˆF�5‰MˆMØ �fˆ_ˆ_à�u� å”jØ ˜z¨|À|ð ñ ô ç Š&‰(Œ(ð ð �ŠÕ(¨Ñ5Ô5Ñ6Ô6Ð6à ð 4Ø!ˆKˆKå*¨7Ñ3Ô3ˆKØ�Š˜ Ñ$Ô$Ð$🠚  (Ñ+Ô+ˆ à×,Ò,¨ZÑ8Ô8ˆØ×!Ò! #Ñ&Ô&ˆØ—L’L °Ñ4Ô4ˆ à�ŠÕ(¨Ñ3Ô3Ñ4Ô4Ð4ð ð ØˆH�Q‰KØŸš 8Ñ,Ô,ˆà×$Ò$ WÑ-Ô-Ð-r(ÚÚjwtú str | bytesúAllowedPublicKeys | str | bytesÚdetached_payloadú bytes | Noneúdict[str, Any]c ó—|rå',¨V¯[ª[©]¬]Ñ';Ô';ð>ð>õ'ñ  ô ð ð ˆ?؈GØ4˜DœLÐ4¨GÐ4ˆØ)Ð*<Ô=Ðà ð  Jð ÝØnñôð ð59·J²J¸s±O´OÑ1ˆ� ¨ à �:Š:�e˜TÑ "Ô " eÐ +Ð +ØÐ'Ý!ðZñôðð'ˆGØ ŸIšI }×';Ò';¸DÀ!Ñ'DÔ'DÀQÔ'GÈÐ&QÑRÔRˆMà ð VØ × "Ò " =°&¸)ÀSÈ*Ñ UÔ UÐ UðØØ"ð ð ð r(rc ó—|rå',¨V¯[ª[©]¬]Ñ';Ô';ð>ð>õ'ñ  ô ð ð ×&Ò&Ø ��j 'ÐØ,/¯JªJ°t¸QÑ,?Ô,?Ñ )ˆM˜>Ø.;×.AÒ.AÀ$ÈÑ.JÔ.JÑ +ˆN˜O˜OøÝð >ð >ð >ÝÐ3Ñ4Ô4¸#Ð =øøøøð >øøøð AÝ*¨>Ñ:Ô:ˆKˆKøÝ�8œ>Ð*ð Að Að AÝÐ6Ñ7Ô7¸SÐ @øøøøð Aøøøð DÝ”Z  Ñ,Ô,ˆFˆFøÝð Dð Dð DÝÐ;¸Ð;Ð;Ñ<Ô<À!Ð Cøøøøð Døøøõ˜&¥$Ñ'Ô'ð NÝÐLÑMÔMÐ Mð BÝ& Ñ7Ô7ˆGˆGøÝ�8œ>Ð*ð Bð Bð BÝÐ7Ñ8Ô8¸cÐ Aøøøøð Bøøøð AÝ(¨Ñ8Ô8ˆIˆIøÝ�8œ>Ð*ð Að Að AÝÐ6Ñ7Ô7¸SÐ @øøøøð Aøøøð˜¨° Ð:Ð:sxÁ2B  B*ÂB%Â%B*Â.B>Â>C)ÃC$Ã$C)Ã-DÄ D$Ä DÄD$Å EÅFÅ2FÆFÆ FÆGÆ1GÇGrnrkrocój— |d}n#t$rtd¦«‚wxYw|r|�||vrtd¦«‚ | |¦«}n"#t$r}td¦«|‚d}~wwxYw| |¦«} | || |¦«st d¦«‚dS)NrQzAlgorithm not specifiedz&The specified alg value is not allowedr?zSignature verification failed)r7r rBr@rdÚverifyr ) r$rnrkror%rrQr/rAÚ prepared_keys r&r~zPyJWS._verify_signatures€ð Cؘ”-ˆCˆCøÝð Cð Cð CÝ'Ð(AÑBÔBÐ Bð Cøøøðð R�zÐ-°#¸ZÐ2GÐ2GÝ'Ð(PÑQÔQÐ Qð JØ×0Ò0°Ñ5Ô5ˆGˆGøÝ"ð Jð Jð JÝ'Ð(AÑBÔBÈÐ Iøøøøð Jøøøà×*Ò*¨3Ñ/Ô/ˆ à�~Š~˜m¨\¸9ÑEÔEð IÝ'Ð(GÑHÔHÐ Hð Ið Is ‚ ‹%ÁAÁ A5Á A0Á0A5cóH—d|vr| |d¦«dSdS)NÚkid)Ú _validate_kid)r$rIs r&r]zPyJWS._validate_headers8s3€Ø �GÐ Ð Ø × Ò ˜w uœ~Ñ .Ô .Ð .Ð .Ð .ð Ð r(r—cóN—t|t¦«std¦«‚dS)Nz(Key ID header parameter must be a string)r2r.r)r$r—s r&r˜zPyJWS._validate_kid<s0€Ý˜#�sÑ#Ô#ð PÝ#Ð$NÑOÔOÐ Oð Pð Pr()NN)rrrrrr)rr))r-r.r/rrr)r-r.rr)rr:)r=r.rr)rCNNFT)rDrEr%rFrGrHrIrrJrKrLrMrNrMrr.)rqNNN) rrrsr%rtrrrrrurvrrw) rrrsr%rtrrrrrurvrr)rrrsrrw)rrrsrr‡)rqN) rnrErkrwrorEr%rtrrrr)rIrwrr)r—rrr)Ú__name__Ú __module__Ú __qualname__r\r'Ú staticmethodr#r5r9r<rBrar�rfr†r|r~r]r˜r,r(r&rrs¯€€€€€Ø€Jð(,Ø)-ðBðBðBðBðBð&ð*ð*ð*ñ„\ð*ð %ð %ð %ð %ð (ð (ð (ð (ð&ð&ð&ð&ð HðHðHðHð*!(Ø)-Ø6:Ø$)Ø!ðC.ðC.ðC.ðC.ðC.ðP02Ø'+Ø)-Ø)-ð + ð+ ð+ ð+ ð+ ð`02Ø'+Ø)-Ø)-ð "ð"ð"ð"ð"ð* ð ð ð ð$;ð$;ð$;ð$;ðV02Ø'+ð IðIðIðIðIð2/ð/ð/ð/ðPðPðPðPðPðPr(r)!Ú __future__rrŠr_ryÚtypingrrrrrr r Ú exceptionsr r r rÚutilsrrrrrrÚ_jws_global_objrar�rfr5r9rBr†r,r(r&úr£s—ðØ"Ð"Ð"Ð"Ð"Ð"à€€€Ø € € € Ø€€€Ø%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ððððððððððððð ðððððððððððð 6Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ø,Ð,Ð,Ð,Ð,Ð,àðBØAÐAÐAÐAÐAÐAÐAÐAðcPðcPðcPðcPðcPñcPôcPðcPðL �%‘'”'€Ø Ô €Ø!Ô1€Ø Ô €Ø$Ô7ÐØ&Ô;ÐØ'Ô=ÐØ'Ô=ÐÐÐr(