HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/self/root/lib/python3/dist-packages/jwt/__pycache__/api_jwt.cpython-38.pyc
U

�b�[��@s�ddlZddlZddlmZddlmZmZz ddlmZmZm	Z	m
Z
mZWnek
r`YnXddl
mZddlmZmZddlmZmZmZdd	lmZmZmZmZmZmZmZdd
lmZGdd�de�Z e �Z!e!j"Z"e!j#Z#e!j$Z$e!j%Z%e!j&Z&dS)
�N)�timegm)�datetime�	timedelta)�Callable�Dict�List�Optional�Union�)�PyJWS)�	Algorithm�get_default_algorithms)�Iterable�Mapping�string_types)�DecodeError�ExpiredSignatureError�ImmatureSignatureError�InvalidAudienceError�InvalidIssuedAtError�InvalidIssuerError�MissingRequiredClaimError)�
merge_dictcsveZdZdZedd��Zd�fdd�	Zd�fd
d�	Zdd
d�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Z�ZS)�PyJWTZJWTc
Csdddddddddd�	S)NTF)	�verify_signature�
verify_exp�
verify_nbf�
verify_iat�
verify_aud�
verify_iss�require_exp�require_iat�require_nbf�r#r#r#�-/usr/lib/python3/dist-packages/jwt/api_jwt.py�_get_default_optionss�zPyJWT._get_default_options�HS256Ncsnt|t�std��dD](}t|�|�t�rt||���||<qtj|d|d��	d�}t
t|��	|||||�S)NzJExpecting a mapping object, as JWT only supports JSON objects as payloads.)�exp�iat�nbf)�,�:)Z
separators�cls�utf-8)�
isinstancer�	TypeError�getrr�utctimetuple�json�dumps�encode�superr)�self�payload�key�	algorithmZheadersZjson_encoderZ
time_claimZjson_payload��	__class__r#r$r4(s&
��
�zPyJWT.encode�Tc
s�|r|st�dt�|�|�\}}}}|dkr8d|i}n|�d|�tt|�j|f|||d�|��}	zt�	|	�d��}Wn.t
k
r�}
ztd|
��W5d}
~
XYnXt|t
�s�td��|r�t|j|�}|j||f|�|S)Nz�It is strongly recommended that you pass in a value for the "algorithms" argument when calling decode(). This argument will be mandatory in a future version.r)r8�
algorithms�optionsr-zInvalid payload string: %sz-Invalid payload string: must be a json object)�warnings�warn�DeprecationWarning�_load�
setdefaultr5r�decoder2�loads�
ValueErrorrr.rrr>�_validate_claims)r6Zjwtr8Zverifyr=r>�kwargsr7�_Zdecoded�eZmerged_optionsr:r#r$rDDs8�

���
zPyJWT.decodercKs�d|kr$|�dd�|d<t�dt�t|t�r6|��}t|ttd�t	f�sRt
d��|�||�tt
�����}d|kr�|�d�r�|�|||�d|kr�|�d	�r�|�|||�d
|kr�|�d�r�|�|||�|�d�r�|�||�|�d�r�|�||�dS)
NZverify_expirationTrzXThe verify_expiration parameter is deprecated. Please use verify_exp in options instead.z,audience must be a string, iterable, or Noner(rr)rr'rr)r0r?r@rAr.rZ
total_secondsr�typerr/�_validate_required_claimsrrZutcnowr1�
_validate_iat�
_validate_nbf�
_validate_exp�
_validate_iss�
_validate_aud)r6r7r>�audience�issuer�leewayrH�nowr#r#r$rGls*�


zPyJWT._validate_claimscCsd|�d�r |�d�dkr td��|�d�r@|�d�dkr@td��|�d�r`|�d�dkr`td��dS)Nr r'r!r(r"r))r0r)r6r7r>r#r#r$rL�szPyJWT._validate_required_claimscCs2zt|d�Wntk
r,td��YnXdS)Nr(z)Issued At claim (iat) must be an integer.)�intrFr)r6r7rUrTr#r#r$rM�szPyJWT._validate_iatcCsFzt|d�}Wntk
r,td��YnX|||krBtd��dS)Nr)z*Not Before claim (nbf) must be an integer.z The token is not yet valid (nbf))rVrFrr)r6r7rUrTr)r#r#r$rN�szPyJWT._validate_nbfcCsFzt|d�}Wntk
r,td��YnX|||krBtd��dS)Nr'z/Expiration Time claim (exp) must be an integer.zSignature has expired)rVrFrr)r6r7rUrTr'r#r#r$rO�szPyJWT._validate_expcs�|dkrd|krdS|dk	r,d|kr,td��|dkrDd|krDtd��|d�t�t�r\�g�t�t�sntd��tdd��D��r�td��t|t�r�|g}t�fdd�|D��s�td��dS)N�audzInvalid audiencezInvalid claim format in tokencss|]}t|t�VqdS�N)r.r)�.0�cr#r#r$�	<genexpr>�sz&PyJWT._validate_aud.<locals>.<genexpr>c3s|]}|�kVqdSrXr#)rYrW�Zaudience_claimsr#r$r[�s)rrr.r�list�any)r6r7rRr#r\r$rQ�s"


zPyJWT._validate_audcCs4|dkrdSd|krtd��|d|kr0td��dS)NZisszInvalid issuer)rr)r6r7rSr#r#r$rP�szPyJWT._validate_iss)r&NN)r<TNN)NNr)�__name__�
__module__�__qualname__Zheader_type�staticmethodr%r4rDrGrLrMrNrOrQrP�
__classcell__r#r#r:r$rs*
��(�
"
	
r)'r2r?Zcalendarrrr�typingrrrrr	�ImportErrorZapi_jwsrr=rr
�compatrrr�
exceptionsrrrrrrrZutilsrrZ_jwt_global_objr4rDZregister_algorithmZunregister_algorithmZget_unverified_headerr#r#r#r$�<module>s( $D