https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/jwt/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/jwt/__pycache__/api_jws.cpython-310.pyc
o

K�jar�@s�ddlZddlZddlmZddlmZmZmZmZm	Z	ddl
mZmZm
Z
mZddlmZmZmZmZddlmZmZGdd	�d	�Ze�ZejZejZejZejZejZejZdS)
�N)�Mapping)�Any�Dict�List�Optional�Type�)�	Algorithm�get_default_algorithms�
has_crypto�requires_cryptography)�DecodeError�InvalidAlgorithmError�InvalidSignatureError�InvalidTokenError)�base64url_decode�base64url_encodec
@seZdZdZd(dd�Zedd��Zdd�Zd	d
�Zdd�Z		
		d)de
dedeedee
deeejdefdd�Z			d*dededeede
de
eeff
dd�Z			d*dededeede
def
dd�Zdd�Zd d!�Z		d+d"d#�Zd$d%�Zd&d'�ZdS),�PyJWS�JWTNcCslt�|_|durt|�nt|j�|_t|j���D]}||jvr$|j|=q|dur+i}i|���|�|_dS)N)r
�_algorithms�set�_valid_algs�list�keys�_get_default_options�options)�self�
algorithmsr�key�r�-/usr/lib/python3/dist-packages/jwt/api_jws.py�__init__s�
�zPyJWS.__init__cCsddiS)N�verify_signatureTrrrrr r'szPyJWS._get_default_optionscCs>||jvr	td��t|t�std��||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�alg_id�alg_objrrr �register_algorithm+s


zPyJWS.register_algorithmcCs*||jvr	td��|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)rr'rrr �unregister_algorithm8s
�zPyJWS.unregister_algorithmcCs
t|j�S)zM
        Returns a list of supported values for the 'alg' parameter.
        )rr)rrrr �get_algorithmsFs
zPyJWS.get_algorithms�HS256�payloadr�	algorithm�headers�json_encoder�returnc
Csg}|durd}|rd|vr|dr|d}|j|d�}|r/|�|�|�|�|ds/|d=tj|d|d���}|�t|��|�t|��d�|�}	z|j	|}
|
�
|�}|
�|	|�}Wnty|}zt
ss|tvrstd|�|�td	�|�d}~ww|�t|��d�|�}
|
�d
�S)N�none�alg)�typr5r6)�,�:)�
separators�cls�.zFAlgorithm '%s' could not be found. Do you have cryptography installed?�Algorithm not supported�utf-8)�
header_typ�_validate_headers�update�json�dumps�encode�appendr�joinr�prepare_key�signr*rr�NotImplementedError�decode)rr/rr0r1r2�segments�header�json_header�
signing_inputr(�	signature�e�encoded_stringrrr rCLsL

��


���
��	

zPyJWS.encode��jwtrrcKsf|duri}i|j�|�}|d}|r|std��|�|�\}}	}
}|r-|�|	|
|||�||
|d�S)Nr"z\It is required that you pass in a value for the "algorithms" argument when calling decode().)r/rKrN)rr
�_load�_verify_signature)rrRrrr�kwargs�merged_optionsr"r/rMrKrNrrr �decode_complete�s��zPyJWS.decode_completecKs |j||||fi|��}|dS)Nr/)rW)rrRrrrrU�decodedrrr rI�szPyJWS.decodecCs|�|�d}|�|�|S)z�Returns back the JWT header parameters as a dict()

        Note: The signature is not verified so the header parameters
        should not be fully trusted until signature verification is complete
        �)rSr?)rrRr1rrr �get_unverified_header�s
zPyJWS.get_unverified_headerc
Csjt|t�r
|�d�}t|t�stdt����z|�dd�\}}|�dd�\}}Wnty9}ztd�|�d}~wwzt|�}Wnt	t
jfyT}ztd�|�d}~wwzt�
|�}Wntyo}	ztd|	�|	�d}	~	wwt|t�sytd��zt|�}
Wnt	t
jfy�}ztd	�|�d}~wwzt|�}Wnt	t
jfy�}ztd
�|�d}~ww|
|||fS)Nr=z$Invalid token type. Token must be a r;rzNot enough segmentszInvalid header paddingzInvalid header string: %sz,Invalid header string: must be a json objectzInvalid payload paddingzInvalid crypto padding)r$�strrC�bytesr
�rsplit�splitr#rr%�binascii�ErrorrA�loadsr)rrRrM�crypto_segment�header_segment�payload_segment�err�header_datarKrOr/rNrrr rS�sL



��
����

��
��zPyJWS._loadc	
Csv|�d�}|dur||vrtd��z|j|}|�|�}|�|||�s'td��WdSty:}ztd�|�d}~ww)Nr5z&The specified alg value is not allowedzSignature verification failedr<)�getrrrF�verifyrr*)	rrMrKrNrrr5r(rOrrr rT�s
	

�
��zPyJWS._verify_signaturecCsd|vr
|�|d�dSdS)N�kid)�
_validate_kid)rr1rrr r?�s�zPyJWS._validate_headerscCst|t�s	td��dS)Nz(Key ID header parameter must be a string)r$r[r)rrirrr rj�s
�zPyJWS._validate_kid)NN)r.NN)rQNN)rQN)�__name__�
__module__�__qualname__r>r!�staticmethodrr)r,r-r\r[rrrrA�JSONEncoderrCrrrWrIrZrSrTr?rjrrrr rsv



������
�:�����

� �����
�+
�r)r_rA�collections.abcr�typingrrrrrrr	r
rr�
exceptionsr
rrr�utilsrrr�_jws_global_objrCrWrIr)r,rZrrrr �<module>s i


https://t.me/RX1948 - 2025