HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: sport3497 (1034)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib64/python3.10/site-packages/jwt/__pycache__/jwks_client.cpython-310.pyc
o

�h��@s�ddlZddlZddlmZddlmZddlmZm	Z	m
Z
mZddlm
Z
ddlmZmZddlmZdd	lmZmZdd
lmZGdd�d�ZdS)
�N)�	lru_cache)�
SSLContext)�Any�Dict�List�Optional)�URLError�)�PyJWK�PyJWKSet)�decode_complete)�PyJWKClientConnectionError�PyJWKClientError)�JWKSetCachec@s�eZdZ							d"deded	ed
ededeeeefd
edee	fdd�Z
defdd�Zd#dedefdd�Z
d#dedeefdd�Zdedefdd�Zdedefdd�Zedeededeefd d!��ZdS)$�PyJWKClientF�T�,N��uri�
cache_keys�max_cached_keys�
cache_jwk_set�lifespan�headers�timeout�ssl_contextc		Csv|duri}||_d|_||_||_||_|r)|dkr#td|�d���t|�|_nd|_|r9t|d�|j�|_dSdS)Nrz/Lifespan must be greater than 0, the input is "�")�maxsize)	r�
jwk_set_cacherrrrrr�get_signing_key)	�selfrrrrrrrr�r!�B/usr/local/CyberCP/lib/python3.10/site-packages/jwt/jwks_client.py�__init__s&
�
��zPyJWKClient.__init__�returnc
Cs�d}zSz,tjj|j|jd�}tjj||j|jd��
}t�	|�}Wd�n1s)wYWnt
tfyF}z	td|�d��|�d}~ww|W|j
durU|j
�|�SS|j
durb|j
�|�ww)N)�urlr)r�contextz'Fail to fetch data from the url, err: "r)�urllib�request�Requestrr�urlopenrr�json�loadr�TimeoutErrorr
r�put)r �jwk_set�r�response�er!r!r"�
fetch_data4s0
���
����
��zPyJWKClient.fetch_data�refreshcCsHd}|jdur|s|j��}|dur|��}t|t�std��t�|�S)Nz.The JWKS endpoint did not return a JSON object)r�getr3�
isinstance�dictrr�	from_dict)r r4�datar!r!r"�get_jwk_setFs


zPyJWKClient.get_jwk_setcCs*|�|�}dd�|jD�}|std��|S)NcSs g|]}|jdvr|jr|�qS))�sigN)�public_key_use�key_id)�.0�jwk_set_keyr!r!r"�
<listcomp>Us
�z0PyJWKClient.get_signing_keys.<locals>.<listcomp>z2The JWKS endpoint did not contain any signing keys)r:�keysr)r r4r/�signing_keysr!r!r"�get_signing_keysSs
�zPyJWKClient.get_signing_keys�kidcCsH|��}|�||�}|s"|jdd�}|�||�}|s"td|�d���|S)NT)r4z,Unable to find a signing key that matches: "r)rC�	match_kidr)r rDrB�signing_keyr!r!r"r`s
�zPyJWKClient.get_signing_key�tokencCs(t|ddid�}|d}|�|�d��S)N�verify_signatureF)�options�headerrD)�decode_tokenrr5)r rG�
unverifiedrJr!r!r"�get_signing_key_from_jwtpsz$PyJWKClient.get_signing_key_from_jwtrBcCs&d}|D]}|j|kr|}|Sq|S)N)r=)rBrDrF�keyr!r!r"rEus
�zPyJWKClient.match_kid)FrTrNrN)F)�__name__�
__module__�__qualname__�str�bool�intrrrrr#r3rr:rr
rCrrM�staticmethodrEr!r!r!r"rs@��������	
�%

$r)r+�urllib.requestr'�	functoolsr�sslr�typingrrrr�urllib.errorr�api_jwkr
r�api_jwtrrK�
exceptionsr
rrrrr!r!r!r"�<module>s