bgdddlmZddlZddlZddlmZddlmZmZm Z ddl m Z m Z m Z mZddlmZGdd ZGd d ZGd d ZdS)) annotationsN)Any)get_default_algorithms has_cryptorequires_cryptography)InvalidKeyError PyJWKError PyJWKSetError PyJWTError)JWKDictceZdZdddZeddd ZedddZeddZeddZ eddZ dS)PyJWKNjwk_datar algorithm str | NonereturnNonect|_||_|jdd}|st d|j|s5t |jt r|jdd}|s|jdd}|dkr8|dks|sd}n|dkrd }n|d krd }ny|d krd }npt d||dkrd}nU|dkrd}nL|dkr4|st d|j|dkrd}n$t d|t d|ts|tvrt|d|j||_ |j std|j|j |j|_ dS)Nktyzkty is not found: algcrvECzP-256ES256zP-384ES384zP-521ES512 secp256k1ES256KzUnsupported crv: RSARS256octHS256OKPzcrv is not found: Ed25519EdDSAzUnsupported kty: z) requires 'cryptography' to be installed.z%Unable to find an algorithm for key: ) r _algorithms _jwk_datagetr isinstancedictrrr Algorithmfrom_jwkkey)selfrrrrs B/opt/cloudlinux/venv/lib64/python3.11/site-packages/jwt/api_jwk.py__init__zPyJWK.__init__ s133!n  -- I!"Gt~"G"GHH H 8Z== 8**5$77I A.$$UD11Cd{{'>>> 'IIG^^ 'IIG^^ 'IIK'' (II)*Cc*C*CDDD# # Q)*Ot~*O*OPPP)## 'II)*Cc*C*CDDD%&?#&?&?@@@ Vi+@@@ TTTUU U)--i88~ WUT^UUVV V>**4>::obj'PyJWK'c"t||SN)r)r2rs r/ from_dictzPyJWK.from_dict>sS)$$$r1datastrc`tj|}t||Sr5)jsonloadsrr6)r7rr2s r/ from_jsonzPyJWK.from_jsonBs%jsI...r1c8|jddS)Nrr'r(r.s r/key_typezPyJWK.key_typeG~!!%...r1c8|jddS)Nkidr>r?s r/key_idz PyJWK.key_idKrAr1c8|jddS)Nuser>r?s r/public_key_usezPyJWK.public_key_useOrAr1r5)rr rrrr)r2r rrrr3)r7r8rrrr3)rr) __name__ __module__ __qualname__r0 staticmethodr6r<propertyr@rDrGr1r/rr s/;/;/;/;/;b%%%%\%////\////X////X////X///r1rcNeZdZddZedd Zedd ZddZdS)PyJWKSetkeys list[JWKDict]rrcFg|_|stdt|tstd|D]:} |jt |+#t $rY7wxYwt|jdkrtddS)Nz$The JWK Set did not contain any keyszInvalid JWK Set valuerzUThe JWK Set did not contain any usable keys. Perhaps 'cryptography' is not installed?)rPr r)listappendrr len)r.rPr-s r/r0zPyJWKSet.__init__Us  H FGG G$%% 9 788 8  C    s,,,,     ty>>Q  g   s'A** A76A7r2dict[str, Any] 'PyJWKSet'cL|dg}t|S)NrP)r(rO)r2rPs r/r6zPyJWKSet.from_dictjs!wwvr""~~r1r7r8c^tj|}t|Sr5)r:r;rOr6)r7r2s r/r<zPyJWKSet.from_jsonos%j!!#&&&r1rCr3cX|jD]}|j|kr|cStd|)Nzkeyset has no key for kid: )rPrDKeyError)r.rCr-s r/ __getitem__zPyJWKSet.__getitem__tsE9  CzS   !:S::;;;r1N)rPrQrr)r2rVrrW)r7r8rrW)rCr8rr3)rHrIrJr0rKr6r<r\rMr1r/rOrOTs|*\'''\'<<<<<rns"""""" QQQQQQQQQQNNNNNNNNNNNNE/E/E/E/E/E/E/E/P$<$<$<$<$<$<$<$